java基礎:記憶體分配機制
在任何程式語言中,無論是基本型別還是引用型別,不論其作用域如何,都必須為其分配一定的記憶體空間,Java 語言也不例外
Java 的資料型別可以分為兩種:基本型別(變數持有資料本身的值)和引用型別(是某個物件的引用,而並非是物件本身);
基本型別包括:boolean、float、double、int、long、short、byte以及char;在Java程式語言中除基本型別以外其餘都是引用型別如:類型別、陣列型別等。
在計算機記憶體中主要來自四個地方:heap segment(堆區)、stack segment(棧區)、codesegment(程式碼區)、data segment(資料區);不同的地方存放不同資料:其中堆區主要存放Java程式執行時建立的所有引用型別都放在其中;棧區主要存放Java程式執行時所需的區域性變數、方法的引數、物件的引用以及中間運算結果等資料;程式碼區主要存放Java的程式碼;資料區主要存放靜態變數及全域性變數;以下結合例項來探討其具體機制。
舉個例子:
public class Student {
private String name;
private int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Test {
static int i = 10;
public static void main(String[] args) {
Student s1 = new Student("feng", 21);
}
}
當該程式執行起來後,其計算機記憶體分佈大致如下:
相關文章
- java基礎-記憶體分配Java記憶體
- JVM深入淺出 -- Java記憶體分配機制JVMJava記憶體
- 【記憶體管理】頁面分配機制記憶體
- 垃圾收集機制與記憶體分配策略記憶體
- MySQL • 原始碼分析 • 記憶體分配機制MySql原始碼記憶體
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- java基礎(一):談談java記憶體管理與垃圾回收機制Java記憶體
- java記憶體分配Java記憶體
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- Java記憶體管理機制Java記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- JVM基礎:JVM記憶體組成及分配JVM記憶體
- Java基礎:記憶體模型Java記憶體模型
- Java記憶體模型_基礎Java記憶體模型
- dm8127 記憶體分配和管理機制記憶體
- 【Java基礎】實體記憶體&虛擬記憶體Java記憶體
- Java的記憶體回收機制Java記憶體
- java-方法記憶體分配Java記憶體
- Java 堆疊記憶體分配Java記憶體
- 8.JVM記憶體分配機制超詳細解析JVM記憶體
- Java基礎知識_記憶體Java記憶體
- Java記憶體模型的基礎Java記憶體模型
- 深入js基礎:從記憶體機制、解析機制到執行機制(長文預警)JS記憶體
- 淺析java記憶體管理機制Java記憶體
- Java程式執行記憶體機制Java記憶體
- 圖解Java記憶體回收機制圖解Java記憶體
- Java虛擬機器記憶體分配與回收策略Java虛擬機記憶體
- Java虛擬機器7:記憶體分配原則Java虛擬機記憶體
- [Java基礎]記憶體洩漏和記憶體溢位Java記憶體溢位
- 【Java】 記憶體分配全面淺析Java記憶體
- 在繼承和多型中的記憶體分配機制繼承多型記憶體
- 建立快取記憶體機制-java版快取記憶體Java
- Java記憶體模型,垃圾回收機制,常用記憶體命令及工具Java記憶體模型
- Java的記憶體管理機制之記憶體區域劃分Java記憶體
- JVM的藝術-物件建立與記憶體分配機制深度剖析JVM物件記憶體
- 理解 glibc 記憶體分配器的機制與實現記憶體
- JAVA物件在JVM中記憶體分配Java物件JVM記憶體