返回

java static修饰的变量、静态非静态代码块执行顺序

发布时间:2022-10-28 09:24:24 342
# java# java

        静态资源是类初始化的时候加载的,非静态资源是new一个类的时候加载的,static不能修饰局部变量。关于static、代码块的执行顺序,面试中可能会考察。

    下面进行代码测试:

package com.xhx.java;

class MyClass {
public MyClass(String name) {
System.out.println(name + " 变量加载");
}
}
package com.xhx.java;

class ParentClass{
public static String parentStaticField = "父类静态变量";
public MyClass parentField = new MyClass("父类非静态");
public static MyClass myClass = new MyClass("父类静态");

static {
System.out.println("父类 静态块初始化");
}

{
System.out.println("父类 非静态块初始化");
}

public ParentClass(){
System.out.println("父类 构造器初始化");
}
}
package com.xhx.java;

public class ChildClass extends ParentClass{

public static String subStaticField = "子类静态变量";
public MyClass subField = new MyClass("子类非静态");
public static MyClass myClass = new MyClass("子类静态");

static {
System.out.println("子类 静态块初始化");
}

{
System.out.println("子类 非静态块初始化");
}

public ChildClass(){
System.out.println("子类构造器初始化");
}
}
package com.xhx.java;

/**
* xuhaixing
* 2018/8/11 20:49
**/
public class App {
public static void main(String[] args) {
new ChildClass();
}
}

 

java static修饰的变量、静态非静态代码块执行顺序_父类

执行顺序大致如下:

    先执行静态的,再执行非静态的;

静态中:

     先执行静态变量,再执行静态代码块;

     先执行父类静态,再执行子类静态;

非静态中:

      先执行非静态变量,再执行非静态代码块,再执行构造器

      先执行父类,再执行子类

实时内容请关注微信公众号,公众号与博客同时更新:程序员星星

java static修饰的变量、静态非静态代码块执行顺序_父类_02

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
数据库与缓存怎样做同步最好 2022-10-28 08:43:55