为什么可以通过类名调用静态方法?
生活随笔
收集整理的這篇文章主要介紹了
为什么可以通过类名调用静态方法?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JVM加載類:
所有的類都是在對其第一次使用時,動態加載到JVM中的。當程序創建第一個類的靜態成員的引用時,就會加載這個類,進而可以得到該類的類型信息,而類型信息可以在程序運行時發現和使用類型信息。這個證明構造器也是類的靜態方法,即使在構造器之前并沒有使用static關鍵字。因此,使用new操作符創建類的新對象也會被當做對類的靜態成員的引用。
為什么通過類名可以調用靜態方法?
靜態變量在類的初始化一次后,系統就不會為該變量開辟新的內存空間。而每new一個類的對象,系統就會重新在堆內存中開辟一個新空間來存放該類的實例對象,并且棧中也會有一個新的引用變量去指向它。 靜態方法也是類似,但是有一點要強調,靜態方法只中不能調用非靜態方法。因為被static修飾的方法會首先被Classloader對象先加載進內存,而這個時候可能其它的非靜態方法或者變量還沒有被加載進來。
總結
以上是生活随笔為你收集整理的为什么可以通过类名调用静态方法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jdk、cglib动态代理代码示例
- 下一篇: 【转载保存】lucene正则查询使用注意