JVM
文章平均质量分 95
Brycen Liu
想足够优秀,再大方拥有。
展开
-
JVM中G1垃圾收集器-刘宇
一、名词解释1.1、吞吐量1.2、响应能力二、G1的简单介绍2.1、简单说明2.2、G1收集器的设计目标2.3、G1 VS CMS、Parallel2.4、G1的适用场景三、不同垃圾收集器对堆的划分3.1、Hotspot虚拟机主要构成3.2、传统垃圾收集器堆结构3.3、G1垃圾收集器堆结构四、G1重要概念五、G1的详细介绍5.1、G1的堆内存结构5.2、G1的堆划分5.3、G1中的年轻代5.4、G1中年轻代的收集器5.5、G1中老年代收集器5.5.1、并发标记的周期阶段5.5.2、初始化标记阶段5.5.3、原创 2021-12-27 14:16:39 · 676 阅读 · 0 评论 -
JVM中CMS垃圾收集器的介绍-刘宇
JVM中CMS垃圾收集器的介绍-刘宇一、什么是CMS收集器1.1、简单介绍1.2、CMS收集器示意图1.3、CMS优点1.4、CMS的缺点及解决方法1.5、空间分配担保二、CMS的详细步骤2.1、Phase1:Initial Mark2.2、Phase2:Concurrent Mark2.3、Phase3:Concurrent Preclean2.4、Phase4:Concurrent Abortable Preclean2.5、Phase5:Final Remark2.6、Phase6:Concurren原创 2021-12-27 14:00:33 · 450 阅读 · 0 评论 -
JVM中垃圾收集器的简单练习-刘宇
JVM中垃圾收集器的简单练习-刘宇一、分析垃圾收集日志二、对象分配及阈值设置2.1、对象分配何时在老年代进行分配2.2、阈值设置三、设置对象的晋升阈值及阈值动态调整策略3.1、设置对象的晋升阈值3.2、动态调整对象晋升阈值的策略作者:刘宇CSDN博客地址:https://blog.csdn.net/liuyu973971883有部分资料参考,如有侵权,请联系删除。如有不正确的地方,烦请指正,谢谢。一、分析垃圾收集日志JVM运行参数:-verbose:gc //详细输出垃圾回收相关的日志-原创 2021-12-27 13:59:29 · 178 阅读 · 0 评论 -
JVM中垃圾收集器的理论知识-刘宇
JVM中垃圾收集器的理论知识-刘宇一、GC的简单概要1.1、什么是GC1.2、需要GC的内存区域1.2.1、方法区1.2.2、堆区1.3、内存回收1.4、GC的时机1.4.1、Scavenge GC(Minor GC)1.4.2、Full GC二、垃圾判断算法2.1、引用计数算法(Refeience Counting)2.2、根搜索算法(GC Roots Tracing)三、JVM常见的GC算法3.1、标记-清除算法(Mark-Sweep)3.2、复制(Copying)搜集算法3.3、标记-整理(Mark-原创 2021-12-27 13:58:31 · 352 阅读 · 0 评论 -
JVM内存以及常用工具的详细讲解-刘宇
一、JVM内存结构介绍1.1、JVM内存结构1.2、程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正在执行一个 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是 Native 方法,这个计数器的值则为 (Undefined)。此内存区域是唯一一个在 Java 虚拟机规范中没有规定任何 OutOfMemoryErro原创 2021-12-27 13:48:59 · 776 阅读 · 0 评论 -
JVM中栈帧的详细讲解-刘宇
一、什么是栈帧栈帧是栈中的一个栈元素,是一中用于帮助虚拟机执行方法调用与方法执行的数据结构,当前线程中,每执行一个方法就会往栈中插入一个栈帧。栈帧本身是一种数据结构,封装了方法的局部变量表、动态链接信息、方法返回地址(即返回到方法的调用者)以及操作数栈Java虚拟机栈(Java Virtual Machine Stacks)是线程私有的,换句话说,每个线程都会有一个栈,所以对于栈帧来说不存在并发调用的情况。二、栈帧的组成部分2.1、动态链接假设A类调用了B类的一个方法,在程序编译期间A对原创 2021-12-26 10:37:02 · 3703 阅读 · 0 评论 -
Java字节码的详细讲解-刘宇
一、字节码文件解析使用javap -verbose命令分析一个字节码文件时,将会分析该字节码的魔数、版本号、常量池、类信息、类的构造方法、类中的方法信息、类变量与成员变量等信息。魔数:所有的.class字节码文件的前4个字节都是魔数,魔数值为固定值:0xCAFEBABE。1.1、字节码范围解析1.1.1、魔数占据第1~4个字节:所有的.class字节码文件的前4个字节都是魔数,魔数值为固定值:0xCAFEBABE。1.1.2、版本信息占据第5~8字节:前两个字节表示minor v原创 2021-12-23 18:58:58 · 2426 阅读 · 0 评论 -
Java中线程上下文类加载器的讲解-刘宇
什么是线程上下文类加载器线程上下文类加载器(Context Classloader)是从JDK1.2开始引入的,类Thread中的getContextClassLoader()和setContextClassLoader(ClassLoader cl)分别用来获取和设置上线文类加载器。如果没有通过setContextClassLoader(ClassLoader cl)进行设置的话,线程将继承其父线程的上下文类加载器。Java应用运行时的初始线程的上下文类加载器是系统类加载器。在线程中运行的代码可以通原创 2021-12-22 19:59:33 · 1896 阅读 · 0 评论 -
Java中类加载器的练习-刘宇
一、ClassLoader的简单介绍一个类加载器是一个对象,主要负责来加载类。ClassLoader是一个抽象类,如果给定一个类的二进制名字(如:javax.swing.JSpinner$DefaultEditor),此时类加载器就会去定位(真真实实存在的类)或生成(动态创建的类)这个类定义相应的数据每一个Class对象都包含一个定义这个Class对象的ClassLoader对象的引用,这样我们就可以Class对象中的getClassLoad()获取到ClassLoader对象针对于数组类的Clas原创 2021-12-22 19:57:16 · 425 阅读 · 0 评论 -
Java中ClassLoader的加载过程练习-刘宇
Java中ClassLoader的加载过程-刘宇2、小练习2.1、主动使用-访问静态变量2.2、主动使用-访问静态常量2.3、反编译class文件2.4、class文件中的助记符2.5、主动使用-不固定的静态常量值作者:刘宇CSDN博客地址:https://blog.csdn.net/liuyu973971883有部分资料参考,如有侵权,请联系删除。如有不正确的地方,烦请指正,谢谢。2、小练习2.1、主动使用-访问静态变量package com.brycen.demo;public cl原创 2021-12-20 18:38:00 · 327 阅读 · 0 评论 -
Java中JVM类加载器详细介绍-刘宇
作者:刘宇。JVM类加载器详细介绍一、什么是类加载器二、类加载器的分类三、父委托加载机制优点名词解释三、自定义类加载器一、什么是类加载器根据一个指定的类的全限定名,找到对应的Class字节码文件,然后加载它转化成一个java.lang.Class类的一个实例。并且这个类对应的Class实例在堆区无论你加载多少次只会存在一个,除非使用不同的加载器去加载这个类,则会出现多个的效果。这是因为不同的加载器会出现命名空间的问题。二、类加载器的分类原创 2020-07-26 13:12:37 · 387 阅读 · 0 评论 -
Java中ClassLoader的加载过程-刘宇
作者:刘宇。JAVA中ClassLoader的加载过程1、基本概念1.1、如何结束JVM生命周期1.2、类加载的三个过程1.3、Java程序对类的使用方式主要分为两种1.3.1、主动使用:1.3.2、被动使用:1.3.3、特殊使用情况:1.4、类加载过程小练习2、JVM简单介绍2.1、虚拟机所管理的内存2.2、程序计数器2.3、Java 虚拟机栈2.4、本地方法栈2.5、Java 堆2.6、方法区3、类加载的三个阶段详解3.1、加载阶段3.1.1、加载类的方式。原创 2020-07-25 18:16:10 · 735 阅读 · 0 评论