Fork me on GitHub
摘要: 一、6种状态 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行 阅读全文
posted @ 2019-09-24 22:26 xbwang520 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 概述 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。 数据包括:运行日志、异常堆栈、GC 日志、线程快照。 使用(threaddump/javacore文件)、堆转储快照( heapdump/hprof文件)等。使用适当的虚拟机监控和分析的工具可以加快我们 阅读全文
posted @ 2019-09-24 17:50 xbwang520 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们对各个收集器进行比较,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。试想一下:如果有一种四海之内、任何场景 阅读全文
posted @ 2019-09-24 00:46 xbwang520 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 经过上篇如何判断对象是否死亡,那么jvm要对死亡的对象进行垃圾回收,垃圾回收的算法主要有以下几种: 一、标记-清楚算法 该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带 阅读全文
posted @ 2019-09-24 00:02 xbwang520 阅读(185) 评论(0) 推荐(0) 编辑