0.编程应该尽可能简单,以同样的方式实施同样的过程,不断积累惯用法,将其标准化。
1.考虑用静态工厂方法代替构造器,即getInstance()、newInstance()、valueOf() 等。
2.当类的构造器或者静态工厂中具有多个参数时,请选择Builder模式设计此类。
3.实现Singleton,除了用静态工厂方法+私有构造器外,还有一种更好的方法,即:单无素的枚举类型。
4.避免创建不必要的对象,要优先使用基本类型而不是装箱基本类型,要当心无意识的自动装箱。
5.当你应该重用现有对象的时候,请不要创建新的对象。
6.消除过期的对象引用,警惕在数组、缓存、监听器或其它回调中发生内存泄漏问题。
7.避免使用终结方法,不应该依赖终结方法来更新重要的持久状态,使用终结方法有一个非常严重的性能损失。
8.覆盖equals时请遵守通用约定,一旦违反了equals约定,当其他对象面对你的对象时,你完全不知道这些对象的行为会怎么样。
9.一个类型的任何重要属性也将适用于它的子类型,因此为该类型编写的任务方法,在它的子类型上也应该同样运行得很好。
10.始终要覆盖toString,提供好的toString实现可以使类用起来更加舒适。
11.谨慎地覆盖clone方法,考虑提供一个拷贝构造器或拷贝工厂代替clone方法。
12.永远不要让客户去做任何类库能够替客户完成的事情。
13.设计一个类时,应当尽可能地使每个类或者成员不被外界访问。
14.在公有类中,不应该直接暴露数据域,而应使用访问方法。
15.使类的可变性最小化,如果类不能被做成不可变的,也应该尽可能地限制它的可变性。
16.复合优先于继承,与方法调用不同的是,继承打破了封装性,只有当子类真正是超类的子类型时,才适合用继承。
17.设计一个超类时,超类的构造器决不能调用可被覆盖的方法。
18.接口优于抽象类,现有类可以很容易被更新,以实现新的接口。
19.接口应该只被用来定义类型,它们不应该用来导出常量。
20.用函数对象表示策略,函数指针的主要用途就是实现策略模式,在Java中要声明一个接口表示该策略。
21.不要在新代码中使用原生态类型,如果使用原生态类型,就失掉了泛型在安全性和表述性方面的所有优势。
22.泛型列表优先于数组。
23.优先考虑泛型,优先考虑泛型方法。
24.请用enum代替int常量。
25.不要使用枚举的序数导出与它关联的值,应该要将它保存在一个枚举成员变量中。
26.请用EnumSet代替位域,用EnumMap代替序数索引。
27.虽然枚举类型不可扩展,但可以通过实现接口,对它进行模拟扩展。
本博文会长期,持续的更新~~~:)
相关推荐
附加中是我在开发过程中的工作记录,给大家共享一下,希望大家用的到。
java开发的笔记
Java初级学习笔记,从最基础的环境变量设置开始。
达内Java 开发教学笔记整理合集: Unix 笔记 Core JAVA 笔记 OOAD思想 笔记 Oracle 笔记 JDBC 笔记 Hibernate 笔记 HTML&java script 笔记 Servlet 笔记 Jsp 笔记 Struts 1.2 笔记 Struts 2 笔记 Ajax 笔记 Spring ...
java开发笔记java开发笔记java开发笔记java开发笔记java开发笔记
1.Java_SE基础全程学习笔记.pdf 2.Java开发工作经验高级特性总结.pdf 3.Java数据结构笔记.pdf 4.Java学员总结笔记.pdf
这笔记包括了JAVA项目开发的部分内容,我看了感觉还是比较好的,所以和大家分享下!
包括个人体验,400多篇技术文章,经典面试问答,不容错过,5个资源分超值
Servlet基础知识,JDBC,Hibernate,Struts 1.X 使用手册,JavaScript
java开发基础笔记,第一章。非常全面的总结,技术性文章。
Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件...
java框架核心技术笔记,java框架核心技术笔记,java框架核心技术笔记
MLDN Java web开发实战笔记pdf,MLDN Java web开发实战笔记pdf,MLDN Java web开发实战笔记pdf,MLDN Java web开发实战笔记pdf
Java开发学习笔记,自己开始java做的一个介绍的ppt
我的工作笔记我的工作笔记我的工作笔记我的工作笔记我的工作笔记
李兴华java实战经典笔记
Java开发的相关注意事项,主要涉及Java开发的相关规约、规范,一些强制规范的解释等
总结了java开发中经常会碰到的问题的原因,及解决办法!
java web 笔记 struts:java web开源框架,主要是用来简化servlet开发