【解决bug之路】JAVA 之 static
在Java語言中,static表示“靜態”的意思,使用場景可以用來修飾成員變量和成員方法,當然也可以是靜態代碼塊。static的主要作用在于創建獨立于具體對象的域變量或者方法。本文主要來去講解一下static的來龍去脈。
static要解決什么問題?
我們知道,當我們通過new關鍵字去創建對象的時候,那么數據的存儲空間才會被分配,類中的成員方法才能被對象所使用。但是呢有兩種特殊的情況:
1、我們通過new關鍵字創建的對象共享同一個資源,而不是說每個對象都擁有自己的數據,或者說根本就不需要去創建對象,這個資源和對象之間是沒有關系的。
2、希望某個方法不與包含它的類的任何對象聯系在一起。總結下來就是說:即使沒有創建對象,也能使用屬性和調用方法,static目的就是在于解決這個問題。//加入Java開發交流君樣:756584822一起吹水聊天
格式
修飾變量:static 數據類型 變量名
修飾方法:【訪問權限修飾符】 static 方法返回值 方法名(參數列表)
特點
static可以修飾變量,方法被static修飾的變量或者方法是獨立于該類的任何對象,也就是說,這些變量和方法不屬于任何一個實例對象,而是被類的實例對象所共享。在類被加載的時候,就會去加載被static修飾的部分。被static修飾的變量或者方法是優先于對象存在的,也就是說當一個類加載完畢之后,即便沒有創建對象,也可以去訪問。//加入Java開發交流君樣:756584822一起吹水聊天
static靜態變量
被static修飾的成員變量叫做靜態變量,也叫做類變量,說明這個變量是屬于這個類的,而不是屬于是對象,沒有被static修飾的成員變量叫做實例變量,說明這個變量是屬于某個具體的對象的。
靜態變量和實例變量的區別
實例變量:每次創建對象,都會為每個對象分配成員變量內存空間,實例變量是屬于實例對象的,在內存中,創建幾次對象,就有幾份成員變量。
靜態變量:靜態變量由于不屬于任何實例對象,是屬于類的,所以在內存中只會有一份,在類的加載過程中,JVM為靜態變量分配一次內存空間。
static靜態方法
被static修飾的方法也叫做靜態方法,因為對于靜態方法來說是不屬于任何實例對象的,那么就是說在靜態方法內部是不能使用this的,因為既然不屬于任何對象,那么就更談不上this了。
static應用場景
如果某個成員變量是被所有對象所共享的,那么這個成員變量就應該定義為靜態變量。
static如何去訪問//加入Java開發交流君樣:756584822一起吹水聊天
靜態變量:
類名.靜態變量
對象.靜態變量(不推薦的)
靜態方法:
類名.靜態方法
對象.靜態方法(不推薦)
這里呢就啰嗦一句,由于被static修飾的變量和方法是不屬于任何實例對象的,所以在這里,強烈建議不要通過對象的方式去訪問靜態的變量或者方法。
static使用注意事項
在靜態方法中沒有this關鍵字因為靜態是隨著類的加載而加載,而this是隨著對象的創建而存在的。靜態比對象優先存在。靜態可以訪問靜態的,但是靜態不能訪問非靜態的。非靜態的可以去訪問靜態的。
總結
靜態只能訪問靜態。非靜態既可以訪問非靜態的,也可以訪問靜態的。
總結
以上是生活随笔為你收集整理的【解决bug之路】JAVA 之 static的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不止骁龙8!曝Redmi K50系列要用
- 下一篇: 王力宏遭多家品牌解约:英菲尼迪、读书郎、