Java虚拟机内存
chenguiwen95
入职小白
展开
-
Java虚拟机内存分配
Java虚拟机的内存分配方式原创 2017-08-31 19:45:16 · 445 阅读 · 0 评论 -
Java中的引用及分类
引用Java中最初的引用是指存储了一个代表另一块内存起始地址数值的reference类型的数据,但是随着Java的发展,这种定义对于引用显得过于狭隘。 在java的发展过程中,引用得到了扩展,到目前为止,引用可以分为强引用、软引用、弱引用、虚引用四种,这四种引用方式的引用强度依次减弱。 强引用原创 2017-09-23 18:55:54 · 362 阅读 · 0 评论 -
Java虚拟机中对象的内存布局及访问定位
对象的内存布局对象在内存中存储的布局可以分为三部分:对象头、实例数据、对齐填充。 对象头 对象头包括两块信息。 对象头第一部分存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。这些数据官方称谓为“Mark Word”。这部分数据受虚拟机位数的影响,在32位虚拟机中大小是32bit,在64位虚拟机中大小是64bit。 对象头的另一部分是原创 2017-09-06 13:43:46 · 284 阅读 · 0 评论 -
Java内存区域
java虚拟机内存区域大致可以分为方法区、java堆;java虚拟机栈、本地方法栈和程序计数器五部分 在上述的五部分中,方法区和java堆是所有线程共享的,而虚拟机栈、本地方法栈和程序计数器是线程隔离的,每个线程产生一个独立的区域 方法区 java堆 程序计数器 虚拟机栈 本地方法栈原创 2017-08-24 19:08:04 · 267 阅读 · 0 评论 -
如何判定对象已死可以回收内存
Java虚拟机垃圾回收针对的是java堆和方法区内的内存,因为这部分内存不会随着方法的结束而释放,而且堆中会有多少内存被占用也只有在程序运行过程中才会确定。 如何确定对象已经不再使用可以回收? 引用计数算法 给对象添加一个引用计数器,每当有一个地方使用它的时候,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器值为0的对象就是不可能再被使用的。当该对象所占据的内存引用为0之后,虚原创 2017-09-13 18:30:31 · 250 阅读 · 0 评论