前言
在java中經常遇到使用classname.method()的方式調用方法,哪些場景需要用到呢,如下:
- 某些操作不依賴具體實例
- 某個方法是用頻率較高,或者方法本身通用性較強,無需初始化類成員變量
- 實現某些特殊的設計模式:如Singleton
解決:static修飾方法
static修飾的方法,會使這個方法成為整個類所公有的方法。方便調用。
首先要了解,類加載過程只進行一次,類本身也是通過字節碼保存在文件中,java會通過I/O流把類文件讀入JVM中,JVM通過類路徑(CLASSPATH)來找字節碼文件,
一旦該類被加載,所有的static修飾的方法在堆內存中都有一塊專門的區域來存放,從而成為整個類所公有的方法。
使用new對象的方式,每new一個類的對象,系統就會重新在堆內存中開辟一個新空間來存放該類的實例對象,並且棧中也會有一個新的引用變量去指向這個類對象。
