java创建变量的过程_java 对象的创建过程
初始化的順序首先是static(如果它們尚未由前一次對象創(chuàng)建初始化,也就是new對象的時候,只執(zhí)行一次static變量初始化),變量初始化順序有變量在類的定義順序決定的;
對象的創(chuàng)建過程,以Dog類為例:
1.類型為Dog首stati次創(chuàng)建的時候,或者Dog類的stajitic方法/static字段首次訪問時,java編譯器必須找到Dog.class;
2.找到Dog.class后(它會創(chuàng)建一個Class對象),它的所有static初始化模塊都會運行。因此,static初始化僅發(fā)生一次-----在Class對象首次載入的時候
3.創(chuàng)建一個new Dog()時,Dog對象的構(gòu)建進程首先會在內(nèi)存堆(heap)里為一個Dog對象分配足夠多的內(nèi)存空間;
4.這種空間為情況為0,將Dog中的所有基本類型設為它們的默認值;
5.進行字段定義時發(fā)生的所有初始化都會執(zhí)行;
6.執(zhí)行構(gòu)造器
packagethinking;//: Beetle.java//The full process of initialization.
classInsect {int i = 9;intj;
Insect() {
prt("i = " + i + ", j = " +j);
j= 39;
}static int x1 = prt("static Insect.x1 initialized");static intprt(String s) {
System.out.println(s);return 47;
}
}
繼承類
packagethinking;public class Beetle extendsInsect {int k = prt("Beetle.k initialized");
Beetle() {
prt("k = " +k);
prt("j = " +j);
}static int x2 = prt("static Beetle.x2 initialized");static intprt(String s) {
System.out.println(s);return 63;
}public static voidmain(String[] args) {
prt("Beetle constructor");
Beetle b= newBeetle();
}
}
執(zhí)行結(jié)果:
static Insect.x1 initialized
static Beetle.x2 initialized
Beetle constructor
i = 9, j = 0
Beetle.k initialized
k = 63
j = 39
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的java创建变量的过程_java 对象的创建过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java runnable 异常_JAV
- 下一篇: java抽象工厂设计模式_23种经典设计