JVM
文章平均质量分 62
Java虚拟机学习笔记与心得
秃头不用洗发水
github:https://github.com/345404748
展开
-
JVM笔记-17运行时数据区-方法区(演变、设置大小、内部结构、演变细节)
元空间在本地内存实现,而不在虚拟机设置的内存中,原创 2021-03-01 03:04:37 · 215 阅读 · 2 评论 -
JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)垃圾回收Hotspot:运行时数据区垃圾收集异常PC寄存器✖✖虚拟机栈✖✔本地方法栈✖✔堆空间✔✔方法区✔✔堆中有实例,就会有指针指向方法区的类型信息。方法区记录是由哪个类的加载器加载,同时类的加载器也会记录加载过谁。虚拟机规范没有明确规定方法区是否需要垃圾回收(Hotspot有)主要回原创 2021-03-05 23:40:08 · 133 阅读 · 2 评论 -
JVM笔记-18运行时数据区-方法区(运行时常量池、StringTable、静态变量)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)运行时常量池Run-time Constant Pool字节码文件中的常量池,通过类的加载器(ClassLoader Subsystem)加载到方法区以后,对应的结果就是运行时常量池。因为不可能把所有的信息都存储到文件中,所以把要出现的信息作为一个符号出现——符号引用符号 # —— 使用的就是常量池对应的指令操作字节码文件当中的,常量池,经过类的加载原创 2021-03-01 23:35:48 · 238 阅读 · 3 评论 -
JVM笔记-16运行时数据区-堆(逃逸分析:代码优化、总结)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)逃逸分析:代码优化避免垃圾回收,提高程序性能。栈上分配-/+DoEscapeAnalysis 默认开启关闭逃逸分析开启逃逸分析运行时间减少,根本不会维护那么多对象。甚至没有发生gc。同步省略字节码中还是有,运行时才考虑省略。分离对象/标量替换主要还是标量替换,作为优化的手段,逃逸分析完,直接进行栈上分配并没有被采用。逃逸分析原创 2021-02-25 02:25:30 · 1954 阅读 · 3 评论 -
JVM笔记-16运行时数据区-堆(逃逸分析)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)堆是分配对象存储的唯一选择吗?new的对象默认分配在堆空间。性能瓶颈主要体现在堆空间。主要要降低老年代的ogc、ygc时间相对很短。栈上分配等,另外的角度,减少gc逃逸分析内部使用,不发生逃逸分析,放在栈中。...原创 2021-02-24 20:44:52 · 83 阅读 · 0 评论 -
JVM笔记-15运行时数据区-堆(堆中GC、堆空间分代思想、TLAB、参数)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)Minor GC、Major GC、Full GC堆中的GC调优:希望减少GC,因为GC会影响用户线程,STW导致用户线程暂停,降低系统效率。减少major gc次数。整个堆和方法区,full——整个-Xms9m -Xmx9m -Xx:+PrintGCDetails限定大小,查看gc细节出现OOM之前,会经历Full gc,老年代空间不足,先垃圾回收,原创 2021-02-24 20:18:50 · 179 阅读 · 0 评论 -
JVM笔记-14运行时数据区-堆(对象分配过程)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)对象分配过程演示伊甸园区满了,触发ygc / miner gc,此时stw用户线程停止,判断垃圾可达性分析算法。图中红色为垃圾,绿色的还在被使用,被提升到幸存者区,先放到s0区。每个对象有个年龄计数器,此时绿色的对象age为1。伊甸园区被清空,然后再存放对象,然后伊甸园区满了,再次触发ygc,此时发现四个对象是垃圾回收掉了。绿色的放入幸存者区,此时放入s1中(原创 2021-02-24 05:51:51 · 263 阅读 · 0 评论 -
JVM笔记-13运行时数据区-堆(OOM、年轻代老年代)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)OOM异常是什么?堆空间溢出,存放数据大于堆空间大小。package com.hut.djh;import java.util.ArrayList;import java.util.Random;/** * @Author: 秃头不用洗发水 * @Date: 2021-02-23 * @Description: OOM * -Xms600m -Xmx原创 2021-02-24 00:52:54 · 703 阅读 · 4 评论 -
JVM笔记-12运行时数据区-堆(堆基本概述、堆空间大小设置)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)堆原创 2021-02-23 05:08:17 · 296 阅读 · 5 评论 -
JVM笔记-11(本地方法、本地方法栈)
Java虚拟机栈管理Java方法,本地方法栈管理本地方法原创 2021-02-21 21:04:28 · 123 阅读 · 0 评论 -
JVM笔记-10Java虚拟机栈(方法返回地址、相关试题)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)方法返回地址附加信息相关试题原创 2021-02-21 19:10:14 · 2195 阅读 · 5 评论 -
JVM笔记-9Java虚拟机栈(动态链接,晚/早期绑定、非虚/虚方法、虚方法表)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。JVM笔记-9Java虚拟机栈(动态链接,晚/早期绑定、非虚/虚方法)原创 2021-02-21 05:49:34 · 632 阅读 · 3 评论 -
JVM笔记-8Java虚拟机栈(操作数栈operand stack)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)操作数栈(operand stack)栈可以使用数组或链表实现。执行引擎会将操作码指令翻译为机器指令,做执行。操作数栈——数组被创建——数组一旦创建长度是固定的——编译后确定栈的深度locals——局部变量表的长度,stack——操作数栈的最大深度 (都是用数组结构实现的)代码追踪更好理解操作数栈和局部变量表在终端或者jclass查看代码字节码指令等。原创 2021-02-21 03:01:28 · 387 阅读 · 1 评论 -
JVM笔记-7Java虚拟机栈(栈帧&&局部变量表)
栈的存储单位局部变量表操作数栈代码追踪栈顶缓存技术动态链接方法调用:解析与分派方法返回地址附加信息相关试题原创 2021-02-21 00:20:04 · 508 阅读 · 5 评论 -
JVM笔记-6Java虚拟机栈(Java虚拟机栈基本认识)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)虚拟机栈概述JVM是基于栈式架构的。栈是运行时的单位,堆是存储的单位。栈管运行,堆管存储。虚拟机栈:线程私有的。内部保存栈帧,一个栈帧对应一个Java方法。在主线程中,执行以上代码,所以这里就只有一个线程,即用一个栈表示。一个线程对应一个Java虚拟机栈。栈顶的方法称为 当前方法。当方法b执行完,出栈,方法a变成当前方法。一次次方法调用,就对应着一原创 2021-02-20 02:58:05 · 1917 阅读 · 7 评论 -
JVM笔记-5(运行时数据区Runtime Data Area、pc寄存器 PCRegister及相关问题)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)Runtime Data Area运行时数据区红色区域:一个进程(一个虚拟机实例)一份(共用),灰色区域:一个线程一份95%(大多数的垃圾回收集中在Heap堆区,5%在Method Area方法区——>元空间)栈没有垃圾回收,因为只有简单的入栈出栈操作。但有可能会溢出OOMpc寄存器也没有垃圾回收。每个JVM只有一个Runtime实例(一个JVM原创 2021-02-19 05:26:10 · 347 阅读 · 3 评论 -
JVM笔记-4(类加载器补充,类加载器子系统结束)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)是否主动/被动使用,会不会导致类的初始化——lnitialization初始化,静态代码块会执行。...原创 2021-02-19 03:07:24 · 121 阅读 · 0 评论 -
JVM笔记-3(双亲委派机制理解)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)双亲委派机制双亲委派机制:避免类的重复加载,保护程序安全,防止核心api被随意篡改。假如定义一个自己创建java.lang的包,下面定义一个String类。package java.lang;/** * @Author: 秃头不用洗发水 * @Date: 2021-02-19 * @Description: */public class String原创 2021-02-19 02:54:17 · 256 阅读 · 0 评论 -
JVM笔记-2(类加载器Class Loader)
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)类加载器主要分 引导类(启动类)加载器(bootstrap Class Loader) 和 自定义加载器(继承自ClassLoader)。package com.hut.djh;/** * @Author: 秃头不用洗发水 * @Date: 2021-02-18 * @Description: */public class ClassLoaderTest {原创 2021-02-18 03:00:14 · 230 阅读 · 0 评论 -
JVM笔记-1
学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。原创 2021-02-15 13:25:57 · 408 阅读 · 1 评论