變量可以存在兩種類型的值。

原始值 存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。 引用值

存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針(point),指向存儲對象的內存處。

在許多語言中,字符串都被看作引用類型,而非原始類型,因爲字符串的長度是可變的。

如果一個值是引用類型的,那麼它的存儲空間將從堆中分配。由於引用值的大小會改變,所以不能把它放在棧中,否則會降低變量查尋的速度。相反,放在變量的棧空間中的值是該對象存儲在堆中的地址。地址的大小是固定的,所以把它存儲在棧中對變量性能無任何負面影響。如下圖所示:

存儲在堆和棧中的原始值和引用值
發佈了35 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章