java虚拟机
文章平均质量分 91
__Aaron
这个作者很懒,什么都没留下…
展开
-
JAVA虚拟机动态连接及分派详解
动态连接及分派深入详解为什么要将动态连接和分派放在一起讲?动态连接概括定义静态解析分派静态分派动态分派为什么要将动态连接和分派放在一起讲?大家看完后面的内容这个问题迎刃而解了。动态连接概括定义每个栈帧都保存了一个可以指向当前方法所在类的运行时常量池, 目的是当方法中需要调用其它方法的时候能够从运行时常量池中找到对应的符号引用, 然后将符号引用转换为直接引用然后就能直接调用对应的方法这就是动...原创 2018-10-28 14:36:52 · 866 阅读 · 0 评论 -
类加载器深入详解
类加载器深入详解类加载器JAVA虚拟机自身提供的加载器启动类加载器(Bootstrap ClassLoader)扩展类加载器(Extension ClassLoader)应用程序类加载器(Application ClassLoader)用户自定义的加载器双亲委派模型主要思路源码分析loadClass(String name, boolean resolve)getClassLoadingLock(...原创 2018-10-26 12:57:33 · 302 阅读 · 0 评论 -
jvm 常量池及运行时常量池
常量池当我们将 .java文件编译成为了class文件后常量池就存储在静态class文件中主要包含以下内容字面量: 常量,字符串,基本类型等符号引用: 类和接口全限定名,字段,方法名称及描述符运行时常量池当jvm加载class完成后,会将类的信息如常量池,字段,方法等数据装载进内存方法区此时class文件里此时常量池就转变为了运行时常量池为撒要生成 "运行时常量池"因为常量不只是...原创 2018-10-25 13:39:22 · 1191 阅读 · 0 评论 -
JAVA虚拟机类加载过程
虚拟机类加载过程什么时候进行类加载类加载步骤加载连接(Linking)验证准备解析初始化什么时候进行类加载jvm虚拟机规范没有强制性的规定何时需要进行类的加载,但是如果遇到了以下几种情况的指令则强制必须立即对类进行加载new 创建对象的时候,getstatic 读取静态字段的时候,putstatic 设置静态字段的时候,invokestatic 调用类的静态方法的时候类加载步骤加...原创 2018-10-25 13:22:42 · 242 阅读 · 0 评论 -
运行时数据结构(1)-java堆
java堆堆的内存划分创建的对象存放在哪里eden 空间TLAB(Thread Local Allocation Buffer)栈(线程逃逸分析技术)对象内存分配,在栈上创建对象就一定是线程安全的吗?对象的生命周期堆的内存划分整体划分为年轻代和老年代细分如下:1. eden 空间 ------------------ 年轻代2. from survivor 空间 -------- 年轻...原创 2018-10-27 15:21:23 · 651 阅读 · 0 评论