JVM
十一月上
ののののののののの
展开
-
JVM运行时数据区域划分
运行时数据区包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区以及方法区中的运行时常量池程序计数器: 线程私有,是当前线程所执行的字节码的行号指示器,如果线程正执行一个java方法,计数器记录正在执行的虚拟机字节码指令的地址,如果线程正在执行的是Native方法,则计数器值为空;虚拟机栈: 即栈区,线程私有,为虚拟机执行Java方法(字节码)服务,每个方法在执行的时会创建一...原创 2018-03-22 16:03:47 · 220 阅读 · 0 评论 -
Java垃圾回收算法
Java语言相对于其他语言最大的一个特点就是引入了垃圾回收机制,这样程序员在编写程序的时候不用再考虑申请或者释放内存,极大的增加了开发者的开发效率。虽然垃圾回收是由JVM虚拟机负责完成的,但了解虚拟机的垃圾回收算法有利于编写更高效的代码。一、如何判断一个对象是否应该被回收1. 引用计数法(Reference Counting)引用计数是垃圾收集器中的早期策略,在这种方法中,堆中...原创 2018-03-28 21:42:51 · 216 阅读 · 0 评论 -
对象何时进入老生代
内存分配策略对象的内存分配其实就是在堆上分配,那么细分呢,什么时候在新生代什么时候在老生代都是需要了解的问题。这些问题与虚拟机垃圾回收器有关,但是大多数情况下,对象优先在新生代的Eden区上分配空间,但是也有直接在老生代分配内存的情况。1 对象优先在Eden区分配内存如果Eden区的空间足够大,那么就将新创建的对象放在Eden区,如果Eden区剩余空间不足以放置新的对象了,则会触发一次...原创 2018-07-26 13:37:50 · 1528 阅读 · 0 评论