heap和stack區(qū)別:1、heap是堆,stack是棧;2、stack的空間由操作系統(tǒng)自動分配和釋放,heap的空間是手動申請和釋放的;3、stack空間有限,heap的空間是很大的自由區(qū)。
heap和stack區(qū)別:
1、heap是堆,stack是棧。
2、stack的空間由操作系統(tǒng)自動分配和釋放,heap的空間是手動申請和釋放的,heap常用new關(guān)鍵字來分配。
3、stack空間有限,heap的空間是很大的自由區(qū)。在Java中,若只是聲明一個對象,則先在棧內(nèi)存中為其分配地址空間,若再new一下,實(shí)例化它,則在堆內(nèi)存中為其分配地址。
4、舉例:數(shù)據(jù)類型 變量名;這樣定義的東西在棧區(qū)。如:Object a =null; 只在棧內(nèi)存中分配空間new 數(shù)據(jù)類型();或者malloc(長度); 這樣定義的東西就在堆區(qū)如:Object b =new Object();
則在堆內(nèi)存中分配空間