测试类加载的全过程

public class Have {

static {

System.out.println("加载Have");//先加载Have再调用main方法

}

public static void main(String[] args) throws Exception {

System.out.println("main方法"); //先调main方法

A a=new A(); //先初始化父类,再初始化子类

System.out.println(A.width);

A a2=new A(); //第二次只会调用构造器,不会调用静态方法,类的加载和初始化只有一次

System.out.println(A.common); //调用类里的常量时,并不会初始化该类,常量被放在常量池里

//Class.forName("cn.sxt.in.A"); //反射调用类,也会加载静态方法

//A[] a=new A[10]; //创建类的数组,不会初始化类

System.out.println(B.common); //子类调用父类的常量,不会初始化本身和父类

System.out.println(B.width); //子类调用父类非常量,则只会初始化父类

}

}

class A extends A_father{

public static int width=100;

public static final int common=10;

//创建对象时,会首先运行赋值动作和static块内的内容

static {

System.out.println("静态初始化类");

width=300;

}

public A(){

System.out.println("AAA");

}

}

class A_father{

static {

System.out.println("静态初始化A的父类");

}

}

class B extends A{

static {

System.out.println("静态初始化B");

}

}

java 静态初始化 调用_java JVM-类加载静态初始化块调用顺序相关推荐

  1. java的静态如何理解_java中的静态是什么?如何理解?

    在Java语言中,static表示"静态"的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法. 格 ...

  2. Java 工程师必须掌握的 JVM 类加载机制!

    这篇文章不聊别的,专门来侃侃JVM的类加载机制 概念 类加载器把class文件中的二进制数据读入到内存中,存放在方法区,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据 ...

  3. jvm类加载、初始化

    2019独角兽企业重金招聘Python工程师标准>>> jvm类加载 1.通过一个类的全限定名来获取定义此类的二进制字节流: 2.将这个字节流所代表的静态存储结构转化为方法区的运行时 ...

  4. Java进阶之深入理解JVM类加载机制

    前言 了解类加载的过程,有利于在类初始化时进行一些功能操作; 本文全面讲解类加载过程; 一.类加载介绍 1.类加载生命周期 从类被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期分为7个阶段 ...

  5. java 初始化数组_java如何实现数组初始化

    java实现数组初始化的方法:1.动态初始化,格式[数据类型 [ ] 数组名称 = new 数据类型[数组长度]]:2.静态初始化,格式[数据类型 [ ] 数组名称 = new 数据类型[ ]{元素1 ...

  6. java web dao层_java web 中web层直接调用dao层 可以吗?

    这个就跟Service直接用Java类还是用Interface/Implementation一样.关键是你自己认为是否合理,团队是否有严格要求. 为了说明这个问题,我在网上找了一些图. web层,业务 ...

  7. java gui构造工具_Java Web框架 静态代码块、构造代码块、构造函数、普通代码块 执行顺序 Decompiler JD-GUI 反编译工具...

    1.下载jd-gui-windows-1.4.0. http://jd.benow.ca/ 2.通过jd-gui.exe查看.class文件,用于分析类编译过程. 3.源文件. // 加载相应的 He ...

  8. java 虚拟机内存类_java 虚拟机类加载 及内存结构

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World &q ...

  9. java 初始化数组_Java中数组的初始化

    一.什么是初始化 在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用 ...

  10. java 不同包 调用_java中不同包之间的调用

    <java中不同包之间的调用>由会员分享,可在线阅读,更多相关<java中不同包之间的调用(4页珍藏版)>请在金锄头文库上搜索. 1.建立两个类 PackageA.Packag ...

最新文章

  1. LeetCode 125 Valid Palindrome(有效回文)(*)
  2. Linux重定向和管道符使用避坑指南
  3. IoT 、5G与边缘计算将会擦出怎样的火花?
  4. 归档 OmniFocus 中已完成的任务到 印象笔记 Evernote
  5. Dockerfile命令
  6. mysql状态常用参数分析
  7. Xquery 被设计用来查询 XML 数据
  8. Spring Java配置:会话超时
  9. android显示网络图片控件,Android控件之ImageView(二)
  10. 树视图的属性与方法 c# 1614262746
  11. 2021副高考试成绩查询荆州,湖北荆州2021年4月自考成绩查询入口开通
  12. 快速测试UTF8编码的文件是不是加了BOM,不限PHP
  13. 阿里云落地全球最大云原生实践:双11核心系统全面云原生化
  14. 获取微信jssdk权限影响ajax,微信jssdk中请求得到access_token遇到跨域问题,改写为jsonp,报错...
  15. 打开FOXMAIL常见错误提示“Message format error”
  16. 【1】Kali破解家用WI-FI密码 - WEP加密
  17. 幅频特性曲线protues_函数幅频特性曲线
  18. yolov5模型转换(pt=>onnx=>rknn)和板端验证测试
  19. Oracle——武汉空间数据库系统设计
  20. python计算bmi的编程_Python学习-计算BMI的小程序

热门文章

  1. 随堂练习--找水王2
  2. Linux的概念与体系 2. Linux文件管理(转载)
  3. 来晚了--SALTSTACK要弄起
  4. java转换CSV文件生成xml格式数据
  5. [置顶] 电信系统方案 电信Boss系统
  6. spring全局异常抓取validation校验信息
  7. centos在yum install报错:Another app is currently holding the yum lock解决方法
  8. Android AutoWrapTextView 解决中英文排版问题
  9. c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决
  10. STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!