国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

淺析Java中的 new 關鍵字

2019-11-26 13:59:49
字體:
來源:轉載
供稿:網友

java的new關鍵字想必大家都知道這是實例化一個對象。沒錯,也是為新對象分配內存空間。

比如new MyDate(22,7,1964)這樣一個案例,他的完成需要四部:

一。為新對象分配內存空間,將MyDate存儲到堆。

二。執行顯示的初始化

三。執行構造器。new方法中括號參數傳遞給構造器,出書話該對象數值

四。該變量被賦值為堆內存中新對象的引用

通俗的說,你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輸出值你會發現輸出的正事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.要想實現單利模式,必須修改其構造方法()private DanLi1class(){}//2.首先自己先實例化該實例private static DanLi1class dan1 = new DanLi1class();//3.為保證別的程序訪問到該實例的實例華對象,需要定義一個靜態方法public static DanLi1class danli1(){return dan1;}}

這樣會節省內存占用,使得對象能夠重復使用,何樂而不為呢。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 当涂县| 新平| 沽源县| 云阳县| 丽江市| 长宁县| 扶沟县| 南川市| 定南县| 革吉县| 清流县| 珠海市| 农安县| 六安市| 南充市| 南郑县| 华坪县| 舞钢市| 金寨县| 乌鲁木齐县| 章丘市| 女性| 平山县| 金沙县| 石渠县| 尚志市| 新龙县| 柯坪县| 桦南县| 芦溪县| 清丰县| 黎平县| 香港| 黄浦区| 浪卡子县| 镇雄县| 兰西县| 百色市| 犍为县| 安康市| 哈巴河县|