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

JVM类加载到实例方法调用全过程--图解

时间:2018-07-09 12:45:34      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:getc   步骤   com   targe   ...   图解   sys   declare   param   

在我们加载类的过程中经过了这些步骤

  • 第一步 加载目标字节码至方法区,并转化为方法区的运行时数据结构
  • 第二步 在堆区创建一个java.lang.Class对象,提供了访问方法区内的数据结构的接口
  • 第三步 为静态域分配内存并设置初始值的连接阶段
  • 第四步 执行静态域构造器
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
Class targetClass = classLoader.loadClass(className);

如果我们接着创建新实例,并调用实例方法

  • 第五步 创建实例,执行实例构造器
  • 第六部 pc寄存器指向实例方法地址
  • 第七步 创建栈桢,执行方法指令
Object object = targetClass.newInstance();
Method method = targetClass.getDeclaredMethod("name", (Class<?>...)parameterTypes);
method.invoke(object, (Object...)args);

技术分享图片

JVM类加载到实例方法调用全过程--图解

标签:getc   步骤   com   targe   ...   图解   sys   declare   param   

原文地址:https://www.cnblogs.com/zzzz76/p/9282981.html

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