Java內存分為五個部分:堆、堆棧、常量區、方法區和程序計數器。
堆是存放對象的地方。Java程序在運行時動態創建的對象均保存在堆中,包括定義的類實例、數組、接口實例等。堆內存由Java虛擬機自動管理,包括自動分配和垃圾回收機制。
// Java代碼示例:創建一個對象 public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } Person person = new Person("Alice", 25); // 創建一個Person對象
堆棧是Java程序運行時的臨時數據區。當Java程序執行一個方法時,會為它在堆棧中分配一個塊內存,這個塊內存用于存放該方法的所有局部變量和方法調用的相關信息。當該方法執行完畢后,這個塊內存就被釋放。在堆棧中存放的數據有一個重要特性,就是它們的生命周期跟隨方法的生命周期。因此,棧內存數據的生命周期非常短暫。
// Java代碼示例:調用一個方法 public class Test { public static void main(String[] args) { methodA("hello"); } public static void methodA(String str) { int num = 10; System.out.println(num + " " + str); } } // 輸出結果為:10 hello
常量區是Java虛擬機所管理的一塊特殊內存區域,用于存放程序中直接定義的字符串和字面值常量。由于常量區存放的常量的值是固定的,因此不會被改變。常量區是只讀的,Java程序不能修改它存儲的數據。
// Java代碼示例:使用字符串常量 public class Test { public static void main(String[] args) { String str1 = "hello"; // 在常量區創建一個字符串常量 String str2 = "world"; System.out.println(str1 + " " + str2); } } // 輸出結果為:hello world
上一篇jar和java怎么互通
下一篇vue彈出層sql