类的加载机制
2020-06-10 17:24:25 6 举报
AI智能生成
Java基础(类的加载顺序)
作者其他创作
大纲/内容
连接
验证
准备
解析
使用
类的加载机制
加载
一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我们可以去完成还可以自定义类加载器去控制字节流的获取方式(重写一个类加载器的 loadClass() 方法)。数组类型不通过类加载器创建,它由 Java 虚拟机直接创建。
初始化
于初始化阶段,虚拟机严格规范了有且只有5种情况下,必须对类进行初始化(只有主动去使用类才会初始化类):当遇到 new 、 getstatic、putstatic或invokestatic 这4条直接码指令时,比如 new 一个类,读取一个静态字段(未被 final 修饰)、或调用一个类的静态方法时。当jvm执行new指令时会初始化类。即当程序创建一个类的实例对象。当jvm执行getstatic指令时会初始化类。即程序访问类的静态变量(不是静态常量,常量会被加载到运行时常量池)。当jvm执行putstatic指令时会初始化类。即程序给类的静态变量赋值。当jvm执行invokestatic指令时会初始化类。即程序调用类的静态方法。使用 java.lang.reflect 包的方法对类进行反射调用时如Class.forname(\"...\
卸载
自由主题
0 条评论
回复 删除
下一页