<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>生活課堂>生活小常識>

        java堆與棧的區別

        時間: 志峰887 分享

          java堆與棧相信很多人都會混淆,那么應該怎樣去區分呢?下面是學習啦小編為大家準備的java堆與棧的區別,希望大家喜歡!

          java堆與棧的區別

          各司其職

          最主要的區別就是棧內存用來存儲局部變量和方法調用。

          而堆內存用來存儲Java中的對象。無論是成員變量,局部變量,還是類變量,它們指向的對象都存儲在堆內存中。

          獨有還是共享

          棧內存歸屬于單個線程,每個線程都會有一個棧內存,其存儲的變量只能在其所屬線程中可見,即棧內存可以理解成線程的私有內存。

          而堆內存中的對象對所有線程可見。堆內存中的對象可以被所有線程訪問。

          異常錯誤

          如果棧內存沒有可用的空間存儲方法調用和局部變量,JVM會拋出java.lang.StackOverFlowError。

          而如果是堆內存沒有可用的空間存儲生成的對象,JVM會拋出java.lang.OutOfMemoryError。

          空間大小

          棧的內存要遠遠小于堆內存,如果你使用遞歸的話,那么你的棧很快就會充滿。如果遞歸沒有及時跳出,很可能發生StackOverFlowError問題。

          你可以通過-Xss選項設置棧內存的大小。-Xms選項可以設置堆的開始時的大小,-Xmx選項可以設置堆的最大值。

          java堆與棧相關閱讀

          棧與堆都是Java用來在Ram中存放數據的地方。與C++不同,Java自動管理棧和堆,程序員不能直接地設置棧或堆。

          Java的堆是一個運行時數據區,類的對象從中分配空間。這些對象通過new、newarray、anewarray和 multianewarray等指令建立,它們不需要程序代碼來顯式的釋放。堆是由垃圾回收來負責的,堆的優勢是可以動態地分配內存大小,生存期也不必事 先告訴編譯器,因為它是在運行時動態分配內存的,Java的垃圾收集器會自動收走這些不再使用的數據。但缺點是,由于要在運行時動態分配內存,存取速度較 慢。

          棧的優勢是,存取速度比堆要快,僅次于寄存器,棧數據可以共享。但缺點是,存在棧中的數據大小與生存期必須是確定的,缺乏靈活性。

          棧中主要存放一些基本類型的變量(,int, short, long, byte, float, double, boolean, char)和對象句柄。

          棧有一個很重要的特殊性,就是存在棧中的數據可以共享。假設我們同時定義:

          int a = 3;

          int b = 3;

          編譯器先處理int a = 3;首先它會在棧中創建一個變量為a的引用,然后查找棧中是否有3這個值,如果沒找到,就將3存放進來,然后將a指向3。接著處理int b = 3;在創建完b的引用變量后,因為在棧中已經有3這個值,便將b直接指向3。這樣,就出現了a與b同時均指向3的情況。

          這時,如果再令a=4;那么編譯器會重新搜索棧中是否有4值,如果沒有,則將4存放進來,并令a指向4;如果已經有了,則直接將a指向這個地址。因此a值的改變不會影響到b的值。

          要注意這種數據的共享與兩個對象的引用同時指向一個對象的這種共享是不同的,因為這種情況a的修改并不會影響到b, 它是由編譯器完成的,它有利于節省空間。而一個對象引用變量修改了這個對象的內部狀態,會影響到另一個對象引用變量。

        1721130 主站蜘蛛池模板: 亚洲精品一区二区区别| 日本无产久久99精品久久| 欧美性受xxxx白人性爽| 亚洲综合无码一区二区痴汉| 国产精品福利在线观看无码卡一| 亚洲日本韩国欧美云霸高清| 一区二区三区精品自拍视频| 色视频不卡一区二区三区| 天天爽夜夜爱| 国产最新AV在线播放不卡| 99久久精品久久久久久婷婷| 亚洲色大成成人网站久久| 日本女优中文字幕在线一区| 日本亚洲一区二区精品久久| 精品亚洲男人一区二区三区| 免费a级毛片18以上观看精品| 五月综合激情视频在线观看 | 国产成人毛片无码视频软件| 欧美国产日韩在线三区| 免费大黄网站在线观看| 天堂V亚洲国产V第一次| 日日碰狠狠添天天爽超碰97久久| 野花韩国高清电影| 亚洲国产午夜精品理论片妓女| 久久热99这里只有精品| 国产三级精品三级在线区| 欧美 日韩 国产 成人 在线观看| 免费人成视频x8x8日本| 五月综合网亚洲乱妇久久| 日韩精品中文字幕人妻| 亚洲日韩精品制服丝袜AV| 色爱区综合激情五月激情| 在线日韩日本国产亚洲| 日韩成人一区二区三区在线观看| 人妻系列无码专区免费| 色在线 | 国产| 国产午夜A理论毛片| 国产亚洲人成网站在线观看| 亚洲色成人网站www永久四虎| 色欲国产精品一区成人精品| 久久99精品久久久久久9|