类加载中的执行顺序

news/2024/5/18 11:44:31 标签: 静态, 父类, 子类, 顺序

结论:

静态再实例

实例化一个子类(这个颜色主要是实例化会执行的部分):

父类静态属性->父类静态代码块->子类静态属性->子类静态代码块->父类代码块->父类构造函数->子类代码块->子类构造函数

例图:
在这里插入图片描述

直接执行子类静态方法:

父类静态属性->父类静态代码块->子类静态属性->子类静态代码块->子类静态方法

例图:
在这里插入图片描述

父类代码:


public class MyParentClass {

    // 静态变量
    public static String staticStr = "父类静态属性";

    static {
        System.out.println(staticStr);
        System.out.println("父类静态代码块");
    }
     {
         System.out.println("父类代码块");
    }
    // 构造方法
    public MyParentClass() {
        System.out.println("父类构造函数");
    }

    // 静态方法
    public static void staticMethod() {
        System.out.println("父类静态方法");
    }
}

子类代码:


public class MyClass extends MyParentClass{

    // 静态变量
    public static String staticStr = "子类静态属性";

    static {
        System.out.println(staticStr);
        System.out.println("子类静态代码块");
    }
     {
        System.out.println("子类代码块");
    }
    // 构造方法
    public MyClass() {
        System.out.println("子类构造函数");
    }

    // 静态方法
    public static void staticMethod() {
        System.out.println("子类静态方法");
    }
}

测试类:

public class Test {
    public static void main(String[] args) throws ClassNotFoundException {
        //Class.forName("cn.fw.community.adapter.assembler.MyClass");  // 调用类加载,触发类初始化
        MyClass.staticMethod(); // 调用静态方法,触发类初始化
        //MyClass obj = new MyClass();
    }
}

http://www.niftyadmin.cn/n/5185160.html

相关文章

JVM jstat 查看内存新生代老年代回收情况,排查oom

jstat 命令 jstat - [-t] [-h] [ []] option:我们经常使用的选项有gc、gcutil vmid:java进程id interval:间隔时间,单位为毫秒 count:打印次数 每秒打印一次 jstat -gc 9162 1000S0C:年轻代第一个survivor的容量…

javaScript 中的宏任务、微任务

宏任务: 是指,需要排队等待 JavaScript 引擎空闲时才能执行的任务, 常见的宏任务包括 setTimeout、setInterval、setImmediate(Node.js 独有)、requestAnimationFrame、I/O 操作、XMLHttpRequest、DOM事件等 微任务…

nn.Embedding()的原理

nn.Embedding()的原理: 定义一个Embedding: embeddings nn.Embedding(num_embeddings10, embedding_dim3)vocab_size : 10 输出维度为: 3 假定输入inputs如下: inputs torch.tensor([[1,3,6, 8],[9,1,3,5] ],dtypetorch.lo…

gitlub 加载慢问题处理

1.GitHUP网址 GitHub: Let’s build from here GitHub 2.修改DNS解析 Windows修改:C:\Windows\System32\drivers\etc\hosts Linux 修改: /etc/hosts 20.205.243.166 github.com 140.82.113.4 github.com 199.232.69.194 github.global.ssl.fastly.…

社区论坛小程序系统源码+自定义设置+活动奖励 自带流量主 带完整的搭建教程

大家好啊,又到了罗峰来给大家分享好用的源码的时间了。今天罗峰要给大家分享的是一款社区论坛小程序系统。社区论坛已经成为人们交流、学习、分享的重要平台。然而,传统的社区论坛往往功能单一、缺乏个性化设置,无法满足用户多样化的需求。而…

Ubuntu 搜狗输入法无法输入中文解决方案(不需要重装,不需要重启服务器)

Ubuntu 搜狗输入法突然无法输入中文,上午还好用,下午就不好用了,直接上解决方案 1.终端输入pidof fcitx找到搜狗的进程,如下图红框中的就是进程 2.直接杀掉这个进程 3.其实到第二步,如果搜狗输入法自动重启了&#xf…

uniapp 设置重写uni-body-page样式,输入字母转大写,条形码扫描

uniapp 设置重写uni-body-page样式,输入字母转大写 一、重写uni-body-page样式 page{ }二、输入字母转大写 input标签设置样式: style"text-transform: uppercase;"绑定的值通过.toUpperCase()转大写 三、条形码扫描 // 调起条码扫描uni…

2024清理mac苹果电脑内存免费工具CleanMyMac X4.15

当你使用苹果电脑时,内存的优化和清理变得至关重要。随着时间的推移,我们的电脑内存可能会变得拥挤,导致性能下降。清理内存可以提高电脑的速度和反应能力,并确保它始终在良好状态下运行。本文将向您介绍怎么清理苹果电脑内存的方…