Java內存區域的使用詳解
Java 內存劃分:
在Java內存分配中,java將內存分爲:方法區,堆,虛擬機棧,本地方法棧,程序計數器。其中方法區和堆對於所有線程共享,而虛擬機棧和本地方法棧還有程序計數器對於線程隔離的。每個區域都有各自的創建和銷燬時間。
程序計數器:
作用是當前線程所執行的字節嗎的行號指示器。Java的多線程是通過線程輪流切換並分配處理器執行時間方式來實現的。因此,每個線程爲了能在切換後能恢復到正確的`位置,每個線程需要獨立的程序計數器。
Java 虛擬機棧:
每個放在被執行的時候都會同時創建一個棧幀用於存儲局部變量表,操作數棧,動態鏈接,方法出口等信息。虛擬內存棧就是我們經常講的“棧”。其中局部變量表所需內存是在編譯期完成分配。
本地方法棧:
與虛擬機棧類似,區別在於虛擬機棧爲虛擬機執行Java方法服務,而本地方法棧爲虛擬機使用Native方法服務。
Java 堆:
被所有程序共享,並且在虛擬機啓動時創建。此內存區域作用是存放對象實例。根據Java虛擬機規定,Java堆可以處於物理上不連續的內存空間,只要邏輯上連續即可。
方法區:
與堆相同,在各個線程間共享。作用是存儲已被虛擬機加載的類信息,常量,靜態變量,即時編譯器編譯後的代碼等數據。
運行時常量池:
是方法區的一部分。作用是存儲編譯期生成的各種字面量和符號引用。
相關文章
-
Java Ajax jsonp跨域請求詳解
怎樣用java代碼發起ajax 的jsonp並得到返回數據? 以下是本站小編搜索整理的關於Java Ajax jsonp跨域請求詳解,感興趣的小夥伴們可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網! 1、什麼是JSONP一 -
關於java內存查看與分析詳解
丸子頭髮型扎法的種類是很多的,很多人都想要把頭髮扎得最時尚,最好看,現在最流行的一種丸子頭髮型就是韓式凌亂丸子頭髮型了,你會不會扎?下面就學習一下韓式凌亂丸子頭扎法,示範女生凌亂髮型打理。這是一款栗色染髮的女生髮 -
java中JVM虛擬機內存模型詳細說明
以下是本站小編爲大家收集的java中JVM虛擬機內存模型詳細說明內容,歡迎閱讀學習! JVM的內部結構如下圖:java中JVM虛擬機內存模型詳細說明 - 天涯草 - 天涯草一個優秀Java程序員,必須瞭解Java內存模型、GC工作原理,以及 -
java內存的詳細介紹
java內存的詳細介紹 Java 中的堆和棧 Java把內存劃分成兩種:一種是棧內存,一種是堆內存。在函數中定義的一些基本類型的變量和對象的引用變量都是在函數的棧內存中分配。當在一段代碼塊中定義一個變量時,java就在 -
關於java 四捨五入使java保留2位小數示例講解
複製代碼 代碼如下:/** 測試四捨五入*/package ;/**** @author Hanbin*/public class MyRound {public static void main(String[] args) {double num = 3.23562;double number = 0;number = new MyRound()und(num,2) -
java與javascript之間json格式數據互轉詳解
javascript中對象與字符串的互轉對象轉爲字符串:通過de方法,這個是裏面的方法,引入到當前文件就可以了。字符串轉換爲對象:①使用de方法,同上,引入js就可以了。②jQuery中有個方法,$eJson也可以實現。java中json字符串與對象 -
詳解Java枚舉類型enum及其使用
Java 中的枚舉類型採用關鍵字enum 來定義,從jdk1.5纔有的新類型,所有的枚舉類型都是繼承自Enum 類型。以下是本站小編搜索整理的關於Java枚舉類型enum詳解及其使用,,需要的朋友可以參考本文!想了解更多相關信息請持續關 -
Java入門教程:如何使用一個Java
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。下面是本站小編整理的關於使用java語言的內容,歡迎閱讀! Java入 -
Java的內存劃分全解析
學習成績退步了,要認真找一下原因,是考試的時候狀態不好還是沒有學習以及複習,爲此做一份檢討反思,下面是整理的關於學生成績退步檢討書範文,歡迎借鑑!學生成績退步檢討書一:尊敬的班主任老師:我這一學期的學習成績出現了嚴 -
Java內存溢出的解決方法
一、內存溢出類型1、fMemoryError: PermGen spaceJVM管理兩種類型的內存,堆和非堆。堆是給開發人員用的上面說的就是,是在JVM啓動時創建;非堆是留給JVM自己用的,用來存放類的信息的。它和堆不同,運行期內GC不會釋放空