02 2020 档案

阅读《Effective Java》每条tips的理解和总结(4)
摘要:46 优先考虑流中无副作用的函数 我们知道Stream流是在源数据的基础上生成独立的元素流,操作流不会影响源集合。因此我们在传入函数对象操作流时也应该传入无副作用的函数,看一个反例,统计文件中单词次数: Map<String, Long> freq = new HashMap<>(); try (S 阅读全文

posted @ 2020-02-21 19:48 千山万水楼外楼 阅读(352) 评论(0) 推荐(0)

双重检测单例模式中使用volatile的原因
摘要:以前一直没在意双重检测单例模式中volatile的作用,最近又注意到了它的细节处的作用,在这里记录下。虽然现在单例模式的最佳选择是使用枚举,但通过这个增长知识也是不错的。下面是一般的双重检测单例模式的代码: public class Single { private static volatile 阅读全文

posted @ 2020-02-07 18:26 千山万水楼外楼 阅读(1060) 评论(1) 推荐(0)

关于spring aop的理解与总结
摘要:1. 核心概念 aop是类似与oop的思想,oop通过继承实现代码复用,对于无逻辑上的父子关系的类就不能用了。因此有了面向切面编程(aop),做法就是将没有父子关系的类的相同代码抽取出来作为一个切面,实现代码复用(请注意:interceptor也是aop思想的一种实现,aspect也是aop思想的一 阅读全文

posted @ 2020-02-04 18:43 千山万水楼外楼 阅读(698) 评论(0) 推荐(0)

阅读《Effective Java》每条tips的理解和总结(3)
摘要:34 使用枚举类型替代整型常量 有时会遇到这样一些场景:要表示一组固定的常量值。如春夏秋冬、八大行星等等。我们最容易想到的是用几个int类型的常量表示,但是这样有许多问题要考虑: (1)一个数字没有直观的信息,特别是调试时打印出来用处不大。 (2)数字没有类型区分,容易有类型安全问题。如一个函数本来 阅读全文

posted @ 2020-02-03 17:59 千山万水楼外楼 阅读(332) 评论(0) 推荐(0)

导航