《编写高质量代码 改善Java程序的151个建议》是一本关于Java最佳实践的集大成之作,它从Java语言本身、Java程序的架构设计和思想、Java程序的编码规范和习惯等方面对151个经典的问题给出了解决方案,为Java开发者提高开发效率和编写高质量的Java代码提供了宝贵的建议。PDF高清完整版 下载地址:http://www.linuxidc.com/Linux/2014-06/103388.htm下面是本人的读后感:建议1:不要在常量和变量中出现易混淆的字母 包名全小写,类名首字母全大写,常量全部大写并用下划线分隔,变量采用驼峰命名法命名。 当数字与字母 l 或者 o 一起使用时,字母 l 一定要大写, 字母 o 一定要加注释。 请大家猜一下输出结果 public class SuggestOneChapter { public static void main(String[] args) { long i = 1l; System.out.println("i的两倍是:" + (i+i)); } } 建议2:莫让常量蜕变成变量,务必放常量的之在运行期保持不变。 建议3:三元操作符的类型务必一致 public class SuggestOneChapter { public static final int RAND_CONST = new Random().nextInt(); public static void main(String[] args) { int inti = 80; String s = String.valueOf(inti < 100 ? 90 : 100); String s1 = String.valueOf(inti < 100 ? 90 : 100.0); System.out.println(s + ".equals(" + s1 + "):"+ s.equals(s1)); } } 输入结果为false 因为 在s1中 90 会在编译期转变为 90.0。这涉及到了三元操作符的类型转换问题。 建议6:覆写变长方法也循规蹈矩 覆写的方法参数与父类相同,不仅仅是类型,数量,还包括显示形式 public class Test { public void method(String str, Integer[] i) { System.out.println("method2"); } } public class SuggestOneChapter extends Test { public static void main(String[] args) { SuggestOneChapter so = new SuggestOneChapter(); so.method("", 50);
Test t = new SuggestOneChapter(); t.method("", 50);//编译不会通过,The method method(String, Integer[]) in the type Test is not applicable for the arguments (String, int)
} @Override public void method(String str, Integer... is) { System.out.println("method1"); } } 建议7:警惕自增的陷阱 public class SuggestOneChapter { public static void main(String[] args) { int count = 0; for(int i=0; i<10; i++) { count = count++; } System.out.println("count:" + count); } }输出结果是 count:0 至于是什么原因造成的,有兴趣的可以查一查。切记不要这样写。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/103389p2.htm