JVM 第十章 类加载器

类加载器类与类加载器判断类是否“相等”任意一个类,都由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都有一个独立的类名称空间。因此,比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同一个
Java jvm 2020年08月17日 226次浏览

JVM第九章 类加载的过程

类加载的过程类加载过程包括5个阶段:加载、验证、准备、解析和初始化。加载加载的过程“加载”是“类加载”过程的一个阶段,不能混淆这两个名词。在加载阶段,虚拟机需要完成3件事:通过类的全限定名获取该类的二进制字节流。将二进制字节流所代表的静态结构转化为方法区的运行时数据结构。在内存中创建一个代表该类的j
Spring jvm 2020年08月16日 250次浏览

JVM 第八章 类加载的时机

类加载的时机类的生命周期类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下7个阶段:加载验证准备解析初始化使用卸载验证、准备、解析3个阶段统称为连接。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始(注意是“开始”,而不是“进行”
Java jvm 2020年08月14日 249次浏览

JVM 第七章 类文件结构

类文件结构JVM的“无关性”谈论JVM的无关性,主要有以下两个:平台无关性:任何操作系统都能运行Java代码语言无关性:JVM能运行除Java以外的其他代码Java源代码首先需要使用Javac编译器编译成.class文件,然后由JVM执行.class文件,从而程序开始运行。JVM只认识.class文
Java jvm 2020年08月13日 187次浏览

JVM 第六章 JVM 性能调优

JVM性能调优在高性能硬件上部署程序,目前主要有两种方式:通过64位JDK来使用大内存;使用若干个32位虚拟机建立逻辑集群来利用硬件资源。使用64位JDK管理大内存堆内存变大后,虽然垃圾收集的频率减少了,但每次垃圾回收的时间变长。如果堆内存为14G,那么每次FullGC将长达数十秒。如果FullGC
Java jvm 2020年08月12日 156次浏览

JVM 第五章 内存分配与回收策略

内存分配与回收策略对象的内存分配,就是在堆上分配(也可能经过JIT编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。以下列举几条最普遍的内存分配规则,供大家学习。对象优先在E
Java jvm 2020年08月12日 136次浏览

JVM 第四章 HotSpot 垃圾收集器

HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点
Java jvm 2020年08月07日 111次浏览

JVM 第三章 垃圾收集策略与算法

程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭
Java jvm 2020年08月07日 90次浏览

JVM 第二章 HotSpot 虚拟机对象探秘

在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域
Java jvm 2020年08月06日 90次浏览

JVM 第一章 JVM 内存结构

Java 虚拟机的内存空间分为 5 个部分
Java jvm 2020年08月06日 117次浏览