【Java】-- JVM虚拟机
JVM虚拟机系列文章
后端元宇宙
这个作者很懒,什么都没留下…
展开
-
JVM虚拟机(1)---常用JVM配置参数
常用JVM配置参数 常用JVM配置参数主要有:Trace跟踪参数、堆的分配参数、栈的分配参数。一、Trace跟踪参数 跟踪参数用于跟踪监控JVM,对于开发人员来讲用于JVM调优以及故障排查的。1、打印GC的简要信息-verbose:gc-XX:+PrintGC这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码publ...原创 2018-09-02 19:49:01 · 167 阅读 · 0 评论 -
【JVM虚拟机】(2)---GC 算法与种类
GC 算法与种类 对于垃圾收集(GC), 我们需要考虑三件事情:哪些内存需要回收?如何判断是垃圾对象?垃圾回收算法有哪些?一、GC的工作区域1、不是GC的工作区域 (1)程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭; (2)栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知...原创 2018-09-02 19:49:37 · 119 阅读 · 0 评论 -
【JVM虚拟机】(3)---垃圾回收器
垃圾回收器 收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。收集器主要分三类:串行收集器、并行收集器以及并发收集器。一、基础概念1、并发和并行 a:并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 b:并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程...原创 2018-09-02 19:50:13 · 94 阅读 · 0 评论 -
【JVM虚拟机】(4)---性能调优
JVM性能调优 一、调优策略 对于GC的性能主要有2个方面的指标:吞吐量throughput(工作时间不算gc的时间占总的时间比)和暂停pause(gc发生时app对外显示的无法响应)。1、调优的目的 调优的最终目的当然增大吞吐量,减少暂停时间咯,映射到GC层面主要关心下面这两点: (1)将转移到老年代的对象数量降低到最小。 (2)减少fu...原创 2018-09-02 19:50:52 · 161 阅读 · 0 评论 -
【JVM虚拟机】(5)---深入理解JVM-Class中常量池
深入理解Class—常量池 一、概念1、jvm生命周期启动:当启动一个java程序时,一个jvm实例就诞生了,任何一个拥有main方法的class都可以作为jvm实例运行的起点。运行:main()函数作为程序初始线程起点,其它线程由该线程启动,包括守护线程(daemon)和non-daemon(普通线程)。守护线程是JVM自己使用的线程比如GC线程就是个守护线程,只要这个jvm实例还有普通...原创 2019-06-27 15:00:18 · 175 阅读 · 0 评论 -
【JVM虚拟机】(6)---深入理解Class中访问标志、类索引、父类索引、接口索引
JVM(6)访问标志,类索引上一篇博客讲【JVM虚拟机】(5)—深入理解JVM-Class中常量池我们知道一个class文件正常可以分为7个部分:魔数与class文件版本常量池访问标志类索引、父类索引、接口索引字段表集合方法表集合属性表集合那么这篇博客主要讲有关 访问标志 和 类索引、父类索引、接口索引 相关的理解和代码示例。先通俗的说下这两个的作用:访问标志: 告...原创 2019-06-27 15:00:57 · 161 阅读 · 0 评论 -
【JVM虚拟机】(7)---深入理解Class中-属性集合
#【JVM虚拟机】(7)—深入理解Class中-属性集合之前有关class文件已经写了两篇博客:1、【JVM虚拟机】(5)—深入理解JVM-Class中常量池2、【JVM虚拟机】(6)—深入理解Class中访问标志、类索引、父类索引、接口索引那么这篇博客主要讲有关 字段表集合 相关的理解和代码示例。字段表:用于描述接口或者类中声明的变量,字段包括类级(static修饰)变量以及实例级变...原创 2019-06-27 15:01:53 · 161 阅读 · 0 评论 -
【JVM虚拟机】(8)--深入理解Class中--方法、属性表集合
##【JVM虚拟机】(8)–深入理解Class中–方法、属性表集合之前有关class文件已经写了两篇博客:1、【JVM虚拟机】(5)—深入理解JVM-Class中常量池2、【JVM虚拟机】(6)—深入理解Class中访问标志、类索引、父类索引、接口索引3、【JVM虚拟机】(7)—深入理解Class中-属性集合那么这篇博客主要讲有关 方法表集合 相关的理解和代码示例。方法表集合: 告知...原创 2019-06-27 15:02:37 · 181 阅读 · 0 评论 -
【JVM虚拟机】(9)-- JVM是如何处理异常的
#【JVM虚拟机】(9)-- JVM是如何处理异常的上篇博客我们简单说过异常信息是存放在属性表集合中的Code属性表里,那么这篇博客就单独讲Code属性表中的exception_table。在讲之前我们先思考两个问题?1、为什么捕获异常会较大的性能消耗?2、为什么finally中的代码会永远执行?接下来会从JVM虚拟机的角度来解答这两个问题。 一、概念 1、JVM是如何捕获异常的?...原创 2019-06-27 15:03:25 · 612 阅读 · 0 评论