
JVM
文章平均质量分 85
_初六
这个作者很懒,什么都没留下…
展开
-
JVM初体验:内存溢出场景模拟 + Eclipse Memory Analysis的安装和使用
JVM初体验:内存溢出场景模拟 + Eclipse Memory Analysis的安装和使用public class Demo {}import java.util.ArrayList;import java.util.List;/* * 模拟内存溢出 */public class Main { public static void main(String[] args) {...原创 2018-04-18 15:07:40 · 1531 阅读 · 0 评论 -
JVM再体验:JVM可视化监控工具
JVM再体验:JVM可视化监控工具jdk -->bin里有在cmd中输入:jconsole就启动了这个程序实际的代码是在lib-->tools.jar里jps:选本地进程,点进去可以看到测试:import java.util.ArrayList;import java.util.List;import javax.swing.Box.Filler;public class...原创 2018-04-18 22:32:23 · 5312 阅读 · 0 评论 -
内存分配策略
内存分配策略:1.对象优先在Eden分配2.大对象直接进入老年代3.长期存活的对象将进入老年代4.动态对象年龄判定5.空间分配担保一、对象优先在Eden分配测试一:public class Main { public static void main(String[] args) { byte[] b1 = new byte[4*1024*1024]; }}-verbose:gc -XX...原创 2018-04-23 19:41:07 · 2476 阅读 · 0 评论 -
运行时常量池
私有 1.程序计数器: 是一块较小的内存空间,可以看作是记录当前线程所执行字节码的行号指示器 。每个线程拥有一个,在线程创建的时候创建,是唯一一个在jvm规范中没有规定任何OutOfMemoryError情况的区域。 执行本地方法时:值为undefined; 执行Java方法时:正在执行的虚拟机字节码指令的地址2.虚拟机栈: 描述的是Java执行的动态...原创 2018-04-19 22:24:21 · 1441 阅读 · 0 评论 -
java对象结构
对象结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构:对象头HotSpot虚拟机的对象头包括两部分信息:Mark Word 第一部分Mark Word,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持...原创 2018-04-20 11:18:53 · 1428 阅读 · 0 评论 -
面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
转载于:http://jeromecen1021.blog.163.com/blog/static/18851527120117274624888/面试题目:地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候,对什么东西,做了什么事情?一.回答:什么时候?1.系统空闲的时候。 分析:这种回答大约占30%,遇...转载 2018-04-20 15:31:15 · 1498 阅读 · 1 评论 -
java 对象存活分析——引用计数法&可达性分析
java虚拟机总共分为五个区域,其中三个是线程私有:程序计数器,虚拟机栈,本地方法栈,两个是线程共享:堆,方法区。线程私有的区域等到线程结束时(栈帧出栈时)会自动被释放,空间比较容易清理。而线程共享的java堆和方法区中的空间较大而且没有线程的回收容易产生很多垃圾信息,GC垃圾回收真正关心的就是这部分。 java堆和方法区主要存放各种类型的对象(方法区中也存储一些静态...原创 2018-04-20 17:15:40 · 2065 阅读 · 0 评论 -
Java的运行时数据存储机制
一直对Java运行时的数据存储机制不太懂,今天实践总结一下:在JAVA中,有六个不同的地方可以存储数据:1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 ------最快的存储区, 由编译器根据需求进行分配,我们在程序中...原创 2018-05-06 10:16:06 · 992 阅读 · 0 评论 -
为什么新生代内存需要有两个Survivor区
转载于:https://blog.youkuaiyun.com/antony9118/article/details/51425581在我的上一篇博客中,介绍了JVM堆内存的结构以及在堆中进行的GC机制,链接是浅谈JAVA GC机制与性能优化那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?1 为什么要有Survivor区先不去想为什么有两个Surv...转载 2019-03-21 16:25:02 · 234 阅读 · 0 评论