随笔分类 - JVM
摘要:javadoc的解释: ClassLoader的每一个实例都会有一个与之关联的父ClassLoader,当被要求去寻找一个类或者资源的时候,ClassLoader的实例就会对于类或者是资源的寻找委托给他的父ClassLoader(在他自己尝试找这个类或者资源之前),并层层向上委托。 虚拟机内建的Cl
阅读全文
摘要:1.数组对象的使用,不会导致对应类的初始化。 在创建 ClassName[]数组时,并不会创建对应对象,也不会初始化对应类,会创建一个编译时类型(其数组类型是JVM在运行时期动态生成的,不是由类加载器加载的,即没有对应的ClassLoader。调用getClassLoader会返回对用元素的Clas
阅读全文
摘要:加载类过程是在程序运行期间完成的,包含三个阶段 加载 连接 初始化 一、加载 查找并加载类的二进制数据 xxx.class,将其读入内存 放在运行时数据区的方法区内,然后创建一个java.lang.Class对象(规范并未说明Class对象位于哪里,HotSpot虚拟机将其放在了方法区中)用来封装类
阅读全文
摘要:编译时常量在编译阶段会写死到.class中 而且会存入到 调用这个常量的方法所在的类的常量池中 如下代码编译后 删除Parents01.class 后依然可以正常执行 说明VALUE被写入了MyTest01中 运行时常量:(编译时不加载,类初始化时才加载) 另外 用子类调用父类的 static字段
阅读全文
摘要:反编译指令 javap -c xxxx.class JVM参数设置 -xx:+<option> 开启option -xx: -<option> 关闭option选项 -xx:<option>=<value> 设置选项的值 0xB2 getstatic 获取指定的静态域,并将其值压入栈顶 0xB3 p
阅读全文

浙公网安备 33010602011771号