《编写高质量代码 改善Java程序的151个建议》是一本关于Java最佳实践的集大成之作,它从Java语言本身、Java程序的架构设计和思想、Java程序的编码规范和习惯等方面对151个经典的问题给出了解决方案,为Java开发者提高开发效率和编写高质量的Java代码提供了宝贵的建议。
下面是本人的读后感:
建议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
至于是什么原因造成的,有兴趣的可以查一查。切记不要这样写。