类的执行过程

Posted 盛夏光年2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的执行过程相关的知识,希望对你有一定的参考价值。

一.类的加载

加载器继承关系图

根加载器 ,底层是操作系统

扩展加载器, 底层是java代码

二. 类的连接

1.验证   确保类的正确性

.class文件结构检查

语义检查 比如final修饰的类,不允许有子类

字节码验证 确保字节码流被JVM可以顺利执行

二进制兼容的验证

2.准备   把类中所有由static修饰的内容,开辟空间,然后赋予默认值

  比如说我们Student类中有一个static int age=20;

  会根据数据类型 先开辟空间 int类型会开辟4个字节

  赋初始值age=0;

3.解析   把类中的符号引用转换成直接引用

  比如说我们Student类中有一个方法 定义如下

  public void sayHello(){

  teacher.sayHello();

  }

  其中teacher.sayHello( ) 直接指向Teacher类中的sayHello( )

  

三. 类的初始化   给类的静态变量 赋予初始值

  1.类必须完成加载和连接,才能执行初始化

  2.如果类有父类必须先加载和连接父类

  3.如果类中存在初始化语句,那么执行

类的初始化时机

1.创建类的实例

  new 

  反射

  克隆

2.调用类的静态方法

  类初始化了,但是还没有实例

 

以上是关于类的执行过程的主要内容,如果未能解决你的问题,请参考以下文章

类的加载过程和执行顺序

类的加载过程和执行顺序

类的加载过程和执行顺序

类初始化过程

类的初始化和执行过程

机器学习K-Means聚类的执行过程?优缺点?有哪些改进的模型?