好記性不如爛筆頭,僅以此記錄
20200524
1.Spring中的Bean是線程安全的嗎?
2.Spring中的Bean什麼時候回收?
-----------------------------------------------------我是分隔符---------------------------------------------------------------------------------------------------------
答案:
1.這個問題有坑,首先你要知道spring中的bean都是從IOC容器中來的,而IOC容器的的bean是從 配置文件或者註解掃描得到的, 而恰巧這些東西都是我們自己寫的;所以這個問題可以轉換成 -->自己寫的Bean 線程安全嗎?
2.回收這個問題又是一個大坑,爲什麼這麼說呢 首先瞭解到bean默認單例,我們都知道Bean是被IOC容器持有的,而根據GC可達性分析 我們可以知道,只有那些多次不可達的對象纔會被JVM回收,單例的bean是不是只有在IOC容器被銷燬後,纔會被回收;
我前邊有提到默認單例這個詞,那麼一定存在配置可以修改它,當我們修改後,這個對象每次使用時都會被new出來,用完就就棄,這時GC多次不可達也會被回收