2019年7月21日
摘要: jps的功能和ps命令相似:可列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID),类似于 ps -ef | grep java 执行jps 阅读全文
posted @ 2019-07-21 23:49 城序猿 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 1、对象优先在Eden区分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。 2、大对象直接进入老年代 所谓的大对象是指,需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串以及数组(例如:new byte[2*10 阅读全文
posted @ 2019-07-21 17:27 城序猿 阅读(378) 评论(0) 推荐(0) 编辑
摘要: -XX:+PrintCommandLineFlags 打印出JVM运行时的各种的各项配置参数 -verbose:gc 发生GC时,打印出GC日志-XX:+printGC 发生GC时,打印出GC日志 -XX:+PrintGCDetails 打印GC的详细日志,并且在程序运行结束是会打印出JVM的内存占 阅读全文
posted @ 2019-07-21 14:26 城序猿 阅读(1697) 评论(0) 推荐(0) 编辑
摘要: Parallel Scavenge(Paraller):Parallel Scavenge和ParNew关注的点不一样:ParNew关注的是尽可能缩短暂停的时间,Parallel Scavenge关注的是吞吐量吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集时间)举个例子:虚拟机运行100 阅读全文
posted @ 2019-07-21 11:47 城序猿 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 参考博客:https://www.cnblogs.com/xdecode/p/8948277.html 内存模型:每一个线程有一个工作内存和主存独立,工作内存存放主存中变量的值的拷贝 当数据从主内存复制到工作存储时,必须出现两个动作:第一,由主内存执行的读(read)操作;第二,由工作内存执行的相应 阅读全文
posted @ 2019-07-21 09:55 城序猿 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1.标记清除算法 黑色部分代表可回收对象,灰色部分代表存活对象,绿色部分代表未使用的。最基础的收集算法就是标记清除算法如同他名字一样,算法分为"标记"和"清除"两个阶段:首先标记出所有需要回收的对象,在标记完成后同一回收所有被标记的对象,标记的过程就是我们之前讲过的可达性分析算法。当需要回收时,我们 阅读全文
posted @ 2019-07-21 02:20 城序猿 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 垃圾对象的判定有两种 引用计数法 和可达性分析。 引用计数器:实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。 但是存在的问题:引用和去引用伴随加法和减法,影响性能,很难处理循环 阅读全文
posted @ 2019-07-21 00:47 城序猿 阅读(243) 评论(0) 推荐(0) 编辑