Effective Java读书笔记并发
第一章:引言编码
第二章:建立和销毁对象spa
第一条:建立对象的方式线程
1、构造器设计
2、 静态方法orm
3、构建器 对象
第三条::强化singleton接口
1、三种方式实现单例get
枚举实现(最佳方式)hash
Public enum Animal{
INSTANCE;
Public void doSomeThing(){
}
}
第六条:消除过时的对象引用
例:栈中取对象时,出去的对象不会被当作垃圾回收,即便再也不使用这些对象,也不会被回收。由于,栈内部维护着对这些对象的过时引用(永远不会被解除的引用)。解决方法:在对象弹出栈时,清空该栈中对象的引用
第三章:对于全部对象通用的方法(Object)
第8条:覆盖equeas时请遵照通用约定
通用约定(若是不遵照,其余依赖这些约定的类如:hashmap,hashSet就没法结合该类一块儿运做)
一、自反性:对于任何非Null的引用x ,x.equals(x)必须返回true
二、对称性:x.equals(y) == y.equals(x)
三、传递性:x.equals(y),y.equals(z) 则x.equals(z)
四、一致性:只要x.equals(y),只要x或y的信息一直不修改,则值一直一致
五、非空性:非空x ,x.equals(null)返回false
第12条:考虑实现Comparable接口
comPareTo是其接口的惟一方法,不但能够进行简单等同性比较,还容许顺序比较
第四章:类和接口
接口优于抽象
第五章:泛型
:声明中具备一个或多个类型参数的类或接口就是泛型
第六章:枚举和注解
枚举:一组固定的常量组成的合法值的类型
@target 使用方式
@Retention 运行时或。。
第七章:方法
第八章:通用程序设计
46:For-each 优于for
49:基本类型优于装箱基本类型
类型:1、基本类型 2、引用类型
基本类型对应有一个引用类型,称为装箱基本类型
装箱:两个引用类型对比时,引用去基本类型的值
拆箱:引用类型比基本类型时,则取基本类型值比,拆箱
54:谨慎使用JNI本地方法
本地语言所设计的方法
56:遵照普通接受的命名规范
包、类或接口、方法或域、常量域、局部变量、类型参数
第九章:异常
58:checked exception /runtime exception /error
第十章:并发
68:executor和task优于线程
countDownLatch
第十一章:序列化
:将一个对象编码成一个字节流