当前位置: 首页 > news >正文

jvm对类的加载顺序测试

父类

package test;

public class Parent {
    
    public static int a = menthod2();
    public int b = 11;
    {
        System.out.println("父快类的非静态块");
    }
    
    static {
        System.out.println("父类的静态块");
    }
    
    public Parent(){
        System.out.println("父类的构造函数");
    }
    
    public static void menthod(){
        System.out.println("父类的静态方法");
    }
    
    public static int   menthod2(){
        System.out.println("父类的静态变量");
        return 10;
    }
    
    public void menthod1(){
        System.out.println("父类的非静态方法");
    }

}

子类

package test;

public class Parent {
    
    public static int a = menthod2();
    public int b = 11;
    {
        System.out.println("父快类的非静态块");
    }
    
    static {
        System.out.println("父类的静态块");
    }
    
    public Parent(){
        System.out.println("父类的构造函数");
    }
    
    public static void menthod(){
        System.out.println("父类的静态方法");
    }
    
    public static int   menthod2(){
        System.out.println("父类的静态变量");
        return 10;
    }
    
    public void menthod1(){
        System.out.println("父类的非静态方法");
    }

}

测试得到

public class Test {
    public static void main(String[] args) {
        Child child = new Child();
        child.menthod();
        
    }

}

输出:

父类的静态变量
父类的静态块
子类的静态变量
子类的静态块
父快类的非静态块
父类的构造函数
子类的非静态块
子类的构造函数
子类的静态方法

 

说明Jvm的执行顺序是:

父类的静态变量----->父类的静态块----->子类的静态变量------>子类静态块------>父类的非静态块------>父类的构造函数------>子类的非静态块---子类的构造函数

----->子类的静态方法

 

注意: char类型的基本类型初始化的时候值为null

   一个构造函数中只能调用另外一个构造函数,不能同时调用两个构造函数..

 

转载于:https://www.cnblogs.com/working/p/3585269.html

相关文章:

  • Python正则表达式初识(二)
  • public protected private与this用法
  • 笠翁对韵(全卷,珍藏版附注释)
  • 独领风骚的开源接口管理平台 YApi v1.3.23 发布
  • SQL Server页类型汇总+疑问
  • 实验报告二
  • JS页面跳转并及时刷新
  • WinServer2008安装MySql
  • 出栈次序问题 (转)
  • 使用SSM+Solr优雅的实现电商项目中的搜索功能
  • JSON格式
  • 安卓安装APK报错error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
  • Android TV 开发(3)
  • [Head First设计模式]策略模式
  • CPU 已不足以驱动屏幕指纹识别技术,于是 vivo 用 DSP 来加速
  • [译]如何构建服务器端web组件,为何要构建?
  • Babel配置的不完全指南
  • co模块的前端实现
  • css选择器
  • js数组之filter
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Mysql数据库的条件查询语句
  • React+TypeScript入门
  • Redash本地开发环境搭建
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • TypeScript实现数据结构(一)栈,队列,链表
  • 关于Flux,Vuex,Redux的思考
  • 关于for循环的简单归纳
  • 基于 Babel 的 npm 包最小化设置
  • 今年的LC3大会没了?
  • 事件委托的小应用
  • 详解移动APP与web APP的区别
  • 原生Ajax
  • ​TypeScript都不会用,也敢说会前端?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # Panda3d 碰撞检测系统介绍
  • #include<初见C语言之指针(5)>
  • #大学#套接字
  • (11)MATLAB PCA+SVM 人脸识别
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十八)三元表达式和列表解析
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • .NET DataGridView数据绑定说明
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [AIGC codze] Kafka 的 rebalance 机制