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