码迷,mamicode.com
首页 > 其他好文 > 详细

类的执行过程

时间:2017-09-30 15:17:26      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:ges   检查   分享   解析   com   stat   字节   初始化   时机   

技术分享

技术分享

一.类的加载

加载器继承关系图技术分享

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

扩展加载器, 底层是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.调用类的静态方法

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

 

类的执行过程

标签:ges   检查   分享   解析   com   stat   字节   初始化   时机   

原文地址:http://www.cnblogs.com/javaxiaodoufu/p/7614550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!