新生代記憶體區域基本快滿了,再次分配物件的時候,發現空間不足
檢查老年代可用記憶體空間,是否大於新生代所有物件的總大小,如果大於新生代所有物件,就可以發起minor gc
老年代可用空間小於新生代的所有物件大小,檢查'-xx:handlepromotionfailure'的引數是否設定,如果設定了,就檢查老年代的記憶體大小,是否大於之前每一次minor gc後進入老年代物件的平均大小,如果大於就進行minor gc
如果沒有設定'-xx:handlepromotionfailure'引數,此時就會觸發一次full gc,盡量騰出一些空間,然後再執行minor gc
minor gc後的物件太多,無法放入 survivor區
標記整理演算法
剩餘存活的物件大小,小於survivor區,此時存活物件進入survivor區
剩餘存活的物件大小,大於survivor區,但是小於老年代可用空間,直接進入老年代
剩餘存活的物件大小,大於survivor區,大於老年代可用空間,就會觸發full gc
minor gc 15次的物件會進入老年代,就是說超過年齡的物件
大物件minor gc之後剩下的物件超過survivor區大小
自己的KMP筆記,不喜勿噴
和其他大佬一樣,先說一下暴力求解字串匹配問題,為什麼一定要說呢,因為kmp是根據暴力改進而來,理解了暴力後kmp就不難理解了。比如從s中匹配p,匹配就是查詢s中有沒有乙個子串等於p 給s串乙個i,p串乙個j,如果相同就均加一,如果不相等就把i回溯到開始的位置也就是i j 1,然後把j歸0。並不難理解...
工作3年了,然後呢?(純個人看法,不喜勿噴)
工作快4年了,一直在寫 最近也離職了打算自己奮鬥一番事業,總結一下自己的工作經歷和經驗。時常總結自己,也是一種積累。我剛畢業進的是一家寫校園erp的公司,只幹了3個月因為拖欠工資就離職了。畢竟要生活,光讓馬兒跑不給馬兒吃草是不可能的。但是確實是學到了很多東西,加班多,學的知識也用於實踐了,邁出了程式...
軟體測試筆記(個人學習筆記,勿噴)
軟體測試是什麼 實際結果和預期結果的對比 方法 1.黑盒測試 2.白盒測試 3.灰盒測試 測試階段 1.單元測試 函式 方法。2.整合測試 介面測試 3.系統測試 功能測試 效能測試 自動化測試 相容性測試 易用性測試 4.驗收測試 測試 內測 測試 公測 方向 1.功能測試 2.效能測試 壓力測試...