随笔分类 -  JVM深入学习

上一页 1 2 3 4 5 下一页

JVM是一个让人望而却步的东东,做为一个有志向的Java开发人员深入学习它是非常有必要的~~所以接下来准备一点点剖开它神秘的面纱~
G1垃圾收集器堆内存划分与角色分派【纯理论】
摘要:接着上一次【https://www.cnblogs.com/webor2006/p/11123522.html】G1学习继续开启理论之旅。。 G1的设计规划是要替换掉CMS【理想化的】 G1在某些方面弥补了CMS的不足,比如,CMS使用的是mark-sweep算法,自然会产生内存碎片;然而G1基于c 阅读全文

posted @ 2019-07-03 21:49 cexo 阅读(2050) 评论(0) 推荐(1) 编辑

G1垃圾收集器设计目标与改良手段【纯理论】
摘要:在之前已经详细对CMS垃圾回收器进行了学习,今天准备要学习另一个全新的垃圾收集器 G1(Garbage First Collector 垃圾优先的收集器),说是一种全新的,其实G1垃圾收集器已经出现了N多年了,只是从发展到成熟是需要经历一定的过程,oracle官方计划在jdk9中将G1变成默认的垃圾 阅读全文

posted @ 2019-07-02 22:22 cexo 阅读(1313) 评论(0) 推荐(1) 编辑

实例透彻分析CMS垃圾收集器执行过程
摘要:CMS收集器收集步骤: 在上一次【https://www.cnblogs.com/webor2006/p/11055468.html】中已经对CMS的垃圾收集器有了一定的理论上的了解,其中提到了CMS收集器完整的七个步骤,这一次则对每一个步骤进行一个详细了解,并会用程序来理解这七个步骤。 Phase 阅读全文

posted @ 2019-06-30 16:25 cexo 阅读(4198) 评论(0) 推荐(1) 编辑

CMS垃圾收集器深入详解
摘要:上一次【https://www.cnblogs.com/webor2006/p/11048407.html】对安全点和安全区进行了理论化的了解,接下来继续对CMS进行其它理论的了解,还是纯理论!!坚持,因为下一次就会有实践代码了~~ CMS收集器 CMS(Concurrent Mark Sweep) 阅读全文

posted @ 2019-06-19 22:39 cexo 阅读(19002) 评论(1) 推荐(1) 编辑

安全点与安全区域详解
摘要:对于之前GC垃圾收集器的学习回忆【https://www.cnblogs.com/webor2006/p/10982448.html】一下都有哪些垃圾收集器: 接下来则会对CMS这种超级复杂的一个垃圾回收器进行一个学习,相比serial收集器还是parallel收集器,CMS这种收集器无论是在处理的 阅读全文

posted @ 2019-06-18 22:52 cexo 阅读(2285) 评论(0) 推荐(0) 编辑

实例演示MaxTenuringThreshold参数及阈值动态调整策略
摘要:在上一次【https://www.cnblogs.com/webor2006/p/11031563.html】学习了一个新的JVM对象晋升到老年代的参数“MaxTenuringThreshold”,它的具体作用回忆一下: 简单来说就是用来控制哪些对象的年龄超过了这个最大值就会晋升到老年代,而对于对象 阅读全文

posted @ 2019-06-16 16:37 cexo 阅读(1354) 评论(0) 推荐(0) 编辑

MaxTenuringThreshold与阈值的动态调整理论详解
摘要:今天会学习“MaxTenuringThreshold”这样一个新的JVM参数,编写的示例还是会基于上一次的代码,新建个类,如下: 接下来给它设置JVM的参数,具体如下: 而接下来会新增三个参数: 这个在之前已经使用过,只是木有配置到JVM参数中,回忆下: 其实就是打印出JVM的启动参数,接下来再添加 阅读全文

posted @ 2019-06-16 14:57 cexo 阅读(9348) 评论(1) 推荐(0) 编辑

阈值和垃圾收集器类型对于对象分配的影响实战分析
摘要:在上一次【https://www.cnblogs.com/webor2006/p/10990736.html】中实验了一个从新生代到老年代竞升的情况,得出一个这样的结果,回忆下: 其实对于JVM来说,它提供了相应的一些参数来指定对象达到了多少的时候直接就可以在老年代分配而不是在新生代来分配,新生代是 阅读全文

posted @ 2019-06-14 22:50 cexo 阅读(542) 评论(0) 推荐(0) 编辑

新生代与老年代垃圾收集器实现详解
摘要:在上一节【https://www.cnblogs.com/webor2006/p/10989175.html】中已经开启GC的第一次实践,这次继续其于上一次的例子进行扩展来阐述一些其它的知识,先回顾一下上一节的代码: 其中GC参数我们配置如下: 其中对于试验代码中为啥要选用字节数组来实验其实是有原因 阅读全文

posted @ 2019-06-08 15:01 cexo 阅读(2120) 评论(0) 推荐(0) 编辑

垃圾回收日志与算法深度解读
摘要:经过前面对于JVM垃圾回收学习了纯理论相关的东东,这次则要开始用代码编写大量的实验来对理论进行佐证,下面开始,先在IntelliJ IDEA工程中新建一个全新的包: 然后新建一个类: 接下来则会编写一个超级简单的程序,程序虽简单,但是通过增加一些JVM的参数可以用简单的程序来阐述JVM垃圾回收的很多 阅读全文

posted @ 2019-06-07 21:03 cexo 阅读(718) 评论(0) 推荐(0) 编辑

JVM垃圾回收器理论分析与详解【纯理论】
摘要:继续上次【https://www.cnblogs.com/webor2006/p/10740084.html】的理论继续。。有点吐血的感觉,都不知道学了这么一大堆理论有何实际意义,本身JVM就是个理论体系比较多的东东,所以理论不得不去面对,继续硬着头皮往前进。 内存结构 这个在之前的学习中都已经学习 阅读全文

posted @ 2019-06-05 22:50 cexo 阅读(1269) 评论(0) 推荐(0) 编辑

JVM垃圾回收算法分析与演示【纯理论】
摘要:继续接着上一次【https://www.cnblogs.com/webor2006/p/10729649.html】的来学习,上次在结尾处提到了JVM常见的GC算法,如下: 接下来则逐一的对其进行学习,不过还是纯理论,比较枯燥但是必须得过一遍。 标记-清除算法(Mark-Sweep): 算法分为“标 阅读全文

posted @ 2019-04-20 10:13 cexo 阅读(840) 评论(0) 推荐(0) 编辑

JVM垃圾回收重要理论剖析【纯理论】
摘要:JVM学习到这里,终于到学习最兴奋的地方了 垃圾回收,在学习它之前还得对JVM垃圾回收相关理论知识进行了解,然后再通过实践来加深对理论的理解,下面直接开始了解相关的理论: JVM运行时内存数据区域: 这个在之前其实已经介绍过了,对于JVM的垃圾回收一定是回收内存里面的内容,所以如果不对内存区域的划分 阅读全文

posted @ 2019-04-18 15:01 cexo 阅读(585) 评论(0) 推荐(0) 编辑

jstack、jmc、jhat工具使用详解
摘要:jstack: 在上一次【https://www.cnblogs.com/webor2006/p/10669472.html】jcmd中也可以获取线程的堆栈信息,回顾一下: 其实在JDK中还有另一个专门查看或导出Java应用程序中线程的堆栈信息jstack,具体瞅下它的使用: 咱们还是以之前死锁的M 阅读全文

posted @ 2019-04-12 16:15 cexo 阅读(814) 评论(0) 推荐(0) 编辑

jcmd命令实战
摘要:继续来根据之前的那篇infoq的文章的介绍熟悉工具,上一次咱们学习使用了: 接下来学习它里面提到的另一个工具: jcmd是一个非常之强大的命令行工具,能输出很多很多的信息,也是在处理JVM的一些问题经常要接触到的一个工具,这个命令也是需要一个进程ID的,而在之前咱们来查询pid时是使用了一个不是特别 阅读全文

posted @ 2019-04-08 11:23 cexo 阅读(3216) 评论(1) 推荐(1) 编辑

jmap与jstat工具实战分析
摘要:在上一节【https://www.cnblogs.com/webor2006/p/10662363.html】最后其实是抛出了infoq关于元空间介绍的文章中所涉及到JDK自带的一些工具的使用,这次咱们来亲自来对文中提到的jmap和jstat工具进行实践,如下: 对于JDK自带的工具其实主要是分为两 阅读全文

posted @ 2019-04-07 22:31 cexo 阅读(2117) 评论(0) 推荐(0) 编辑

JVM元空间深度解析
摘要:回顾一下上一次对于这次做的实验的一个背景说明: 这里将借助cglib这个库来完成动态类的创建,为啥要使用它?因为使用简单,二是在程序运行期可以动态的生成类,动态生成类之后生成类的元数据就会落入到元空间当中,这样我们就可以不断来增加类的生成从而来增加元空间元数据的增加,另外在上一次说过元空间默认的大小 阅读全文

posted @ 2019-04-06 17:43 cexo 阅读(1189) 评论(2) 推荐(1) 编辑

线程死锁检测与分析工具深度解析
摘要:在上一次【https://www.cnblogs.com/webor2006/p/10652547.html】使用到了jconsole工具来检测线程的执行情况,其中这里面有一个检测死锁的功能,如下: 所以这来使用一下该功能,先来编写一个死锁的程序,要想产生死锁肯定至少得要有2个线程,其中一个线程持有 阅读全文

posted @ 2019-04-05 21:11 cexo 阅读(672) 评论(0) 推荐(1) 编辑

线程栈溢出监控与分析详解
摘要:在上一次【https://www.cnblogs.com/webor2006/p/10646305.html】编写了堆内存的溢出,也就是上一次JVM内存分布理论的这部分: 这次咱们来看另外一个区域: 它主要是被线程所使用的,存放着线程上下文的一些数据,这块空间相对堆来说是比较小的,对于栈是有可能出现 阅读全文

posted @ 2019-04-04 00:01 cexo 阅读(861) 评论(0) 推荐(0) 编辑

实战jvisualvm
摘要:在上一次【https://www.cnblogs.com/webor2006/p/10629889.html】已经编写了一个能在堆空间出现内存溢出的代码,先来回顾一下: 其中咱们给JVM配置了如下参数: 其中还设置了一个当发生内存溢出时来将内存的信息给dump出来,其实就类似于Android中来分析 阅读全文

posted @ 2019-04-02 23:56 cexo 阅读(428) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 下一页

导航