Java虚拟机
ColdplayYELL
这个作者很懒,什么都没留下…
展开
-
Java虚拟机(三)------常量的本质含义与反编译及助记符详解
-XX:+TraceClassLoading,用于追踪类的加载信息并打印出来 jvm参数-XX:+,表示开启option参数 -XX:-,b表示关闭option参数 -XX:=,b表示将option选项的值设置为value package com.huawei.jvm.classloader; public class MyTest2 { public static void main...原创 2019-08-04 18:17:39 · 253 阅读 · 0 评论 -
从零开始学习JAVA虚拟机(一)-类加载器深入解析与阶段分解
(一)类加载 1、在JAVA代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 注意区分类型和对象,类型可以理解成一个class文件 为什么是运行期间呢? 提供了更大的灵活性,增加了更多的可能性,去做一些创意性的,平时很难完成的工作 加载: 最常见的场景是从磁盘上把class文件加载到内存中 查找并加载类的二进制数据 连接: 处理过程有很多,简单的说是将类与类之间的关系处理好, 并且...原创 2019-07-31 22:50:07 · 94 阅读 · 0 评论 -
Java虚拟机(二)------类的加载连接与初始化过程详解
1Java程序对类的使用方式分为两种 ——主动使用 ——被动使用 2所有的Java虚拟机实现必须在每个类或接口被Java程序“首次主动使用”时才初始化他们 主动使用(7种) 应该从字节码层面上去理解 1、创建类的实例(new 一个对象) 2、访问某个类或者接口的静态变量,或者对该静态变量赋值 3、调用类的静态方法 PS:助记符 访问静态变量getstatic 静态变量赋值putstatic 调用类...原创 2019-08-04 16:00:27 · 126 阅读 · 0 评论 -
Java虚拟机(四)编译期常量与运行期常量的区别及数组创建本质分析
1、当一个常量的值并非编译期间可以确定地,那么其值就不会被放到调用类的常量池中,这时在程序运行时,会导致主动使用这个常量所在的类,显然会导致这个类被初始化 助记符: anewarray:表示引用类型的(接口,类)数组,并将其引用值压入栈顶 [L newarry;表示创建一个指定的原始类型(int,float,char)的数组,并将其压入栈顶 [I [Z [C ...原创 2019-08-06 23:03:48 · 113 阅读 · 0 评论 -
接口初始化规则与类加载器准备阶段和初始化阶段
当一个接口初始化时,并不要求其接口都完成初始化 只有在真正使用到父接口的时候,才会初始化与类的初始化不太一样,注意区分原创 2019-08-11 23:01:50 · 105 阅读 · 0 评论