Effective Java 笔记

2019-08-29  本文已影响0人  莫库施勒

1,使用Builder 替换构造函数
2,对于类似与Stack 这样的集合类,除了修改索引,对于不使用的要及时reset,缓存中也是,同时还有自动装箱
3,对于Singleton构造函数要考虑到反射和序列化
4,工厂方法可以使用 Supplier接口
5,对于资源的引用需要实现的Java 7 中的 AutoCloseable 接口,使用try-with-resources管理异常

    try(BufferedReader reader = new BufferedReader(new InputStreamReader(        
                new FileInputStream(new File("/home/fuhd/text")),"UTF8"),1024)){
        System.out.println(reader.readLine());    //这里直接读一行
     }

6,修改了equals 方法 ,必须修改 hashCode 方法
7,Java 9 提供了模块访问级别,非模块内不可访问
8,组合和继承的一个区别就是当一个子类继承父类的一类方法,比如父类HashSet 的 addAll 调用 add 方法,而子类可能同时修改 add 和 addAll 方法,会导致 add 方法被调用两次,这种情况下是不适合用 继承的,而应该用组合,所以在public 函数中尽量不要调用 public 函数
9,构造函数中不能调用可被覆盖的方法
10,父类构造函数没有参数,子类没有调用 super 的时候,还是会运行父类的构造函数

上一篇 下一篇

猜你喜欢

热点阅读