
java
larva_s
这个作者很懒,什么都没留下…
展开
-
深克隆浅克隆
文章目录1. 深克隆浅克隆区别2. 代码示例3. 应用场景:暂时不知道 1. 深克隆浅克隆区别 深克隆:将对象依赖的示例也克隆了一份出来 浅克隆:只是克隆当前对象示例,对象所依赖的其他示例则不克隆 2. 代码示例 @Data public class Teacher implements Cloneable { private String name; private int a...原创 2019-03-10 12:29:07 · 155 阅读 · 0 评论 -
集合迭代器
文章目录1. 迭代器作用2. 迭代器注意2.1 list for迭代时,可以移除元素,不过会导致一些元素缺失2.2 迭代器迭代,只能通过自身remove来移除元素1. 正确使用迭代器移除元素2. 错误使用集合remove方法移除:抛异常2.3 list forEach迭代时,实际用到了迭代器3. ConcurrentModificationException1. 迭代器remove方法会重新设置e...原创 2019-03-10 13:23:14 · 1091 阅读 · 0 评论 -
comparator和comparable的区别
comparable和comparator区别 comparable是在类实现后,在内部重写了compareTo方法,以此来实现比较对象 comparator则是不依赖类内部的规则,若是需要特殊的比较规则,类内部无法提供该功能,则通过comparator在外部定义比较方法,而不需要修改类内部,灵活。 @Data @AllArgsConstructor public class Student ...原创 2019-03-10 22:49:52 · 181 阅读 · 0 评论 -
重写equals和hashCode的区别
1. 重写equals和hashCode区别 1.1 list中:不需要重写hashcode,重写会提高性能 重写equals是为了比较两个对象,目前需要在一个list中判断是否存在该对象 使用的是 clickRecordList.contains(clickRecord) ,这种情况其实是不需要重写hashCode的,list的contains中并没有利用hashcode去做比较 1.2 s...原创 2019-03-07 22:51:36 · 761 阅读 · 0 评论 -
BigDecimal运算的必要性
基本数据类型运算问题 基本数据类型运算时,采用科学计算等方式运算,获取到的数值并不是准备的,此时是需要通过BigDecimal来对这些进行运算,得到相应需要的值。 比如下面浮点数相加时,0.05 + 0.01,我们需要的结果是 0.06,而实际double基本数据类型运算出来的结果是0.060000000000000005,不符合我们的需要,就需要通过BigDecimal来运算...原创 2019-03-07 23:53:43 · 191 阅读 · 0 评论 -
aop使用-响应时间记录,自定义注解
文章目录1. 记录接口的响应时间2. 结合自定义注解使用2.1 自定义注解2.2 aop处理 1. 记录接口的响应时间 @Component @Aspect public class ActApiLogAop { private static final Logger logger = LoggerFactory.getLogger(ActApiLogAop.class); @...原创 2019-03-25 10:41:56 · 336 阅读 · 0 评论 -
逃逸分析-JIT优化
文章目录1. 逃逸分析1.1 栈上分配1.2 标量替换1.3 锁消除参考文章: 1. 逃逸分析 作用:方法体中创建的对象是线程私有的,若是返回给调用者则出现逃逸现象 开启逃逸分析:开启逃逸分析后,在JIT(即时编译:将热点代码翻译成机器代码)阶段,会优化对象创建时内存分配。 1.1 栈上分配 作用:对象并不是都分配到堆内存中,但对象只是方法私有时,开启逃逸分析则会将这部分对象创建在栈上分配,...原创 2019-03-27 20:15:36 · 327 阅读 · 0 评论 -
juc部分工具类使用-并发测试
文章目录1. 工具1.1 CountDownLatch:线程等待1.2 CyclicBarrier:栅栏,控制线程同时到达某个阶段1.3 Phaser:多阶段栅栏2. 实际使用2.1 CountDownLatch结合Phaser2.2 CountDownLatch结合CyclicBarrier3. 参考链接 1. 工具 1.1 CountDownLatch:线程等待 比如在测试并发时,主...原创 2019-03-28 16:19:56 · 392 阅读 · 0 评论 -
并行流适用场景-CPU密集型
文章目录1. 场景描述2. 原因猜测3. 测试3.1 默认并行流线程数3.2 提高并行流线程数3.3 测试结果:6w个任务4. 总结4.1 I/O密集型4.1 CPU密集型5. 参考资料 1. 场景描述 每天有一次定时任务,需要向300w用户推送支付宝模板消息,单台服务器初次尝试30w个消息推送时,耗时4.6个小时,使用的是并行流推送的方式。 2. 原因猜测 通过监控观察到,推...原创 2019-05-21 11:27:50 · 2220 阅读 · 2 评论