1. 程式人生 > >物件例項化-new & getInstance()方法

物件例項化-new & getInstance()方法

1. new的使用: 如Object _object = new Object(),這時候,就必須要知道有第二個Object的存在,而第二個Object也常常是在當前的應用程式域中的,可以被直接呼叫的 2. GetInstance的使用: 在主函式開始時呼叫,返回一個例項化物件,此物件是static的,在記憶體中保留著它的引用,即記憶體中有一塊區域專門用來存放靜態方法和變數,可以直接使用,呼叫多次返回同一個物件。 3.兩者區別對照: 大部分類(非抽象類/介面/遮蔽了constructor的類)都可以用new,new就是通過生產一個新的例項物件,或者在棧上宣告一個物件 ,每部分的呼叫用的都是一個新的物件。 getInstance是少部分類才有的一個方法,各自的實現也不同。getInstance在單例模式(保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點)的類中常見,用來生成唯一的例項,getInstance往往是static的。 (1) 物件使用之前通過getinstance得到而不需要自己定義,用完之後不需要delete; (2)new 一定要生成一個新物件,分配記憶體;getInstance() 則不一定要再次建立,它可以把一個已存在的引用給你使用,這在效能上優於new; (3) new建立後只能當次使用,而getInstance()可以跨棧區域使用,或者遠端跨區域使用。所以getInstance()通常是建立static靜態例項方法的。