1.命名规范:
包名全小写,类名首字母大写,常量全部大写并用下划线分割,变量采用驼峰命名的方法。注意对于O这个容易混淆要加注释
包名如 com.user 类名如Test 常量如RAND_CONST 变量如 String userPhone
public class Test4 {
public static void main(String[] args){
long i=1l;
System.out.println(i+i);
}
}
这段代码很好的说明问题
2.在定义常量时,一定要确定的定义一个不变量
public static final int RAND_CONST = new Random().nextInt();这个显然是错的,就不是一个确定的常量,
public static final int RAND_CONST = 5;这是对的。
3.三元操作符的类型要一致
你很少用三元操作符吧,我也很少用,三元操作符是if-else的简化方法,是One Line表现,它的性能优于if-else,
int i=80;
String s = String.valueOf(i<100?90:100)这个是对的,类型一致都是int类型
String s1= String.valueOf(i<100?90:100.0)这个是错的,100.0是浮点型了和90类型不一致
4.避免带有变长参数的方法重载
public void calPrice(int price,int... discounts){
float knockdownPrice = price;
for(int discount:discounts){
knockdownPrice = knockdownPrice*dicount/100;
}
}
避免方法名和参数与这个一样
变长参数没用过吧,我也没用过,变长参数是对于可能传入多个值的一种灵活性,那个可变的参数注意要放在参数末尾啊,
并且一个方法只有一个变长参数
5.别让null和空值威胁到变长方法
如果要传个空值到变长方法的那个参数
注意了,空值的类型要给它定义好,因为不传类型的调用者会猜测这个值是什么类型,可能导致内部逻辑乱
如果它是String 类型的话,就传个String类型的空值给它
如
String[] strs = null;
client.methodA("China",strs);
6.覆盖变长方法也要循规蹈矩,这个我直接没理解,用的不多
7.警惕自增的陷阱,这个就简单了,好好写代码,就不会遇到
count=count++;
如果count初值是0,那么不论条件如何都是0,因为正规的写法是这个count++;
解释一下:count++是个表达式,是有返回值的,它的返回值是自加前的返回值,Java对自加是这样处理的是首先把count拷贝到
一个临时变量区,然后加1,最后返回临时变量区的值。
说了一大堆,注意写代码时规范就行了
8.不要旧语法困扰你,遇到了,就查查别纠结
9.少用静态导入
这个主要是为了阅读代码和维护方便,你引入的太多了,阅读麻烦,不利于维护
10.不要在本类中覆盖静态导入的变量和方法
就是你用的静态类,你在命名时别命名相同了,不然就会错
11.你要序列化的话,那个UID你可千万别随手删了,那个保证是同一个对象的,
12.避免用序列化类在构造方法中为不变量赋值,
如:public Person(){
name="ss";
}这是错的
因为反序列化时,构造函数不会执行
13.避免为final变量复杂赋值,这个是你老老实实用一句话搞定,别玩太多花样没事。
持续更新中。。。。。。