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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

类的加载连接和初始化

發布時間:2024/4/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类的加载连接和初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類的加載、連接和初始化

? 當Java程序中需要使用到某個類時,虛擬機會保證這個類已經被加載、連接和初始化。而連接又包含驗證、準備和解析這三個子過程,這個過程必須嚴格的按照順序執行。

類的加載

? 通過類的完全限定名(包名和類名)查找此類的字節碼文件,把類的.class文件中的二進制數據讀入到內存中,并存放在運行時數據區的方法區內。然后利用字節碼文件創建一個Class對象,用來封裝類在方法區內的數據結構并存放在堆區內。這個過程是由類加載器完成的,我們后面會進行詳細講解。

連接

  • 驗證:確保被加載類的正確性。class文件的字節流中包含的信息符合當前虛擬機要求,不會危害虛擬機自身安全。

  • 準備:為類的靜態變量分配內存,并將其初始化為默認值。此階段僅僅只為靜態類變量(即static修飾的字段變量)分配內存,并且設置該變量的初始值。(比如 static int num=5,這里只將num初始化為0,5的值將會在初始化時賦值)。對于final static修飾的變量,編譯的時候就會分配了,也不會分配實例變量的內存。

  • 解析:把類中的符號引用轉換為直接引用。符號引用就是一組符號來描述目標,而直接引用就是直接指向目標的指針、相對偏移量或一個間接定位到目標的句柄。(可參考“虛擬機指令”相關內容)

初始化

? 類加載最后階段,若該類具有父類,則先對父類進行初始化,執行靜態變量賦值和靜態代碼塊代碼,成員變量也將被初始化。

總結

以上是生活随笔為你收集整理的类的加载连接和初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

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