Jvm
文章平均质量分 85
jvm
NeilNiu
日拱一卒无有尽,功不唐捐终入海!
展开
-
GC-Roots、对象间的引用级别、分代垃圾回收
一、GC-Roots 对象主要是在堆上分配的,我们可以把它想象成一个池子,对象不停地创建,后台的垃圾回收进程不断地清理不再使用的对象。当内存回收的速度,赶不上对象创建的速度,这个对象池子就会产生溢出,也就是我们常说的 OOM。 把不再使用的对象及时地从堆空间清理出去,是避免 OOM 有效的方法。那 JVM 是如何判断哪些对象应该被清理,哪些对象需要被继续使用呢? 这里首先强调一个概念,这对理解垃圾回收的过程非常有帮助 垃圾回收,并不是找到不再使用的对象,然后将这些对象清除掉。它的过程正好相反,JVM 会找到原创 2021-01-24 21:08:09 · 302 阅读 · 0 评论 -
五、JDK命令行工具jps、jstat、jmap、jstack、jhat、jinfo
一、jps,查看虚拟机进程的命令 参数说明 -q:只输出进程 ID -m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数 二、jstat,查看虚拟机统计信息监视命令 jstat -gcutil 进程id 多少毫秒查询一次 共查询多少次 ,查看垃圾收集的状况,例如下图,进程号10066 ,1000毫秒查询一次...原创 2019-01-03 09:43:32 · 718 阅读 · 0 评论 -
四、理解GC日志、内存分配与回收策略
33.125:[GC [DefNew:3324K->152K(3712K),0.0025925secs]3324K->152K(11904K),0.0031680 secs] 100.667:[FullGC [Tenured:0K->210K(10240K),0.0149142secs]4603K->210K(19456K),[Perm:2999K->2999K(21248K)],0.0150...原创 2018-12-25 13:12:46 · 289 阅读 · 0 评论 -
三、垃圾收集器类型
收集算法是内存回收的方法论,那么垃圾回收器是内存回收的具体实现。本次讨论的收集器基于JDK1.7之后的HotSpot虚拟机。 在谈垃圾收集器的上下文语境中,它们可以解释如下。 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程和垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾...原创 2018-12-06 09:11:45 · 327 阅读 · 4 评论 -
二、垃圾回收算法与思想
主要的垃圾回收算法 一、引用计数器 引用计数器实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1。当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0。则对象A就不可能再被使用了。只要为每个对象配备一个整型的计数器即可。但是计数器有个一个严重的问题,即无法处理循环引用的情况。因此在java的垃圾回收器中,没有使用这个算法。 二、标记-清除算法 标记-清...原创 2018-11-27 13:15:34 · 172 阅读 · 2 评论 -
一、java虚拟机内存模型
一、java虚拟机内存模型是java程序运行的基础,为了能使java应用程序正常运行,JVM虚拟机将其内存分为程序计数器、虚拟机栈、本地方法栈、java堆和方法区。 程序计数器用于存放下一条运行的指令; 虚拟机栈和本地方法栈用于存放函数调用堆栈信息; java堆用于存放java程序运行时所需的对象; 方法区用于存放程序的类元数据信息。 1、程序计数器,是一块很小的内存空间。由于jav...原创 2018-11-20 09:09:54 · 429 阅读 · 2 评论