
Effective java 3rd
fany000
https://github.com/fany000
展开
-
Effective Java 3rd (二)
11.当你覆写equals时每次都覆写hashCode原创 2019-06-25 11:46:52 · 183 阅读 · 0 评论 -
Effective Java 3rd (一)
1、考虑使用静态工厂方法替代构造方法原创 2019-06-18 15:19:04 · 339 阅读 · 0 评论 -
Effective Java 3rd (四)
31. 使用限定通配符来增加 API 的灵活性原创 2019-07-08 16:25:50 · 113 阅读 · 0 评论 -
Effective Java 3rd (三)
21. 为后代设计接口jdk8新增的default 默认方法会让类继承这些默认方法,存在一些风险,例如:Collection接口的removeIf方法是jdk8新增的default 方法,org.apache.commons.collections4.collection.SynchronizedCollection 类承诺提供的方法都是同步的,SynchronizedCollection ...原创 2019-06-28 11:02:13 · 223 阅读 · 0 评论 -
Effective Java 3rd (五)
目录使用标记接口定义类型lambda表达式优于匿名类方法引用优于lambda表达式优先使用标准的函数式接口明智审慎地使用Stream优先考虑流中无副作用的函数优先使用Collection而不是Stream来作为方法的返回类型谨慎使用流并行检查参数有效性必要时进行防御性拷贝41. 使用标记接口定义类型标记接口(marker interface),不包含方法声明,只是指定(...原创 2019-07-12 19:17:28 · 213 阅读 · 0 评论 -
Effective Java 3rd (六)
目录仔细设计方法签名明智审慎地使用重载明智审慎地使用可变参数返回空的数组或集合,不要返回 null明智审慎地返回 Optional为所有已公开的 API 元素编写文档注释最小化局部变量的作用域for-each 循环优于传统 for 循环了解并使用库若需要精确答案就应避免使用 float 和 double 类型51. 仔细设计方法签名仔细选择方法名名称名称应始终遵守标准...原创 2019-07-16 18:07:09 · 156 阅读 · 0 评论 -
Effective Java 3rd (九)
目录并发工具优于 wait 和 notify文档应包含线程安全属性明智审慎的使用延迟初始化不要依赖线程调度器优先选择 Java 序列化的替代方案非常谨慎地实现 Serializable考虑使用自定义的序列化形式保护性的编写 readObject 方法对于实例控制,枚举类型优于 readResolve考虑用序列化代理代替序列化实例81. 并发工具优于 wait 和 noti...原创 2019-07-23 18:25:23 · 213 阅读 · 0 评论 -
Effective Java 3rd (七)
目录基本数据类型优于包装类当使用其他类型更合适时应避免使用字符串当心字符串连接引起的性能问题通过接口引用对象接口优于反射明智审慎地本地方法明智审慎地进行优化遵守被广泛认可的命名约定只针对异常的情况下才使用异常编程错误使用运行时异常61. 基本数据类型优于包装类需要注意自动拆箱、装箱产生的bug// Broken comparator - can you spot th...原创 2019-07-19 11:38:46 · 167 阅读 · 0 评论 -
Effective Java 3rd (八)
目录避免不必要的使用受检异常优先使用标准的异常抛出与抽象对应的异常每个方法抛出的异常都需要创建文档在细节消息中包含失败一捕获信息保持失败原子性不要忽略异常同步访问共享的可变数据避免过度同步executor 、task 和 stream 优先于线程71. 避免不必要的使用受检异常方法中使用受检异常,会强迫调用方必须处理异常,增加了可靠性,但是像stream则无法处理受检异...原创 2019-07-22 16:08:48 · 141 阅读 · 0 评论