JVM
聆听。。花开雨落
这个作者很懒,什么都没留下…
展开
-
JVM调优--StringTable调优
StringTable调优原创 2022-12-18 17:20:38 · 146 阅读 · 0 评论 -
JVM--内存结构
1. 前言Java 虚拟机是中、高级开发人员必须修炼的知识,有着较高的学习门槛,很多人都不情愿去接触它。可能是觉得学习成本较高又或者是感觉没什么实用性,所以干脆懒得“搭理”它了。其实这种想法是错误的。举个最简单的例子,JVM 基本上是每家招聘公司都会问到的问题,它们会这么无聊问这些不切实际的问题吗?很显然不是。由 JVM 引发的故障问题,无论在我们开发过程中还是生产环境下都是非常常见的。比如 OutOfMemoryError(OOM) 内存溢出问题,你应该遇到过 Tomcat 容器中加载项目过多导致的 O转载 2020-06-26 11:55:17 · 112 阅读 · 0 评论 -
JVM--垃圾回收器(终结篇)
Jvm垃圾回收目前就准备了这三篇博文进行整理,在写博文的过程中我也是边看边记载的,我觉得这种学习方式更容易让人记住,不会轻易忘记。以前的学习模式都是看PDF文档、看书等,但是有个缺点就是当时记住了过段时间就会忘记,因此想把学习过程中重要的部分做个笔记总结,以便于后期复习回顾(学习技巧仅个人观点)同时也希望lz的博客能帮助到广大园友一丢丢。在此立个Flag!以后我会坚持写博客的。哈哈--好了 接下来言归正传。知识回顾:第一篇《Jvm垃圾回收器(基础篇)》主要讲述了判断对象的生死?两种基础判断对象生死的转载 2020-06-25 16:32:02 · 142 阅读 · 0 评论 -
JVM--垃圾回收机制
1. 概述垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。2. 垃圾判断算法2.1 引用计数法给每个对象添加一个计数器,当有地方引用该对象时计数器加1,当引用失效时计数器减1。用对象计数器是否为0来判断对象是否可被回收。缺点:无法解决循环引用的问题。先创建一个字符串,String m = new String("jack");,这时候 "j.转载 2020-06-15 22:40:15 · 143 阅读 · 0 评论 -
JVM--对象什么情况会进入到老年代
1.大对象:所谓的大对象是指需要大量连续内存空间的java对象,最典型的大对象就是那种很长的字符串以及数组,大对象对虚拟机的内存分配就是坏消息,尤其是一些朝生夕灭的短命大对象,写程序时应避免。2.长期存活的对象:虚拟机给每个对象定义了一个对象年龄(Age)计数器,如果对象在Eden出生并经过第一次Minor GC后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,并且对象年龄设为1,。对象在Survivor区中每熬过一次Minor GC,年龄就增加1,当他的年龄增加到一.转载 2020-06-14 18:11:24 · 3170 阅读 · 0 评论 -
JVM--相关VM参数
原创 2020-06-14 18:04:18 · 245 阅读 · 0 评论 -
JVM--垃圾回收算法
1.标记清除算法是JVM垃圾回收算法中最古老的一个,该算法共分成两个阶段,第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,清除未被标记的对象。该算法的缺点是需要暂停整个应用,并且在回收以后未使用的空间是不连续,即内存碎片,会影响到存储。速度较快2.标记整理算法此算法结合了标记-清楚算法和复制算法的优点,也分为两个阶段,第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,在回收不存活的对象占用的空间后,会将所有的存活对象往左端空闲空间移动,并更新对应的指针。转载 2020-06-14 18:03:27 · 117 阅读 · 0 评论 -
JVM—如何判定对象可以回收
引用计数和可达性分析算法(存活性判断)1 引用计数算法1.1 算法思想 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1; 当引用失效时,计数器值就减1; 任何时候计数器为0时的对象就是不能再被使用。1.2 特点优点:实现简单;判定效率高。 缺点:很难解决对象之间相互循环引用的问题。(所以虚拟机不是通过引用计数算法判断对象是否存活)2 可达性分析算法2.1 算法思想 通过一系列称为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索走.转载 2020-06-14 17:44:52 · 119 阅读 · 0 评论