java里调用子类中的构造方法那么父类里的代码全部都会执行一次吗?

java里调用子类中的构造方法那么父类里的代码全部都会执行一次吗?,第1张

先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器。所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器。

再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。

/
静态代码块先于构造器执行 普通块先于构造块 只执行一次
凡是静态的与对象无关,先于对象存在的; 凡是静态的都是共享的

/
public class Test {
static {
Systemoutprintln("static");
}

{
Systemoutprintln("普通块2");
}
public Test() {
Systemoutprintln("构造器");
}

静态变量只能定义在类的内部,不可以定义在静态块或方法中 可以在类内部定义静态变量,在静态块中进行初始化 *** 作,因为类的内部是不允许有 *** 作语句存在的,比如JDBC *** 作,所以可以在静态块static{} 中进行初始化 *** 作,如:JDBC 定义静态变量主要是为了供外部访问,定义在一个局部中外部没有权限访问,为什么要定义呢,而且不能定义


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13402971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存