JVM
Java小白94
这个作者很懒,什么都没留下…
展开
-
新建一个对象时,jvm的内存变化。
对象的创建 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。 主要流程如下: 类加载检查 JVM遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相...转载 2019-08-25 10:20:59 · 299 阅读 · 0 评论 -
JVM运行时数据区域
本篇文章主要介绍一下自己学习《深入了解java虚拟机》2.2节运行时数据区域同时本文参考了https://blog.csdn.net/wanggg2760/article/details/51911952、https://blog.csdn.net/weixin_41875978/article/details/80704838和本文链接:https://blog.csdn.net/fhf2424...原创 2019-08-27 11:19:41 · 76 阅读 · 0 评论 -
Java类的初始化
虚拟机4种必须立刻对类进行初始化 1.遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类没有进行初始化,则需要触发其初始化。应用场景:使用关键字new实例化对象的时候,读取获设置类的静态字段的时候,以及调用一个静态方法的时候。 2.使用java.lang.reflect的方法对类进行反射调用的时候,如果类没有进行初始化,则需要触发其初始化。 3....原创 2019-08-27 14:40:05 · 123 阅读 · 0 评论 -
类加载机制的流程
本篇文章主要介绍一下自己学习《深入了解java虚拟机》第七章虚拟机类的加载机制,并主要参考https://blog.csdn.net/dd864140130/article/details/49817357 主要流程如下 1.加载 (1)通过类的全限定名来获取定义此类的二进制字节流 (2)将这个类字节流代表的静态存储结构转为方法区的运行时数据结构 (3)在堆中生成一个代表此类的java.lang...原创 2019-08-27 22:47:45 · 96 阅读 · 0 评论