hotspot中的OO对象,涉及到类的加载、gc等,相当复杂。
class oopDesc是基类。为Object header
class oopDesc {
friend class VMStructs;
private:
volatile markOop _mark;
union _metadata {
wideKlassOop _klass;
narrowOop _compressed_klass;
} _metadata;
...
}
由上面可以看出对象由下面3部分组成。
1、Mark Word
2、Class Metadata Address
3、Array Length,一些具体的内容,象常量池里面的值等。
mark work具体内容如下
Bitfields Tag State
Hashcode Age 0 01 Unlocked
Lock record address 00 Light-weight locked
Monitor address 10 Heavy-weight locked
Forwarding address, etc. 11 Marked for GC
Thread ID Age 1 01 Biased / biasable
在此关注两个类的实现
klassKlass、klassOop
在hotspot里面经常看到象这样的用法
klassOop next = ...
next->klass_part()->...
这样的用法
typedef class klassOopDesc* klassOop;
由上面可知klassOop其实是一个指针。
Klass* klassOopDesc::klass_part() {
return (Klass*)((address)this + klass_part_offset_in_bytes());
}
int klassOopDesc::klass_part_offset_in_bytes(){
return sizeof(klassOopDesc);
}
因为klassOopDesc没有成员变量,所以klass_part() 也就是说在某个继承klassOopDesc的对象,在它的this指针往后固定字节(sizeof(klassOopDesc))就是Klass对象。由这推想,java里面的每个对象应该是某个klass的子类,jvm在分配内存时候,会分配一个Object header,也就是sizeof(klassOopDesc)的部分。
上面的推想可以在instanceKlassKlass::create_klass里面得到证实。create_klass最调用了Klass_vtbl::operator new(size_t ignored, KlassHandle& klass,int size, TRAPS),上面的size就是
oopDesc::header_size() + sizeof(instanceKlassKlass)/HeapWordSize就包括了Object header (oopDesc::header_size() )。
分享到:
相关推荐
本书深入浅出地讲解了 HotSpot 虚拟机的工作原理,将隐藏在它内部的本质内容逐一呈现在读者面前,包 括 OpenJDK 与 HotSpot 项目、编译和调试 HotSpot 的方法、HotSpot 内核结构、Launcher、OOP-Klass 对象表 示系统...
资源描述: 1.HotSpot虚拟机对象探秘-xmind脑图pdf 2.资源内容:HotSpot虚拟机对象探秘 3.学习目标:了解jvm底层原理 4.特点:简单易懂,容易上手 5.使用说明:需要使用pdf打开
包括OpenJDK与HotSpot项目、编译和调试HotSpot的方法、HotSpot内核结构、Launcher、OOP-Klass对象表示系统、链接、运行时数据区、方法区、常量池和常量池Cache、Perf Data、Crash分析方法、转储分析方法、垃圾收集器...
hotspot关联规则的Java实现,参考weka的相关源码,可用于离散型和连续型数据处理,分析过程参考《HotSpot关联规则算法(2)-- 挖掘连续型和离散型数据》
jdk1.8。hotspot java jdk java开发工具。
官方完整版JVM源码Hotspot VM,文件名hotspot.tar.gz。官方完整版JVM源码Hotspot VM,文件名hotspot.tar.gz。
HotSpot实战详解,完美分析
RouterOS5.x配置Hotspot认证实现UserManager中文认证管理归类.pdf
hotspot实战
HotSpot实战.pdf
JDK7底层C++源码及hotspot虚拟机源码
jdk8u-hotspot
深入解析hotspot实战!内容比较翔实、精辟,值得收藏!
hotspot 认证自适应模板
HOTSPOT模板,简约型,有需要的可下载使用。
hotspot源码