
jvm
让风继续吹丶
这个作者很懒,什么都没留下…
展开
-
JAVA Stop The World
大家有没有想过一件事情,当虚拟机完成两次标记后,便确认了可以回收的对象。但是,垃圾回收并不会阻塞我们程序的线程,他是与当前程序并发执行的。所以问题就出在这里,当GC线程标记好了一个对象的时候,此时我们程序的线程又将该对象重新加入了“关系网”中,当执行二次标记的时候,该对象也没有重写finalize()方法,因此回收的时候就会回收这个不该回收的对象。 虚拟机的解决方法就是在一...转载 2018-08-16 16:37:14 · 914 阅读 · 0 评论 -
类与类加载器、委派双亲模型
介绍 类加载器用于实现类的加载,对于任意一个类(这里的类,我理解的是class),都需要由加载它的类加载器和这个类本身一同确立在jvm中的唯一性。每一个类加载器,都拥有一个独立的类名称空间。例如两个或多个类加载器都加载了同一个类(class文件)的时候,那么在jvm中它们是"不相等"的。 这里的不相等,表现为class对象的equals()方法、isAssign...原创 2019-04-14 16:43:18 · 146 阅读 · 0 评论 -
jvm垃圾收集器介绍
serialserial特点:单线程,jvmClient模式下默认新生代收集器,简单高效,对于单个cpu环境来说,serial没有线程交互开销,效率高。ParNew特点:serial的多线程版本,许多server模式下首选新生代收集器,除了serial之外,只有它能和CMS收集器配合使用。默认开启线程与cpu数量相同,-XX:ParallelGCThreads指定线程数...原创 2019-04-14 18:11:32 · 164 阅读 · 0 评论 -
线上问题解决思路
线上问题排查1. jps -l 查看 java进程端口号2.top 查看java进程cpu使用率,监控cpu使用率是否一致在升高3. top -H -p [pid] 查看java进程中线程信息,检查那些线程cpu使用率过高,记录线程pid4. jstatk [pid] >xxx.log 查看堆栈线程信息,将堆栈信息存入日志5.线程pid为十进制,堆栈信息中的线程id...原创 2019-07-19 17:13:19 · 231 阅读 · 0 评论