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
时间: 2024-10-21 04:13:18