前车之鉴,后车之师。

各个地方引用过来的前人的经验,持续不断更新中。。。
常量类定义(《Effective Java》)

定义私有的构造方法,使其不可被实例化
注:常量接口模式是对接口的不良使用

public class Util {

    private Util() {
    }

    /**
     * 登陆时 手机号未注册
     */
    public static final String MOBILE_NOT_REGISTER = "手机号未注册!";

    /**
     * 手机号码错误
     */
    public static final String MOBILE_IS_ERROR = "请填写正确的手机号码!";

    /**
     * 验证码错误
     */
    public static final String AUTHCODE_IS_ERROR = "验证码错误!";

    /**
     * 手机号码已经被注册
     */
    public static final String MOBILE_IS_REGISTER = "该手机号码已被注册!";

    /**
     * ...........................
     */
}
获取整数类型的随机数

不推荐使用

Math.random();//然后乘以N倍获取整数

使用

new Random().nextInt(101);//输出0~100之间的随机数,包含0和100
所有相同类型的包装类对象比较值统一使用equals();

使用

"test" .equals(object);

替换

object.equals("test");

Object的equals方法容易抛空指针异常,应使用常量或确定有值得对象来调用equals
推荐使用java.util.Objects#equals (JDK7引入的工具类)

获取系统时间

使用:

System.currentTimeMillis();

替换:

new Date().getTime();

以提高性能

for循环设值

避免每次循环都会取值跟赋值,以提高性能。

List list = new ArrayList();
for (int i = 0; i < list.size(); i++) {
        // 循环操作
}

建议改为:

List list = new ArrayList();
for (int i = 0, n = list.size(); i < n; i++) {
        // 循环操作
}

或者:

List list = new ArrayList();
int n = list.size();
for (int i = 0; i < n; i++) {
        // 循环操作
}
乘法和除法使用移位操作

用移位操作可以极大地提高性能,因为在计算机底层,对位的操作是最方便、最快的.

例如:

for (itn i = 0,n = 10; i < n ; i++){
    a = a * 8;  
    b = b / 2;
}

建议改为:

for (itn i = 0,n = 10; i < n ; i++){
    a = a << 3;  
    b = b >> 1;
}
  • 左移运算符( << ),num << 1,相当于num乘以2
  • 右移运算符( >> ),num >> 1,相当于num除以2
判断两个对象是否equal

使用Objects.equals()方法,可以避免空指针异常

String str1 =  null,str2 = "test"; 
str1.equals(str2);// 空指针异常
Objects.equals(str1,str2);// OK

Objects.equals的实现为

public static boolean equals(Objecta,Objectb){
    return (a == b) || (a != null && a.equals(b));
}
避免创建不必要的对象(《Effective Java》)

一个极端的例子:

String s  =  new String("string"); // Don't do this

该语句每次执行的时候都会创建一个新的String实例,但是这写创建对象的动作全都是不必要的,传递个String构造器的参数(“string”)本身就是一个实例,功能方面等同于构造器创建的所有对象。

改进:

String s  = "string"; // Do this

你可能感兴趣的:(前车之鉴,后车之师。)