摘要: ①jps:虚拟机进程状况工具 功能:列出正在运行的虚拟机进程,并显示1、虚拟机执行主类名称以及2、这些进程的本地虚拟机唯一ID(LVMID)。 使用频率最高的JDK命令行工具,其他的JDK工具大多需要输入它查询到的LVMID来确定监控的是哪一个虚拟机进程。 对于本地虚拟机进程来说,LVMID与操作系 阅读全文
posted @ 2017-07-23 17:26 竹马今安在 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 如何去给对象分配内存?大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地在栈上分配) ①对象优先在Eden分配 大多数条件下,对象在Eden中分配,当Eden内存不够的时候,虚拟机将发起一次Minor GC。 java堆占10MB,Eden占8MB,创建前三个对象在Eden中 阅读全文
posted @ 2017-07-23 10:52 竹马今安在 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也非常快 老年代GC(Major GC/Full GC):指发生在老年代的GC,出现了Major GC ,经常会伴随至少一次的Minor GC(但并非绝对 阅读全文
posted @ 2017-07-23 09:23 竹马今安在 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1,Java 关键字列表 (依字母排序 共50组): abstract, assert, boolean, break, byte, case, catch, char, class, const(保留关键字), continue, default, do, double, else, enum, 阅读全文
posted @ 2017-07-22 20:59 竹马今安在 阅读(368) 评论(0) 推荐(0) 编辑
摘要: JVM的GC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形 阅读全文
posted @ 2017-07-22 19:38 竹马今安在 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 概述 JVM有两种运行模式Server与Client。两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。这是因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;而 阅读全文
posted @ 2017-07-22 16:38 竹马今安在 阅读(20634) 评论(2) 推荐(4) 编辑
摘要: (A)、图中展示了7种不同分代的收集器: Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1; (B)、而它们所处区域,则表明其是属于新生代收集器还是老年代收集器: 新生代收集器:Serial、ParNew、Parallel 阅读全文
posted @ 2017-07-22 16:32 竹马今安在 阅读(1172) 评论(0) 推荐(0) 编辑
摘要: ①枚举根节点 可达性分析中,查找引用链这个操作,可作为GC Roots的节点主要在全局性的引用中(例如常量和静态属性)和执行上下文(例如栈帧中的本地变量表)中,现在很多应用本地方法区就有数百找,要一个个查引用的话,太费时间,另外,可达性分析对时间的敏感性还体现在GC停顿上,因为这项分析工作必须在一个 阅读全文
posted @ 2017-07-21 16:26 竹马今安在 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话, 阅读全文
posted @ 2017-07-21 16:19 竹马今安在 阅读(159) 评论(0) 推荐(0) 编辑
摘要: ① 标记-清除算法 最基础的收集算法分为“标记”和“清除”两个阶段;首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。也就是在判断对象生存还是死亡用到的算法 不足:一是效率不高,而是标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导致以后再程序运行过程中需要分配较大对象时, 阅读全文
posted @ 2017-07-21 16:13 竹马今安在 阅读(108) 评论(0) 推荐(0) 编辑