1.加载
  a.装载类的第一个阶段
  b.取得类的二进制流
  c.转为方法区数据结构
  d.在Java堆中生成对应的java.lang.Class对象

2.链接
  a.验证(保证Class流的格式是正确的)
    文件格式的验证
      是否以0xCAFEBABE开头
      版本号是否合理
    元数据验证
      是否有父类
      继承了final类?
      非抽象类实现了所有的抽象方法
    字节码验证 (很复杂)
      运行检查
      栈数据类型和操作码数据参数吻合
      跳转指令指定到合理的位置
    符号引用验证
      常量池中描述类是否存在
      访问的方法或字段是否存在且有足够的权限

  b.准备
    分配内存,并为类设置初始值 (方法区中)

  c.解析
    符号引用(变量之间的引用)替换为直接引用(地址之间的引用)

3.初始化
  执行类构造器<clinit>
    static变量 赋值语句
    static{}语句
  子类的<clinit>调用前保证父类的<clinit>被调用
  <clinit>是线程安全的

最新文章

  1. 记一次ss故障
  2. 数据结构&amp;算法-单链表
  3. 八卦一下黄晓明和Angelababy的电话号码
  4. 转: 详解css中的display属性
  5. 3、C#基础整理(语句概述)
  6. java package and import
  7. 解决git Push时请求username和password,而不是ssh-key验证
  8. 基于NodeJs的网页爬虫的构建(一)
  9. PS/2接口
  10. Chrome开发者工具详解(3):Timeline面板
  11. html 学习笔记--基础篇
  12. myEclipse 8.5下SVN环境的搭建
  13. [学习OpenCV攻略][017][ARM9下移植OpenCV]
  14. centos7重置root密码
  15. docker 从入门到精通
  16. 使用korofileheader插件vs code添加文件头注释和函数注释
  17. zepto中的属性设置
  18. node.js 的页面渲染方法ejs
  19. LSTM Networks
  20. 【网络编程】服务端产生大量的close_wait状态的进程分析

热门文章

  1. Laravel之任务调度
  2. react-native 中使用 mobx
  3. 【Datasatge】使用Datastage装载数据时候,报错:Missing record delimiter &ldquo;&rdquo;,saw EOF instead
  4. Hadoop eclipse插件使用过程中出现的问题
  5. springMVC 【@response 返回对象自动变成json并且防止乱码】 &amp; 【配置支持实体类中的@DateTimeFormat注解】
  6. UITextView 设置边框
  7. .net用url重写URLReWriter实现任意二级域名
  8. Lua学习十一----------Lua迭代器
  9. Spring Boot内嵌Tomcat session超时问题
  10. idea各种设置和学习