java全局變量放在哪里 Java線程安全問題指的是全局變量,還是靜態(tài)變量?
Java線程安全問題指的是全局變量,還是靜態(tài)變量?哈哈,當你看到這個問題,你應該有點白。全局變量和靜態(tài)變量都有線程安全問題,因為它們在堆內(nèi)存中,由所有線程共享。如果您想了解線程,請先轉(zhuǎn)到JAVA內(nèi)存模
Java線程安全問題指的是全局變量,還是靜態(tài)變量?
哈哈,當你看到這個問題,你應該有點白。全局變量和靜態(tài)變量都有線程安全問題,因為它們在堆內(nèi)存中,由所有線程共享。如果您想了解線程,請先轉(zhuǎn)到JAVA內(nèi)存模型。首先,只能靜態(tài)添加成員變量。
何時添加?
如果當前類的任何對象需要共享此成員,將添加該對象。否則,將不添加。
JVM加載靜態(tài)成員時,加載時間比非靜態(tài)成員早。
2. 在整個JVM生命周期中,靜態(tài)成員總是只加載一次,這也是單例模式的根源。
3. 初始化靜態(tài)成員后,它將始終被類對象引用,這意味著它的地址永遠不會被GC回收。因此,建議不要定義太多。
4. 靜態(tài)成員總是將引用保存在方法區(qū)域的靜態(tài)區(qū)域中,因此引用必須由多個線程共享。因此,在編寫靜態(tài)成員時,應特別注意線程安全。
以上是我的淺見。如果有任何誤解,請互相討論。