結構體相關題目
結構體每個成員相對於結構體首地址的偏移量都是成員大小的整數倍,如果不是就自動在成員之間填充
vector是利用數組存放元素,當前面有元素被刪除的時候後面的元素都向前移動一格,所以會進行內存的移動。
map、set底層實現都是rb_tree
JVM
體系結構
運行時數據區
JVM內存模型
**JVM運行時內存 = 共享內存區 + 線程內存區
**
**
共享內存區 = 持久帶 + 堆
持久帶 = 方法區 + 其他
堆 = Old Space + Young Space
Young Space = Eden + S0 + S1**
- JVM用持久帶(Permanent Space)實現方法區,主要存放所有已加載的類信息,方法信息,常量池等等。
- 堆(heap),主要用來存放類的對象實例信息(包括new操作實例化的對象和定義的數組)。
- Old Space主要存放應用程序中生命週期長的存活對象;
- Eden(伊甸園)主要存放新生的對象;
- S0和S1是兩個大小相同的內存區域,主要存放每次垃圾回收後Eden存活的對象,作爲對象從Eden過渡到Old Space的緩衝地帶(S是指英文單詞Survivor Space)。
線程內存區
線程內存區=單個線程內存+單個線程內存+···
單個線程內存=PC Regster+JVM棧+本地方法棧
JVM棧=棧幀+棧幀+…
棧幀=局域變量區+操作數區+幀數據區