Java之new一个对象简单过程
生活随笔
收集整理的這篇文章主要介紹了
Java之new一个对象简单过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 問題
new一個對象簡單過程
?
?
2 過程
1)類加載過程(第一次使用該類)
? ? ? 先看這個類有沒有加載到內存,沒有的話下面操作
? ? ? (1)、加載:類加載器(雙親委派模式)通過全限名讀取類的二進制流到jvm內部,存儲在運行時內存的方法中,java堆中生成一個代表該類的java.lang.Class對象,作為方法區數據的訪問入口
? ? ? (2)、驗證:比如final類不能被繼承,final方法不被重寫
? ? ? (3)、準備:為靜態變量分配內存,設置初始值等
? ? ? (4)、解析:將常量池中符號引用轉為直接引用
? ? ? (5)、初始化(先父后子):為靜態變量賦值、執行static代碼塊
? ? ? ?上面的(2)(3)(4)階段合叫為鏈接階段。
?
2)創建對象
? ? ? ?(1)、在堆區分配對象所需要的內存:分配內存包括本類和父類,但是不包括靜態變量,第一步已經說明了
? ? ? ?(2)、對所有實例變量進行默認賦值:將方法區對于的實例變量的定義拷貝一份到堆區,然后進行賦值
? ? ? ?(3)、執行初始化代碼:先初始化父類然后再初始化子類,初始化之前先執行塊代碼然后才是構造方法
?
3?總結
new對象分兩個過程,加載并初始化類和創建對象。
?
總結
以上是生活随笔為你收集整理的Java之new一个对象简单过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之找出两个文件里面相同的数据
- 下一篇: Java之Callable和Runnab