GC回收算法--当女友跟你提分手! Java语言引入了垃圾回收机制,让C++语言中令人头疼的内存管理问题迎刃而解,使得我们Java狗每天开开心心地创建对象而不用管对象死活,这些都是Java的垃圾回收机制带来的好处。但是Java的垃圾回收机制的核心原理是什么呢?今天我们来聊聊GC回收算法吧。JVM的GC回收场景很复杂,不是单个算法就可以搞定的,大致可以分为可达性分析算法、标记-清除算法、标记-整理算法、分代回收算法、复制...
浅谈JVM内存模型 JAVA虚拟机在执行JAVA程序的时候,会把它管理的内存分成若干不同的数据区域,每个区域都有各自的用途。目前大致把JVM内存模型划分为五个区域:程序计数器,虚拟机栈,本地方法栈,堆和方法区。程序计数器程序计数器(ProgramCounterRegister)是当前线程所执行的字节码的行号指示器。这句话理解起来有点拗口,打个比方,我看书看到一半的时候突然接到领导电话”XX...
假如Java对象是个人······ 假如Java对象是个人,那意味着它也具备了我们人所有的东西,头,身体,大长腿。头头就是我们的对象头(Header)。根据JAVA虚拟机规范,我们的对象头分为两部分,分别是存储对象自身的运行时数据和存储类型指针。存储对象自身的运行时数据这部分数据有HashCode、GC分代年龄、对象锁信息等。数据长度在32位和64位的虚拟机中分别为32bit和64bit,官方称它为Mark...