java common mistakes

2025-12-11 0 106

《Java 开发坑点解析:从根因分析到最佳实践》源码目录

书籍购买地址

京东购买
当当购买

源码说明

  • 专栏的所有代码基于Java 8 + Spring Boot 2.2.1.RELEASE + Spring Cloud Greenwich.SR4 + Spring Data
    Moore-SR4开发,基于Maven做依赖管理。
  • 每一个案例都是独立的SpringBoot或Java命令行应用程序,可以单独启动,避免相互干扰,但是它们公用一个Maven POM。
  • 下载源码后,先在根目录运行docker-compose up命令来通过Docker运行相关的MySQL、Redis、ES、RabbitMQ等系统,随后再来启动应用。

专栏大部分内容只依赖MySQL一个组件,如果docker-compose启动有困难的话可以先注释docker-compose.yml中的相关组件,比如注释ES和RabbitMQ,等后面设计篇需要用到的时候再启动,并且需要同时删除pom.xml中的相关SpringBoot
Starter模块。

  • 源码根目录下有一个readme.md的Markdown文件,这里有一个目录列了每一篇文章对应的源码位置,同时来到每一个源码包中下面还有一个readme.md文件,里面列了每一篇文章中每一个小节的源码包名。
  • 大多数源码中的案例都会使用wrong和right这样方法命名来代表错误实现和正确实现,你可以结合书籍内容对比实现来理解。
  • 有一些案例(比如SQL索引一文)会基于当前时间生成测试数据,所以不确保文中的测试结果本地可以重现,需要自己调整测试用例。

书籍代码索引

说明

  • 点击链接进入每一节的代码文件夹
  • 每一个文件夹中又有一个readme.md文件,里面列了每节中每一个小节的源码文件夹
  • 【思考】代表思考与讨论中涉及到的代码
  • 【扩展】代表扩展阅读中涉及到的代码
  • 【补充】代表更多其它的不出现在书中涉及到内容的代码

第1章 Java 8中常用的重要知识点

第2章 代码篇

  • 2.1
    使用了并发工具类库,并不等于就没有线程安全问题了:concurrenttool
  • 2.2 代码加锁:不要让“锁”事成为烦心事:lock
  • 2.3 线程池:业务代码中最常用也最容易犯错的组件:threadpool
  • 2.4 连接池:别让连接池帮了倒忙:connectionpool
  • 2.5 HTTP调用:您考虑到超时、重试、并发了吗:httpinvoke
  • 2.6
    20%的业务代码的Spring声明式事务,可能都没处理正确:transaction
  • 2.7 数据库索引:索引不是万能药:sqlindex
  • 2.8 判等问题:程序里如何确定你就是你:equals
  • 2.9
    数值计算:注意精度、舍入和溢出问题:numeralcalculations
  • 2.10 集合类:坑满地的List列表操作:collection
  • 2.11 空值处理:分不清楚的null和恼人的空指针:nullvalue
  • 2.12 异常处理:别让自己在出问题的时候变为瞎子:exception
  • 2.13 日志:日志记录真没您想象得那么简单:logging
  • 2.14 文件IO:实现高效正确的文件读写并非易事:io
  • 2.15 序列化:一来一回,你还是原来的你吗:serialization
  • 2.16 用好Java 8的日期时间类,少踩一些“老三样”的坑:datetime
  • 2.17 别以为“自动挡”就不可能出现OOM:oom
  • 2.18
    当反射、注解和泛型遇到OOP时,会有哪些坑:advancedfeatures
  • 2.19 Spring框架:IoC和AOP是扩展的核心:springpart1
  • 2.20
    Spring框架:帮我们做了很多工作也带来了复杂度:springpart2

第3章 系统设计

  • 3.1 代码重复:搞定代码重复的三个绝招:redundantcode
  • 3.2 接口设计:系统间对话的语言,一定要统一:apidesign
  • 3.3 缓存设计:缓存可以锦上添花也可以落井下石:cachedesign
  • 3.4 业务代码写完,就意味着生产就绪了吗:productionready
  • 3.5 异步处理好用,但非常容易用错:asyncprocess
  • 3.6 数据存储:NoSQL与RDBMS如何取长补短、相辅相成?:nosqluse

第4章 代码安全问题

  • 4.1 数据源头:任何客户端的东西都不可信任:clientdata
  • 4.2
    安全兜底:涉及钱时,必须考虑防刷、限量和防重:securitylastdefense
  • 4.3 数据和代码:数据就是数据,代码就是代码:dataandcode
  • 4.4 如何正确地保存和传输敏感数据:sensitivedata

第5章 Java程序故障排查

  • 5.1 定位Java应用问题的排错套路:N/A
  • 5.2
    分析定位Java问题,一定要用好这些工具:troubleshootingtools
  • 5.3 Java程序从虚拟机迁移到Kubernetes的一些坑:N/A

点赞趋势

如果觉得源码对你有帮助,欢迎Star

下载源码

通过命令行克隆项目:

git clone https://github.com/JosephZhu1983/java-common-mistakes.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 java common mistakes https://www.zuozi.net/34363.html

AndroidFamily
上一篇: AndroidFamily
jphp
下一篇: jphp
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务