java程式碼優化(一)——建立和銷燬物件
阿新 • • 發佈:2018-12-17
用靜態工廠方法代替構造器
準備知識
自動裝箱:從基本資料型別轉換成包裝型別。
自動拆箱:從包裝型別轉換成基本資料型別。
包裝類:
- number(數字型別)
- Byte(byte)
- Short(short)
- Integer(int)
- Long(long)
- Double(double)
- Float(float)
- Character(字元型別)
- Boolean(布林值)
利用靜態工廠方法來建立物件
當我們利用構造器建立物件時,如果構造器的引數很多會造成new的物件裡要填寫很多引數,很容易導致錯誤。而且每次都建立一個新的物件,肯定會佔用大量記憶體,所以使用靜態工廠方法可以解決這些問題。
private class Person {
private static Person person = null;
public static Person getInstance(){
if(person == null){
person = new Person();
}
return person;
}
}
靜態工廠方法的優勢
①每次呼叫靜態工廠方法,都不會重複建立物件。
利用不可變類的設計原則,當物件總是重複建立,並且建立物件的代價很高,可以提高效能
final class Immutable { private static final Immutable immutable = new Immutable(); public static Immutable getInstance(){ return immutable; } public static Immutable getImmutable() throws CloneNotSupportedException { return (Immutable) immutable.clone(); } }