Java基礎(二)Java記憶體區域
Java記憶體區域包括5部分:程式計數器、Java棧、本地方法棧、Java堆、方法區。
1、程式計數器(執行緒私有)
存放當前執行緒執行的位元組碼的行號指示器。
2、Java棧(執行緒私有)
存放棧幀,棧幀中存放區域性變量表、運算元棧、動態連結、方法返回地址等。
其中,區域性變量表,存放方法引數和區域性變數。
運算元棧,主要用於存放中間變數。
動態連結,常量池中的符號引用,解析為直接引用有兩種方式,一種是類載入階段或第一次使用時解析,即靜態解析;一種是執行期間轉換,即動態連結。
方法返回地址,方法退出時需要在棧幀中儲存一些資訊,正常退出時是PC計數器的值,異常退出時不儲存。
3、本地方法棧(執行緒私有)
存放本地方法的棧幀。
4、Java堆
存放Java物件例項。
5、方法區
儲存被虛擬機器載入的類資訊、常量、靜態變數、即時編譯器編譯後的程式碼等,在JDK1.8後,方法區中的資料被移到元空間(MetaSpace)中,元空間位於本地記憶體,也就是不在虛擬機器中。
相關推薦
Java基礎(二)Java記憶體區域
Java記憶體區域包括5部分:程式計數器、Java棧、本地方法棧、Java堆、方法區。 1、程式計數器(執行緒私有) 存放當前執行緒執行的位元組碼的行號指示器。 2、Java棧(執行緒私有) 存放棧幀,棧幀中存放區域性變量表、運算元棧、動態連結、方法返回地址等。 其中,區域性變量
Java基礎(二)Java 基礎語法,小白趕緊來學習吧!
Java 基礎語法 一個Java程式可以認為是一系列物件的集合,而這些物件通過呼叫彼此的方法來協同工作。下面簡要介紹下類、物件、方法和例項變數的概念。 物件:物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。 類:類
Java基礎(二)----------Java中Static修飾符和final關鍵字
1.Static靜態修飾符 在程式中任何變數或者程式碼都是在編譯時,由系統自動分配記憶體來儲存的,而所謂靜態就是指在編譯後分配的記憶體會一直存在,直到程式退出時才會釋放記憶體空間。Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件
java基礎(二)
同時 -1 局限 .post out 不同 所有 over 時有 、面向對象基礎 類與對象 封裝 構造方法 方法 重載 對象數組 this關鍵字 static關鍵字 1.1類與對象 類:類是抽象的,概念上的,共性的,是對象的模板 對象:個體,具體的,可以看見的,對象是個
Java基礎(二)---數組簡介
變量名 element 報錯 根據 依次 -- 一個數 概念 lan 本篇對數組進行一個簡單的介紹:數組(Array) 1.概念: 數組:同一種類型數據的0到多個數據的組合,可以是基本數據類型,也可以是引用數據類型 註:數組類型是引用數據類型時,數組名保存的是一段內存空間的
java基礎(二)迴圈巢狀與控制跳轉
迴圈巢狀 package com.st.basis.day04; /* * 迴圈巢狀 * 外層控制行數 * 內層控制列數 * */ public class LoopNesting { public static void main(String[] args) { //
Java基礎(二)重寫、繼承(函式,建構函式、變數的繼承過程)、抽象。
Java不支援多繼承,因為容易帶來安全隱患,當多個父類中定義了相同功能,但功能內容不同時,子類物件不確定要執行哪一 個。 繼承是底層不斷向上抽取共性而來的。在具體呼叫時,要建立最子類的物件(更多的功能,包括共有的和特有的)。 載入子類檔案時候,先載入父.
java基礎(二)static四種應用場景
一、修飾成員變數 static關鍵字可以修飾成員變數和方法,來讓它們變成類的所屬,而不是物件的所屬。 public class Person { private static int count = 0; int id; String name; in
java基礎(二):一些簡單的固定方法
1.不通過第三個變數交換2個變數值 a = a+b; b = a-b; a = a-b; 2.列印正三角 for(int
java基礎(二):深入理解String
一、String類 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** Th
java基礎(二):談談Java基本資料結構
資料結構是計算機儲存,組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或儲存效率。資料結構往往同高效的檢索演算法和索引技術有關 java中常見的幾種資料結構(也是初級工程師常見面試題)主要是一些常見的容器,它們主要來自於Collec
java基礎(二),hello word
陣列定義有三種方式: 1.資料型別 識別符號[ ]; 2.資料型別 識別符號[ ] = new 資料型別[大小]; 3.資料型別 識別符號[ ] = {值1,值2,值3,…}; //只能在定義的時
JAVA基礎(7)---java中的變數和常量
資料在執行過程中,有的不會改變,有的會發生改變。變得就稱為變數 不變的就稱常量。 變數 變數:變數是Java程式中最基本的儲存單元 變數的屬性:變數名,資料型別,儲存單元和變數值 1、變數名:合法的識別符號 2、資料型別:可以是基本資料型別和引用資料型
Java編譯(二) Java前端編譯:Java原始碼編譯成Class檔案的過程
Java編譯(二)Java前端編譯: Java原始碼編譯成Class檔案的過程 在上篇文章《Java三種編譯方式:前端編
Java基礎(四)java連線資料庫
Java 連線 MySQL和Java 連線 Oracle資料庫的一些基本總結: 1.Java 連線 MySQL資料庫 //整體封裝寫為一個方法(後續補上) public class MysqlDemo { //引入Jdbc驅動及資料庫地址URL final String Jd
Java基礎(三)Java中‘==’與euqal()和contains整理
一.Java 中 == 比較 在java中,’=='運用在基本資料型別的時候,比較的是物件的記憶體地址,如下: public class Equals { public static void main(String[] args) { String s3= new String(
Java基礎(一)Java本地方法
1、Java本地方法概念 Java中的方法分為兩種:Java方法和本地方法。 Java方法由Java語言編寫,編譯成位元組碼,儲存在class檔案中。 本地方法由其他語言編寫,編譯成與處理器相關的機器程式碼,本地方法儲存在動態連結庫(如ddl中)。 本地方法的存在的意義,主要在於Ja
Java基礎(四)Java類的成員變數和區域性變數
在Java中,成員變數和區域性變數存在較大的差異性。首先,我們來看一下變數的分類圖: 成員變數 成員變數被分為:類屬性和例項屬性。 例項屬性:定義一個屬性時,不使用static修飾的就是例項屬性, 類屬性:定義一個屬性時,使用static修飾的是類屬性。 類屬性從這
Java基礎(五)Java中的引數傳遞機制
通過前一篇文章的介紹,我們從整體上明白了,Java類中變數的差異性、不同變數在記憶體中的儲存位置,以及變數的生命週期等。今天,我們來看一下Java中引數傳遞的機制。 形參:方法宣告時包含的引數宣告 實參:呼叫方法時,實際傳給形參的引數值 Java方法的引數傳遞機制:
java基礎(四) Java的四種引用,強弱軟虛,用到的場景
強引用: 強引用不會被GC回收,並且在java.lang.ref裡也沒有實際的對應型別,平時工作接觸的最多的就是強引用。 Object obj = new Object();這裡的obj引用便是一個強引用。 如果一個物件具有強引用,那就類似於必不可少的生活用品,垃