主要是關於:基本類型和引用類型在本質上有什麼區別. 基本類型主要包括: boolean、byte、short、char、int、long、float、double。 其它全部的類型都屬於引用類型。
這要從堆棧的優點和區別提及:html
因此性能方面來講,使用基礎數據類型確定會比使用引用數據類型速度快。java
堆相對進程來講是全局的,可以被全部線程訪問;而棧是線程局部的,只能本線程訪問。打個比方,棧就比如我的小金庫,堆就比如國庫。你從我的小金庫拿錢去花,不須要辦什麼手續,拿了就花,可是錢數有限;而國庫裏面的錢雖然不少,可是每次申請花錢要打報告、蓋圖章、辦 N 多手續,耗時又費力。
一樣道理,因爲堆是全部線程共有的,從堆裏面申請內存要進行相關的加鎖操做,所以申請堆內存的複雜度和時間開銷比棧要大不少;從棧裏面申請內存,雖然又簡單又快,可是棧的大小有限,分配不了太多內存。jvm