關於記憶體分配
1.jvm的記憶體氛圍堆記憶體和非堆記憶體,重點來說堆記憶體。
2.堆記憶體中有兩個地方,乙個是年輕代,即young,乙個是老年代,即old,這兩個區域的大小比例為1:3。
3.在年輕代中又分為三個部分,乙個eden(伊甸園)區域,兩個survivor(倖存者)區域,s0和s1,它們的大小比例為8:1:1
關於gc
初始化物件的時候,如果乙個物件很大,則直接把它放到old區,否則放到eden區,當進行ygc的時候,採用複製演算法,把存活的物件放到s0,然後清除eden區域的所有記憶體,然後再有new的物件,則會放到eden區域,當eden區域要滿了的時候,即eden區域無法再為new的物件分配記憶體的時候,觸發ygc,此時會把eden區域存活的物件和s0區域的存活物件全部放到s1區域,此時如果s1區域放不下,那麼則直接把它們放到old區域,如此迴圈往復。那麼old區域會越來越大,直到連old區域也沒法分配記憶體了,則進行一次fullgc。下面是摘自其他網友的gc觸發條件說明:
JVM記憶體模型知識點梳理
堆 用於存放物件。分為年輕代與老年代。區別在於年輕代用於存放生存週期較短的物件,而老年代一般則是由年輕代轉過來的。而年輕代中又分為eden區,s0區和s1區。物件剛剛建立時,一般存放在eden區,待eden區滿後,進行垃圾 存活下來的物件會放入s0區,同時生存週期 1,s0區滿後,進行垃圾 剩餘的物...
http知識梳理1
計算機中的協議和現實中的協議是一樣的,一式雙份或多份,雙方多方都遵從共同的乙個規範,這個規範就可以稱為協議。例如 ftp,http,stmp,pop,tcp ip協議,離婚協議 http協議即按一定規則,向伺服器要資料,或傳送資料,而伺服器按一定規則,回應資料 請求 請求行 方法,路徑,請求版本 請...
前端知識重新梳理 1
先上定義 display block 塊級元素 1,每個塊級元素會獨佔一行 2,缺省會自動填滿父級寬度 3,塊級元素可以設定padding和margindisplay inline 內聯元素 1,內聯元素不會獨佔一行,多個相鄰的內聯元素會排列在同一行裡,直到一行排列不下,才會新換一行,其寬度隨元素的...