JAVA基础--final、static区别以及类加载顺序
生活随笔
收集整理的這篇文章主要介紹了
JAVA基础--final、static区别以及类加载顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 一、JAVA中final 與 static 總結 | ||
| final | static | |
| 修飾類 | 該類不可被繼承 | 只能修飾內部類,該類不需要new,是靜態加載(嵌套頂層類) |
| 修飾接口 | × | × |
| 修飾構造函數 | × | × |
| 修飾語句塊 | × | 虛擬機按聲明順序初始化static成員字段和static語句塊 |
| 修飾字段屬性 | 表示屬性初始化后不能修改(實例常量) | 是類變量,所有實例共享該變量值(類變量) |
| 在定義時或構造函數中賦值(每個實例擁有一份拷貝) | ||
| 修飾方法 | 該方法不能被覆蓋(只可繼承) | 是類方法,所有實例共享該方法(類方法) |
| 修飾函數參數 | 參數值不能被函數修改 | × |
| 修飾函數局部變量 | 局部變量初始化后不能修改(局部常量) | × |
| 用途 | 1).為了防止方法被覆蓋或改寫; | 1).定義全局變量或常量; |
| 2).提高運行效率,JAVA對final方法調用采用內嵌機制; | 2).定義類方法; | |
| ? | ? | ? |
| 二、JAVA類加載順序 | ||
| JAVA類加載順序: | 1).按代碼順序遞歸加載靜態成員/代碼塊,先父類再本類; | |
| ? | 2).按代碼順序遞歸加載非靜態成員/代碼塊,先父類再本類; | |
| ? | 3).按代碼順序遞歸調用構造函數,先父類再本類; | |
| ? | ? | |
| JAVA類加時機: | 1).調用靜態成員時,加載靜態成員所在的類及父類; | |
| ? | 2).第一次new對象時加載(第二次new不再加載) | |
| ? | 3).加載子類會先加載父類.有static和final修飾的成員不會被加載;當成常量使用; | |
轉載于:https://blog.51cto.com/tech4j2ee/630203
總結
以上是生活随笔為你收集整理的JAVA基础--final、static区别以及类加载顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 步多多步数为什么不增加
- 下一篇: Discrete Logging hu