随笔分类 -  JVM

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