一.什么時候加載 1.new一個對象,一個類的靜態(tài)函數(shù)或者字段被調(diào)用 2.反射調(diào)用 3.當一個類的子類被加載,其父類首先會被加載 4.一個類的m...
一.什么樣的需要回收 1.計數(shù)法:循環(huán)引用的問題不好解決 2.根搜索算法,根節(jié)點無法觸達的對象,將被回收 - 棧: 虛擬機...
一、Java虛擬機對象的創(chuàng)建 遇到new指令時: 1. 在方法區(qū)中看該類是否已經(jīng)被加載,看類是否被加載、解析和初始化,如果沒有,則先加載這個類。...
作用是阻塞當前線程 synchronized,wait(),notify() 實現(xiàn)了線程的通信和同步; Lock.lock(),Lock.unL...
1.實現(xiàn)原理 AQS,隊列同步器。通過volitile變量state和CAS實現(xiàn)的一個雙端隊列,子類需要重寫tryAcquire方法 AQS獲取...
每一個線程都有一個ThreadLocalMap的存儲結(jié)構(gòu),一個ThreadLocal變量都會被每個線程復制一份線程私有的變量,通過Set(Obj...
一共有四種,無狀態(tài)鎖,偏向鎖,輕量級鎖,重量級鎖。鎖可以升級,但不能降級。 1.偏向鎖。 當一個線程訪問一個對象的時候,會將自己的線程...
Volitile修飾的變量會被加一個lock指令,這個指令做兩件事情, 1.在變量改變之后,會立刻從cpu高速緩存寫到內(nèi)存 2.會通知其他cpu...
### 1.Advice接口 ![image](https://note.youdao.com/yws/public/resource/9736...