垃圾收集器垃圾收集器 1、GC指标评估 1.1吞吐量 吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间)。 比如:虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。; 1.2暂停时间 “暂停时间”是指一个时间段内应用程序线程暂停,让GC线程执行的状态 例如,GCMr.LR2022年4月10日java-jvmjvm大约 8 分钟
垃圾回收概述&相关算法垃圾回收概述&相关算法 " 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。" 1、概述 关于垃圾收集有三个经典问题: 哪些内存需要回收?; 什么时候回收?; 如何回收?; 1.1什么是垃圾 是垃圾( Garbage) 呢?; 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要Mr.LR2022年4月9日java-jvmjvm大约 25 分钟
JVM-内存结构讲解jvm-内存结构讲解 内存结构图 线程私有:程序计数器、虚拟机栈、本地方法区; 线程共享:堆、方法区, 堆外内存(Java7的永久代或JDK8的元空间、代码缓存); 1、程序计数器 程序计数寄存器(Program Counter Register),Register 的命名源于 CPU 的寄存器,寄存器存储指令相关的线程信息,CPU 只有把数据装载到寄存器Mr.LR2022年4月9日java-jvmjvm大约 30 分钟
类的加载器类的加载器 1、类的加载器 作用 类加载器是 JVM 执行类加载机制的前提。 ClassLoader的作用: ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.Class对象实例。然Mr.LR2022年4月8日java-jvmjvm大约 7 分钟
对象内存布局对象内存布局 1、创建对象的步骤 1.1判断对象对应的类是否加载、链接、初始化 虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。(即判断类元信息是否存在)。 如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名Mr.LR2022年4月8日java-jvmjvm大约 5 分钟
类的加载过程类的加载过程 1、Loading(装载)阶段 1、简言之 将Java类的字节码文件加载到机器内存中,并在内存中构建出Java类的原型——类模板对象。 2、装载操作 在加载类时,Java虚拟机必须完成以下3件事情: 将class文件加载到内存; 将静态数据结构转化成方法区中运行时的数据结构; 在堆中生成一个代表这个类的 java.lang.Class对象作Mr.LR2022年4月7日java-jvmjvm大约 7 分钟