前車之鑒,后車之師。

各個地方引用過來的前人的經驗,持續不斷更新中。。。
常量類定義(《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<String> list = new ArrayList<Stirng>();
for (int i = 0; i < list.size(); i++) {
        // 循環操作
}

建議改為:

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

或者:

List<String> list = new ArrayList<Stirng>();
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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容