日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 对象初始化属性,JAVA中类属性的初始化

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 对象初始化属性,JAVA中类属性的初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們知道一個類(class)要被使用必須經過裝載,連接初始化這樣的過程。下面先對這三階段做一個簡單的描述,之后會結合一個簡單的例子來說明java中類的初始化過程。

在裝載階段,類裝載器(Bootstrap ClassLoader 或者用戶自定義的ClassLoader) 把編譯形成的class文件載入內存,創建類相關的Class對象,這個Class對象封裝了我們要使用的類的類型信息。

連接階段又可以分為三個子步驟:驗證、準備和解析。

驗證就是要確保java類型數據格式 的正確性,并適于JVM使用。

準備階段,JVM為靜態變量分配內存空間,并設置默認值,注意,這里是設置默認值,比如說int型的變量會被賦予默認值0 。在這個階段,JVM可能還會為一些數據結構分配內存,目的 是提高運行程序的性能,比如說方法表。

解析過程就是在類型的常量池中尋找類、接口、字段和方法的符號引用,把這些符號引用替換成直接引用。這個階段可以被推遲到初始化之后,當程序運行的過程中真正使用某個符號引用的時候 再去解析它。

類會在首次被“主動使用”時執行初始化,為類(靜態)變量賦予正確的初始值。在Java代碼中,一個正確的初始值是通過類變量初始化語句或者靜態初始化塊給出的。而我們這里所說的主動使用 包括:

1. 創建類的實例

2. 調用類的靜態方法

3. 使用類的非常量靜態字段

4. 調用Java API中的某些反射方法

5. 初始化某個類的子類

6. 含有main()方法的類啟動時

初始化一個類包括兩個步驟:

1、 如果類存在直接父類的話,且直接父類還沒有被初始化,則先初始化其直接父類

2、 如果類存在一個初始化方法,就執行此方法

注:初始化接口并不需要初始化它的父接口。

Java中final變量為什么在使用前必須要進行初始化:

final修飾的變量表示賦值之后不能再進行更改,系統賦默認值也算賦值,因此系統也不會賦默認值。

如果不在定義的時候或者構造函數中對final變量進行賦值的話,則生成的對象中final變量的值是未知的(編譯器也會直接報錯),因此必須進行初始化。

如果用static final同時修飾變量的話,則變量必須在定義的時候進行初始化。因為static變量屬于類,在調用構造函數之前就已經被系統賦予默認值了。

如果不在定義的時候初始化,那么既無法在構造函數中初始化,系統也不會賦默認值。則該變量被定義出來是毫無意義的

原文:https://www.cnblogs.com/rookieZC/p/11430403.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java 对象初始化属性,JAVA中类属性的初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。