源码
文章平均质量分 92
生产事故中剖析源码...
BugRoot
CV大法(唯快不破),既搬既用。
展开
-
JDK1.8之DateTimeFormatter
我们常用的日期格式方式就是使用SimpleDateFormat,SimpleDateFormat在我们系统的里面,经常会用到,比如转换时间戳导出、打印啊等等。伪代码:正常我们都会这样使用转换时间注意:有些是需要的时候创建新实例如:工具类,创建新的实例SimpleDateFormat在并发下会出现出现时间不对,线程挂死等等。见源码:作者写的注释:翻译为:日期格式不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一种格式,则必须从外部对其进行同步。我们常用的forma原创 2021-05-11 16:25:43 · 3480 阅读 · 0 评论 -
Java+CountDownLatch多任务处理优化
前言项目有许多统计的功能,有些统计页面,要展示几个统计的结果,用户通过前台设置相关参数,后台实时统计并返回数据。后台查询正常查询结果是串行的。最好的用户体验,就是每一个操作都可以实时的展示数据,3秒之内应该是用户的忍受范围之内的了,所以做一款产品不仅要考虑用户交互设计,后端的优化也是比不可少的。举一个物流项目例子:1:统计订单量2:统计物流信息的时效3:统计客户下单量(按高到低排序)大家可以简单的看下以上这3项统计数据,总体来说,统计量还是不少的。最主要的还是要实时、实时、实时(重要的事情说三原创 2021-05-10 18:32:48 · 2804 阅读 · 0 评论 -
JDK1.8特性之StringJoiner
StringBuilder、StringBuffer、String这三个的区别,很多文章都有在说。这边也给大家做一个简要的概述一:String、StringBuilder、StringBuffer1:StringString类型是不可变对象,所以我们在每次对 String 类型进行改变的时候,其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String 。见源码:final修饰原创 2021-05-10 16:00:22 · 2981 阅读 · 0 评论 -
十万个为什么不推荐使用BeanUtils属性转换工具
至于为什么,我们跟着源代码来看,以及各种拷贝工具的性能效率;对比工具如下:1:apache common-beanUtils2:Spring beanUtils3:CGLib(实现converter与不实现converter情况,提供缓存BeanCopier提升性能)4:Mapstruct效率:getter/setter > Mapstruce > CGLib > Spring >apache common-beanUtils …;推荐直接定义转换类和方法可使用 IDE原创 2021-04-29 16:03:34 · 6663 阅读 · 0 评论