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

首頁 > 學院 > 開發設計 > 正文

Java的堆(Heap)和棧(Stack)的區別

2019-11-15 00:44:44
字體:
來源:轉載
供稿:網友
java的堆(Heap)和棧(Stack)的區別

Java中的堆(Heap)是一個運行時數據區,用來存放類的對象;棧(Stack)主要存放基本的數據類型(int、char、double等8種基本數據類型)和對象句柄。

例1

        int a=5;        int b=5;        System.out.PRintln(a==b);

以上例子中,編譯器首先處理int a=5,首先在棧中創建一個引用a,然后在棧中查找是否有5這個值,如果有,則將a指向5,如果沒有,則創建一個5,再將a指向5。當處理int b=5時,由于棧中肯定已經存在5,直接將b指向5,這樣a和b都指向5,因此a==b為true。

例2

        int a=5;        int b=5;        System.out.println(a==b);                b=6;        System.out.println(a==b);

以上例子中,給b重新賦值以后,a和b不是指向同一個值,因此第一個a==b為true,第二個a==b為false。

例3

        String a="ABC";        String b="ABC";        String c=new String("ABC");        String d=new String("ABC");        System.out.println(a==b);        System.out.println(a==c);        System.out.println(c==d);

以上例子中,String是一種對象,因此存放在堆中,給a和b賦值的過程和例1差不多,只不過是在堆中進行的。c和d使用了關鍵字new,因此不管堆中是否已經有這個值,都在堆中新建一個值,因此輸出結果為true,false,false。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 财经| 绩溪县| 南木林县| 南部县| 宜兴市| 栾川县| 邵东县| 兰考县| 吉安县| 泰来县| 平罗县| 开江县| 郑州市| 浮山县| 永德县| 讷河市| 安仁县| 高平市| 广东省| 德令哈市| 从化市| 迭部县| 西盟| 沈阳市| 方城县| 南岸区| 元谋县| 云浮市| 寻甸| 宜兴市| 嘉定区| 湖州市| 长岭县| 大宁县| 永仁县| 松滋市| 凉城县| 灌阳县| 门头沟区| 泸州市| 巧家县|