在Java中,棧和堆是兩種不同的內存分配區域,分別用于存儲不同類型的數據。
棧是一種線性結構,用于存儲基本數據類型和對象引用。棧內存的操作方式是后進先出,也就是說,后入棧的數據首先被取出。棧內存的大小是由操作系統預先分配的,通常比堆內存要小。棧內存的優點是存儲、操作速度快,但缺點是空間有限。
public class StackExample{ public static void main(String[] args){ int a = 10; //變量a存儲在棧內存中 String str = "Hello"; //引用類型變量str存儲在棧內存中 } }
堆內存用于存儲復雜對象,例如數組和對象。堆內存的操作方式是任意進出,堆內存大小由JVM在運行時動態分配。堆內存的優點是可以動態分配空間,缺點是存取速度慢。
public class HeapExample{ public static void main(String[] args){ int[] arr = new int[5]; //數組arr存儲在堆內存中 Student stu = new Student("Tom", 20); //對象stu存儲在堆內存中 } }