六、垃圾收集器 收集算法是内存回收的方法论,而 垃圾收集器就是内存回收的具体实现 。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。 2018-11-08 JVM #JAVA #JVM
五、HotSpot的算法实现 枚举根节点以可达性分析中从GC Roots节点找引用链这个操作为例, 可作为GC Roots的节点主要在全局性的引用(如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。 另外,可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行——这里“一致性”的意思是指在 2018-11-08 JVM #JAVA #JVM
三、垃圾收集器与内存分配策略 在Java各内存区域中,程序计数器、虚拟机栈、本地方法区3个区域随线程而生,随线程而灭,这几个区域的内存分配和垃圾回收都具有确定性,这几个区域内就不需要过多的考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。我们只需要考虑Java堆和方法区中的内存即可。 2018-11-07 JVM #JAVA #JVM
一、Java内存区域与内存溢出异常 Java虚拟机自动内存管理机制,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄露和内存溢出的问题,由虚拟机管理着一切。 2018-11-07 JVM #JAVA #JVM