JVM
文章平均质量分 85
深入理解Java虚拟机
哪 吒
2022博客之星Top1,现象级专栏 《Java基础教程系列》作者,专注Java硬核干货分享,立志做到Java赛道全网Top N
展开
-
【JVM 1】类加载器 + 运行时数据区
一、运行时数据区内部结构二、PC寄存器1、概念JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能运行。这里,并非广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。2、作用PC寄存器用来存储指向下一条指令的地址,也即将原创 2021-03-17 00:12:13 · 5210 阅读 · 25 评论 -
【JVM 2】HotSpot VM GC 的种类
本系列是用来记录《深入理解Java虚拟机》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!一、collector种类GC在 HotSpot VM 5.0里有四种:incremental (sometimes called train) low pause collector已被废弃,不在介绍类别 serial collector parall...原创 2020-01-19 09:24:17 · 3068 阅读 · 1 评论 -
【JVM 3】Eclipse运行速度调优
本系列是用来记录《深入理解Java虚拟机》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!这两天看了JVM的内存优化,决定尝试一下,对Eclipse进行内存调优。本次使用的机器为64位Win10系统,虚拟机为Java HotSpot(TM) 64-Bit。硬件是台式联想电脑,Intel Pentium G630,8G物理内存。一、Eclipse配置文件eclips...原创 2020-01-19 09:22:09 · 2494 阅读 · 0 评论 -
【JVM 4】内存调优
本系列是用来记录《深入理解Java虚拟机》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!一、VM内存的系统级调优首选注意在对JVM内存调优的时候不能只看操作系统级别java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和java Visu...原创 2020-01-19 09:23:15 · 4268 阅读 · 0 评论 -
学习JVM有什么实际意义呢?
最近在看尚硅谷宋红康老师的JVM视频,开始的时候很来劲,现在学到了P151分代收集算法的说明,堆、栈、方法区、程序计数器、执行引擎、标记清除算法、复制算法、标记整理算法、分代回收算法等等等等,这些东西在实际开发中又有什么用呢?可能是技术不到位的缘故吧,百思不得其解,是因为面试会问吗?面试有的时候也不问啊,这时候我想到了度哥,度哥的回答我很满意,先总结如下:1、学习JVM能更深入的理解Java这门语言,能理解Java语言底层的执行过程,很多时候要解决一个问题必须深入到字节码层次去分析,才能得到准确的结论,原创 2021-04-03 14:40:08 · 4222 阅读 · 4 评论 -
Class.forName(),classloader.loadclass用法详解
为什么要把ClassLoader.loadClass(String name)和Class.forName(String name)进行比较呢,因为他们都能在运行时对任意一个类,都能够知道该类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。一、java类装载的过程在比较它俩之前需先了解一下java类装载的过程java类装载过程分为3步:1、加载Jvm把class文件字节码加载到内存中,并将这些静态数据装换成运行时数据区中方法区的类型数据,在运行时数据区堆中生成一个代转载 2021-03-29 21:15:02 · 4279 阅读 · 2 评论 -
说一下 jvm 有哪些垃圾回收器?
一、串行垃圾回收器在JDK1.3之前,单线程回收器是唯一的选择。它的单线程意义不仅仅是说它只会使用一个CPU或一个手机线程去完成垃圾收集工作。而且它进行垃圾回收的时候,必须暂停其它所有的工作线程(Stop The World,STW),直到它收集完成。它适合Client模式的应用,在单CPU环境下,它效率高效,由于没有线程交互的开销,专心垃圾收集自然可以获得最高的单线程效率。串行的垃圾收集器有两种,Serial和Serial Old,一般两者搭配使用。新生代采用Serial,是利用复制算法;..转载 2020-09-04 15:56:34 · 16587 阅读 · 1 评论 -
JVM堆内存详解
一、简介JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。先看下JAVA堆内存是如何划分的,如图:JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation),非堆内存就一个永久代(Permanent Generation)。 年轻代又分为Eden和Survivor区。Survivor区由FromSpace和ToSpace组成。Ede转载 2020-11-01 21:35:28 · 8913 阅读 · 3 评论