什么情況下加static什么情況下不加?
首先,只有成員變量才可以加static。
什么時(shí)候加呢?
如果當(dāng)前類的任何對(duì)象都需要共享這個(gè)成員時(shí),就加,否則,就不需要加。
加上static后主要有如下區(qū)別:
1.static成員在被JVM裝載時(shí),裝載時(shí)機(jī)早于非static的。
2.static成員在整個(gè)JVM生命周期中永遠(yuǎn)只裝載一次,這也是單例模式的根源。
3.static成員一旦被初始化,則它永遠(yuǎn)被Class對(duì)象引用,意味著它的地址永遠(yuǎn)不會(huì)被GC回收,所以建議不要過(guò)多定義。
4.static成員永遠(yuǎn)在方法區(qū)的靜態(tài)區(qū)中保存引用,所以該引用是一定被多個(gè)線程共享的。因此,寫(xiě)static成員時(shí),尤其要注意線程安全問(wèn)題。
以上就是個(gè)人的淺薄理解,有什么理解錯(cuò)誤的地方,歡迎大家互相探討。