奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

Java中的堆和棧的區別

時間:2024-10-01 17:29:11 java語言 我要投稿

Java中的堆和棧的區別

  當一個人開始學習Java或者其他編程語言的時候,會接觸到堆和棧,由于一開始沒有明確清晰的說明解釋,很多人會產生很多疑問,什么是堆,什么是棧,堆和棧有什么區別?下面小編給大家介紹Java中的堆和棧的區別,歡迎閱讀!

  java中堆和棧的區別自然是面試中的常見問題,下面幾點就是其具體的區別

  各司其職

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

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

  獨有還是共享

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

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

  異常錯誤

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

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

  空間大小

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

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

  這就是Java中堆和棧的區別。理解好這個問題的話,可以對你解決開發中的問題,分析堆內存和棧內存使用,甚至性能調優都有幫助。

  查看默認值(Updated)

  查看堆的默認值,使用下面的代碼,其中InitialHeapSize為最開始的堆的大小,MaxHeapSize為堆的最大值。

  13:17 $ java -XX:+PrintFlagsFinal -version | grep HeapSize

  uintx ErgoHeapSizeLimit = 0 {product}

  uintx HeapSizePerGCThread = 87241520 {product}

  uintx InitialHeapSize := 134217728 {product}

  uintx LargePageHeapSizeThreshold = 134217728 {product}

  uintx MaxHeapSize := 2147483648 {product}

  java version "1.8.0_25"

  Java(TM) SE Runtime Environment (build 1.8.0_25-b17)

  Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

  查看棧的默認值,其中ThreadStackSize為棧內存的大小。

  13:21 $ java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

  intx CompilerThreadStackSize = 0 {pd product}

  intx ThreadStackSize = 1024 {pd product}

  intx VMThreadStackSize = 1024 {pd product}

  java version "1.8.0_25"

  Java(TM) SE Runtime Environment (build 1.8.0_25-b17)

  Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)


【Java中的堆和棧的區別】相關文章:

關于java中堆和棧的區別10-22

c語言指針運用中堆和棧的區別10-06

Java堆、棧和常量池的解釋09-16

C語言中堆和棧的區別有哪些08-12

分析Java內存分配的棧和堆以及常量池06-24

java中length和length()的區別08-24

Java中hashmap和hashtable的區別06-20

java中String和StringBuffer的區別08-01

Java中對象和引用的具體區別05-18

java中i++和++i的區別10-26

主站蜘蛛池模板: 镶黄旗| 柏乡县| 大埔区| 武安市| 高陵县| 新乡县| 昌邑市| 西畴县| 林甸县| 乐平市| 夹江县| 沙湾县| 扶余县| 金门县| 咸宁市| 彭州市| 靖边县| 柯坪县| 嘉义市| 时尚| 吉林省| 诸城市| 义乌市| 监利县| 宜章县| 通城县| 庐江县| 嵊泗县| 大连市| 河津市| 高阳县| 顺义区| 阿拉尔市| 改则县| 错那县| 大邑县| 武平县| 武邑县| 青神县| 登封市| 阿鲁科尔沁旗|