首页 JVM
文章
取消

JVM

类加载

1.字节码文件经过类加载器加载后会获得Class对象,也可以说Class对象是类加载的最终产品 2.类加载过程

  • 类加载过程分三个阶段:1.Loading;2.Linking;3.Initialization

3.类变量的加载过程

  • 在linking/prepare阶段进行零值初始化
  • 在Initialization阶段按照语句(赋值动作和静态代码块)在源文件出现的顺序执行clinit方法,对类变量进行重新赋值

4.Class对象是存放在堆区的,不是方法区。 类的元数据(元数据并不是类的Class对象!Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是在方法区的)才是存在方法区的。在一个JVM实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。

5.静态方法和私有方法都是在类加载阶段解析的,它们的符号引用在类加载阶段或者第一次使用时被转化成直接引用,同时这种转化被称作静态解析;静态方法和私有方法不可被重写就与这条机制有关

实际类型和静态类型

1
2
3
4
5
6
class Human{  
}    
class Man extends Human{  
}  
class Woman extends Human{  
}  

Human man = new Man(); 这里的Human就称为静态类型,而后面的Man称为实际类型;静态类型在编译器就可知,而实际类型需要在JVM运行时才可知;

本文由作者按照 CC BY 4.0 进行授权

关系型数据库和数据模型相关概念

Java基础知识