淺析Java中的 new 關鍵字
java的new關鍵字想必大家都知道這是實例化一個對象。沒錯,也是為新對象分配內存空間。
比如new MyDate(22,7,1964)這樣一個案例,他的完成需要四部:
一。為新對象分配內存空間,將MyDate存儲到堆。
二。執(zhí)行顯示的初始化
三。執(zhí)行構造器。new方法中括號參數(shù)傳遞給構造器,出書話該對象數(shù)值
四。該變量被賦值為堆內存中新對象的引用
通俗的說,你new的操作,實際上是在內存的堆中新添加一個new的對象并且通過構造方法初始化這個新對象并且在棧中存放該對象的引用
下面我有一個案例,通俗易懂那種:
public class Pet { protected bean be = this.b(); public bean b(){ return new bean(); } } public void test(){ be.setName("張三"); } public void test2(){ System.out.println(be.getName()); } public static void main(String[] args) { People pe = new People(); pe.test(); pe.test2(); }
一個父類,一個子類,通過test給name賦值,test2輸出值你會發(fā)現(xiàn)輸出的正事test給name的賦值,因為在運行main方法時,程序會先編譯父類并且實例化be對象,所以子類中的引用都是同一個對象,但是如果修改為下面代碼這種:
public void test(){ bean be = new bean(); be.setName("張三"); } public void test2(){ System.out.println(be.getName()); } public static void main(String[] args) { People pe = new People(); pe.test(); pe.test2(); }
在test中我新new了一個be對象,這樣的輸出是null,因為他們在內存棧中存放的引用是不一樣,在實際編碼的過程中,引用比較多的對象最好在父類中寫好,子類繼承,或者寫成java的單利懶漢模式:
public class DanLi1class { //1.要想實現(xiàn)單利模式,必須修改其構造方法() private DanLi1class(){ } //2.首先自己先實例化該實例 private static DanLi1class dan1 = new DanLi1class(); //3.為保證別的程序訪問到該實例的實例華對象,需要定義一個靜態(tài)方法 public static DanLi1class danli1(){ return dan1; } }
這樣會節(jié)省內存占用,使得對象能夠重復使用,何樂而不為呢。
相關文章
SpringBoot整合Dubbo+Zookeeper實現(xiàn)RPC調用
這篇文章主要給大家介紹了Spring Boot整合Dubbo+Zookeeper實現(xiàn)RPC調用的步驟詳解,文中有詳細的代碼示例,對我們的學習或工作有一定的幫助,需要的朋友可以參考下2023-07-07SpringBoot封裝響應數(shù)據(jù)實現(xiàn)過程詳解
這篇文章主要介紹了SpringBoot封裝響應數(shù)據(jù)實現(xiàn)過程,SpringBoot響應數(shù)據(jù)封裝是指在SpringBoot應用程序中,將返回的數(shù)據(jù)進行封裝,以便于前端頁面或其他客戶端使用,感興趣想要詳細了解可以參考下文2023-05-05springboot druid mybatis多數(shù)據(jù)源配置方式
這篇文章主要介紹了springboot druid mybatis多數(shù)據(jù)源配置方式,具有很好的參考價值,希望對大家有所幫助,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12InputStreamReader和BufferedReader用法及實例講解
這篇文章主要介紹了InputStreamReader和BufferedReader用法及實例講解的相關資料,需要的朋友可以參考下2015-12-12使用Java實現(xiàn)MySQL數(shù)據(jù)鎖定的策略
在并發(fā)環(huán)境下,多個線程同時對MySQL數(shù)據(jù)庫進行讀寫操作可能會導致數(shù)據(jù)沖突和不一致的問題,為了解決這些并發(fā)沖突,我們可以采用數(shù)據(jù)鎖定策略來保證數(shù)據(jù)的一致性和完整性,下面將介紹如何使用Java實現(xiàn)MySQL數(shù)據(jù)鎖定策略,,需要的朋友可以參考下2023-08-08