最近在研究java 的jvm 和类加载机制,有一些收货,故简单做下总结,防止遗忘,喜欢的朋友可以关注我一下:
1.JVM 运行时数据区
2.类加载机制
3.类加载顺序
- 代码Demo
public class CodeBlockParent {
static {
System.out.println("父类静态代码块");
}
public CodeBlockParent(){
System.out.println("父类构造函数");
}
{
System.out.println("父类构造代码块");
}
}
package com.example.demo.test;
/**
* @description:
* @author:houqd
* @time: 2021/7/20 14:08
*/
public class CodeBlock extends CodeBlockParent{
static int age =10;
static{
System.out.println("静态代码块:"+age);
}
public CodeBlock(){
System.out.println("无参构造函数");
}
{
System.out.println("构造代码块");
}
public void sayHello(){
{
System.out.println("普通代码块");
}
}
public static void main(String[] args) {
System.out.println("执行了main方法");
new CodeBlock().sayHello();;
}
}
- 运行结果:
父类静态代码块
静态代码块:10
执行了main方法
父类构造代码块
父类构造函数
构造代码块
无参构造函数
普通代码块