![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 95
不想睡觉的橘子君
这个作者很懒,什么都没留下…
展开
-
【JVM】调优工具
这里简单介绍一下各种调优用到的工具。原创 2024-05-14 17:44:37 · 891 阅读 · 1 评论 -
【JVM】从可达性分析,到JVM垃圾回收算法,再到垃圾收集器
深入理解Java虚拟机》[1]中,有下面这么一段话:在JVM的各个区域中,如虚拟机栈中,栈帧随着方法的进入和退出而有条不紊的执行者出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由即时编译器进行一些优化,但在基于概念模型的讨论里,大体上可以认为是编译器可知的),因此这几个区域的内存分配和回收都具有确定性,在这几个区域内就不需要考虑如何回收的问题,当方法结束或者线程结束时,内存自然就跟随着回收了。原创 2024-05-13 22:45:24 · 876 阅读 · 0 评论 -
【JVM】从硬件层面和应用层面的有序性和可见性,到Java的volatile和synchronized
Java的关键字volatile保证了有序性和可见性,这里我试着从底层开始讲一下有序性和可见性。原创 2024-05-03 17:41:21 · 902 阅读 · 0 评论 -
【JVM】class文件格式,JVM加载class文件流程,JVM运行时内存区域,对象分配内存流程
这篇文章本来只是想讲一下class文件格式,讲着讲着越讲越多。JVM这一块吧,知识比较散比较多,如果深研究下去如死扣《深入理解Java虚拟机》,这本书很深很细,全记住是不可能的,其实也没必要。趁这个机会直接把标题中的这些的主要知识点都总结一下,不会过深,也不会是太浮于表面的八股文,总结一下比较好记,也省的后面自己再忘了。原创 2024-05-02 16:05:18 · 1001 阅读 · 1 评论 -
【JVM】简述类加载器及双亲委派机制
双亲委派模型,是加载class文件的一种机制。在介绍双亲委派模型之前,我需要先介绍几种类加载器(Class Loader)。原创 2024-04-30 15:29:34 · 1049 阅读 · 0 评论 -
简述jdk的几种垃圾收集器
现将Sishuo的回答引用一下。垃圾收集器的题感觉有点少见,记在这里回头多看看吧。1.Serial收集器单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。2.ParNew收集器ParNew 收集器就是Serial的多线程版本,除了使用多条收集线程外,其余行为包括算法、STW、对象分配规则、回收策略等都与Serial收集器一摸一样。对 应的这种收集器是虚拟机运行在Server模式的转载 2020-12-30 11:36:55 · 583 阅读 · 0 评论 -
简述JVM内存组成
JVM内存按能不能线程共享分为共享区和私有区。共享区包括堆和方法区。私有区包括程序计数器、虚拟机栈、本地方法栈。私有区可以称之为是线程隔离的,而共享区不是线程隔离的。堆:堆中主要存储程序运行时加载的实例对象。(准确的说,是类加载器classLoader加载所需类的字节码文件)。堆中的数据也是垃圾回收的重点区域,同时也是JVM内存中最大的一块区域。方法区:方法区存储的内容包括类信息、常量、静态变量及域信息(Field)和方法信息(Method)。其中,类信息是由类加载器在加载类的时候从类文件中原创 2020-10-22 10:07:08 · 116 阅读 · 0 评论 -
简述JVM的垃圾回收算法
从今天开始将陆续记录一些面试中遇到的问题,将自己的理解记录下来,以便日后查找。如何判断一个对象是不是“垃圾”,需要使用垃圾分析算法。JVM的垃圾分析算法有引用计数算法和可达性分析算法(主流)。引用计数法每一个对象都有一个引用计数器,当被引用一次时,它都会 +1,引用取消时 -1,当执行GC时,所有引用计数器为 0 的对象都会被视为“垃圾”。优点:相对于其他垃圾回收算法,标记清除法实现相对简单。缺点:当两个对象相互引用时,就会无法被清除。可达性分析算法基于有向图,以变量为Root根节点,通过这原创 2020-10-22 10:03:47 · 81 阅读 · 0 评论