java effective 读书笔记

java effective 读书笔记

【1】创建和销毁对象
1 静态工厂方法  就是“封装了底层  暴露出一个访问接口  ”  门面模式
2 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象
3 枚举 singleton  不知道怎么操作,觉得意义不大   单例模式
4 私有化构造器不能实例化,也不可被子类继承
5 能用原生类的就尽量不用对象


【2】对于所有对象都通用的方法

reflexivity  自反性 
symmetry  对称性

 【3】类成员 降低可访问性
   尽量把公有域 变成私有域,并提供 访问和修改的 get set 方法 ,这样便于 添加辅助功能 
   公有类永远都不要暴露可变的域

 使可变性最小
   
decorator  warpper 包装
 
property 继承自hashtable  用 decorator 模式 遇到 property中有的而hashtable中没有 的 时候 就有问题了  比如(load 或 sotre)

要么为了继承设计  要么就不要继承

接口优于抽象类

若有标签域,最好重构到一个层次结构中。


策略模式strategy  如比较器的底层实现 

通过函数对象表示 表示策略      

优先考虑静态成员类

尽量使用泛型 以达到类型检察的目的

能不重载尽量不重载
尽量不使用变参方法

返回值类型为数组或者集合的方法 即使内容为空也没必要返回null

尽量些 文档注释  

把局部变量的作用域尽量缩小 便于阅读 和使用 
对于装箱基本类型运用==操作符几乎总是错误的


使用 StringBuilder 代替 字符串连接符  提高效率。

 多用接口代替类,使程序比较灵活
 接口优先于反射
 谨慎使用本地方法 因为本地方法是不安全的,可能破坏内存 


如果数值范围没有超过9位十进制数字--->int
如果数值范围没有超过18位十进制数字--->long
如果数值范围超过18位十进制数字--->BigDecimal
 

有限制通配符
不要快 要好


命名 惯例 
类名 接口名 单词首字母大写 
方法名 域名称 首字母小写 
常量域所有字母大写 字母间用下划线隔开 

异常
异常捕捉 在必要时候用,能不用尽量不用 
异常为异常情况而设计,不需要用在普通控制流程中。

异常类越少越好  节约内存 。
异常信息应该针对关键点

并发不仅仅有互斥  它还提供了其它线程可以看到这个线程的机会 


在同步区域中调用外部方法  容易造成死锁。
尽量减少同步区工作量 

 


BigDecimal

<<Java Concurrency in Practice>>

java.util
java.lang
java.io
Random.nextInt();

CountDownLatch  Semaphore 
CyclicBarrier Exchanger

Laffy is open source on http://laffy.dev.java.net
•http://download.java.net/javadesktop/laffy/Laffy.jnlp

Java™ for Programmers
By Paul Deitel, Harvey M. Deitel

 

posted on 2016-04-06 10:34  rojas  阅读(138)  评论(0编辑  收藏  举报