jvm
丶随意
问君何所有,烤串喝啤酒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jvm内存管理
摘抄总结自:《深入理解java虚拟机》java虚拟机运行时管理的内存包括以下数据区域:程序计数器 线程私有 字节码解释器通过改变此值确定要执行的下一条字节码指令。 多线程情景下,用于线程恢复后能回到原来的位置。java虚拟机栈 线程私有 生命周期和线程相同 每个方法执行的同时创建一个桟帧,用于存储局部变量表,操作数桟,动态转载 2018-01-01 18:59:09 · 177 阅读 · 0 评论 -
jvm中的对象
对象的创建1 类加载 当虚拟机遇到一条new指令时,先根据这条指令的参数检查常量池中是否有这个类的符号引用,并检查这个类是否被加载,解析和初始化过。如果没有,则先进行类加载过程 符号引用:在编译时,java类并不知道所引用的类的实际地址,因此只能使用符号引用来代替2 分配内存。 内存的大小在类加载之后便可以确定。此时会有两种情况:1内存规整。即,用过的在原创 2018-01-25 22:42:34 · 188 阅读 · 0 评论 -
java对象的引用类型
1强引用例如:Object obj = new Object();此类只要引用还在,永远不会被回收2软引用在内存溢出之前,会把这软引用指向的对象加入回收之中,如果回收之后还没有足够的内存,则回收对象3弱引用软引用只想的对象只能生存到下一次回收之前,回收时不论内存最后是否溢出,都会被回收4虚引用虚引用对于对象的生存周期无影响,只在对象被回收时,会收到通知摘抄总原创 2018-02-04 23:50:17 · 318 阅读 · 0 评论 -
jvm对象的内存分布
对象的内存分布分为3部分:对象头,实例数据,对齐填充1 对象头 对象头包括两部分:一部分是用于存储对象自身的运行时数据,官方叫做mark word。mark word中的数据包括:哈希码,GC分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳等。 另一部分是类型指针,虚拟机通过这个指针确定这个对象是哪个类的实例。如果对象是java数组,对象头必须有记录数组长度的数原创 2018-01-29 00:47:26 · 513 阅读 · 0 评论
分享