你知道幾種例項化乙個類的方式?
new?反射?還有呢?
筆者總結了一下大概有以下六種方式:
(1)通過構造方法例項化乙個類;
(2)通過class例項化乙個類;
(3)通過反射例項化乙個類;
(4)通過轉殖例項化乙個類;
(5)通過反序列化例項化乙個類;
(6)通過unsafe例項化乙個類;
let us 直接上**:
public class instantialtest catch (nosuchfieldexception e) catch (illegalacces***ception e)
}public static void main(string args) throws exception
private static user unserialize(user user1) throws exception
static class user implements cloneable, serializable
@override
protected object clone() throws clonenotsupportedexception }}
先不要急著往下看,你猜猜上面六種方式列印語句輸出各是多少?
不要看!
不要看!
不要看!
最後列印的結果是這樣:
10
1010
1010
0
意不意外?驚不驚喜?
最後一種通過unsafe例項化的類,裡面的age的值竟然是0,而不是10或者20。
這是因為呼叫unsafe的allocateinstance()方法只會給物件分配記憶體,並不會初始化物件中的屬性,所以int型別的預設值就是0。
例項化 Spring Bean 的幾種方式?
1.常規方式 通過構造器 建立 pojo 實體 user 類 public class user public void setid long id override public string tostring xml 檔案中配置 bean user class org.test.spring.i...
C 類例項化方式
c 中,例項化方式一般有兩種 1,直接定義物件,這時成員變數需要通過 來訪問,如 a a 2,定義乙個類指標,這時需要用到new方法,如 a a new a。訪問類的成員函式或者說是成員變數需要通過 但是這個時候,當物件使用完成之後,需要使用delete a 把該指標刪除。怎樣選擇 二者的記憶體分配...
Thinkphp 模型例項化幾種方式
在控制器要查詢資料就要例項化資料表,thinkphp 定義幾種模型例項化方式,下面詳細說說一下 1,直接例項化方法 user new home model usermodel info new admin model infomodel 2,d方法例項化方法 系統提供了乙個快捷方法d用於資料模型的例...