heap和stack有什么區別?
1.heap是堆,stack是棧。
2.stack的空間由操作系統自動分配和釋放,heap的空間是手動申請和釋放的,heap常用new關鍵字來分配。
3.stack空間有限,heap的空間是很大的自由區。在Java中,若只是聲明一個對象,則先在棧內存中為其分配地址空間,若再new一下,實例化它,則在堆內存中為其分配地址。
4.舉例:數據類型變量名;這樣定義的東西在棧區。如:Objecta=null;只在棧內存中分配空間new數據類型();或者malloc(長度);這樣定義的東西就在堆區如:Objectb=newObject();則在堆內存中分配空間