沧州三亚菏泽经济预测自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

Java对象背后的故事(中)

9月21日 老巫婆投稿
  在上篇文章中介绍一个对象的组成部分主要分为三部分。对象头、实例数据、填充对齐。实例数据。这里我们就继续分析这三部分中具体的组成情况。
  为了证实一个对象存在这3个部分。这里使用JOL(Javaobjectlayout是分析JVM中对象布局的工具,该工具大量使用了Unsafe、JVMTI来解码布局情况)来分析。这里使用0。16版本。目前市面的电脑绝大多数多是64位操作系统,这里也基于64位操作系统来展开讲解,32位的大家知道就可以了。本人电脑操作系统MacOSMonterey12。2。1。dependencygroupIdorg。openjdk。jolgroupIdjolcoreartifactIdversion0。16versiondependency
  Hotspot虚拟机文档oopsoop。hp有对Markword字段的定义Bitformatofanobjectheader(mostsignificantfirst,bigendianlayoutbelow):32bits:hash:25age:4biasedlock:1lock:2(normalobject)JavaThread:23epoch:2age:4biasedlock:1lock:2(biasedobject)size:32(CMSfreeblock)PromotedObject:29promobits:3(CMSpromotedobject)64bits:unused:25hash:31unused:1age:4biasedlock:1lock:2(normalobject)JavaThread:54epoch:2unused:1age:4biasedlock:1lock:2(biasedobject)PromotedObject:61promobits:3(CMSpromotedobject)size:64(CMSfreeblock)unused:25hash:31cmsfree:1age:4biasedlock:1lock:2(COOPsnormalobject)JavaThread:54epoch:2cmsfree:1age:4biasedlock:1lock:2(COOPsbiasedobject)narrowOop:32unused:24cmsfree:1unused:4promobits:3(COOPsCMSpromotedobject)unused:21size:35cmsfree:1unused:7(COOPsCMSfreeblock)
  理论上一个空对象的大小为对象头大小12字节(Markword8字节、classpointer4字节),考虑到8字节对齐填充,需要补齐4字节为8的2倍16字节。
  我们来new一个空对象publicclassAnalysisObject{}
  使用JOL分析AnalysisObject对象信息publicstaticvoidmain(String〔〕args){AnalysisObjectobjectnewAnalysisObject();System。out。println(ClassLayout。parseInstance(object)。toPrintable());}
  输出结果信息com。github。sylphlike。web。AnalysisObjectobjectinternals:OFFSZTYPEDESCRIPTIONVALUE08(objectheader:mark)0x000000000000000d(age:1)84(objectheader:class)0x00066a48124(objectalignmentgap)Instancesize:16bytesSpacelosses:0bytesinternal4bytesexternal4bytestotal
  表头依次为OFF:在内存中的起始位置SZ:占用大小(字节)TYPEDESCRIPTION:类型VALUE:具体值
  (objectheader:mark)对应MarkWord,占用大小8byte
  (objectheader:class)对应classpointer占用大小4byte
  (objectalignmentgap)对应Padding占用大小为4
  Instancesize对象占用的总字节数大小
  Spacelosses对应对齐填充大小
  接下来我们给对象添加一下属性方法。publicclassAnalysisObject{privateSprivateIpublicvoidmethod(){}}
  输出结果信息com。github。sylphlike。web。AnalysisObjectobjectinternals:OFFSZTYPEDESCRIPTIONVALUE08(objectheader:mark)0x000000000000000d(age:1)84(objectheader:class)0x00066a48124intAnalysisObject。i0168doubleAnalysisObject。d0。0241booleanAnalysisObject。bfalse253(alignmentpaddinggap)284java。lang。StringAnalysisObject。snull324java。lang。IntegerAnalysisObject。innull364(objectalignmentgap)Instancesize:40bytesSpacelosses:3bytesinternal4bytesexternal7bytestotal
  从结果中看出对象占用40字节大小。Instancesize:40bytes。一共5个属性,一个方法。int占4字节、boolean占1字节、double占8字节、Integer和String为引用类型所以占4字节。
  从上面结果中我们还发现有两种填充方式3bytesinternal和4bytesexternal。为什么存在两种填充方式?这里先给出结论。后面再探讨该问题;出现(alignmentpaddinggap)有以下两种情况
  1、如果都是基本数据类型,只有当不存在4字节的,或者小字节加起来填不满4字节,且所有字节和大于4的时候触发alignmentpadding
  2、如果实例数据存在非基本数据类型,也就是引用数据类型,先罗列并计算所有的基本类型数据的字节和,如果字节和不是4的倍数,那么此时会触发alignmentpadding。
  Markword中存放的数据在对象的整个生命周期内都是非常关键的,放在后后一篇文章中单独来阐述。
投诉 评论

炖鸡汤,记住加2步放3样,炖好后鸡汤鲜香无腥,浓郁好喝导语:炖鸡汤,记住加2步放3样,炖好后鸡汤鲜香无腥,浓郁好喝天气越来越冷了,已经进入二九天,冻得人瑟瑟发抖,如果没有穿暖和,特别容易着凉生病,即使没着凉,也会把皮肤冻伤,……慢下来,享受一段轻松愉快的旅程昨天跟着网上的攻略去走盐田海滨栈道,原本的路线是打算从海鲜街出来,到大梅沙海滨栈道,然后再到小梅沙栈道,最后走到背仔角那里看日落,这也是网上说的最好玩的路线之一。但是网上……人间清醒赵丽颖赵丽颖有一个绰号叫拼命三娘,别看她看起来像个颖宝,实际上的她是个铁娘子,一直都是一个很有主见,又特别清醒的人。赵丽颖出生于河北廊坊市近郊,从小在田地里摸爬滚打,因为家里穷……iPhone14Plus开箱体验,优缺点解析,它更适合这三类上一次看到Plus机型,还是2017年的iPhone8Plus,五年的时间过去了,苹果又重新回顾了这一条产品线,只不过砍掉了原来的mini版本。iPhone14Plus好用吗?……Java对象背后的故事(中)在上篇文章中介绍一个对象的组成部分主要分为三部分。对象头、实例数据、填充对齐。实例数据。这里我们就继续分析这三部分中具体的组成情况。为了证实一个对象存在这3个部分。这里使……卡萨不想再跟ROOKIE当队友?姿态直播暗示V5管理层已经抛前言在LPL联赛当中,各个战队之间的竞争压力非常巨大,所以在比赛当中,经常会出现爆冷的情况,最近就发生了排名垫底的OMG战队爆虐了V5战队的场面,这场比赛的结果,也让很多……有关曲速航行的科学研究曲速引擎,需要一种奇异物质来实现1905年爱因斯坦发表了一篇名为《论动体的电动力学》的论文,也就是我们所说的狭义相对论的开山之作论动体的电动力学狭义相对论让我们知道宇宙存在着一种速度上的限制,就是……拿球说话!维尼修斯打进个人10次马德里德比首个进球皇马31逆转马竞晋级国王杯半决赛,维尼修斯最后时刻打进锁定胜局的进球,这也维尼修斯10次遭遇马竞以来,第一次在马德里德比进球。不过值得一提的是,维尼修斯2018年加盟皇马……李嘉欣急病入院!在ICU抢救48小时捡回一条命,身上插管模样饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!1月15日,知名演员李嘉欣在社交平台上晒出自己身处病房的照片,并配文这48小时在加护病房,捡回一条命,衷心感谢……车神驾到,史上F1十大车手的竞速传奇,YYDS世界一级方程式锦标赛(FIAFormula1WorldChampionship,简称F1),是国际汽车运动联合会(FIA)举办的最高等级的年度系列场地赛车比赛,是当今世界最高水……钠离子电池材料行业研究普鲁士蓝类正极材料未来可期(报告出品方作者:国海证券,李永磊、董伯骏、刘学)钠离子电池:多种应用场景驱动产业化加速钠离子电池工作原理与锂电池类似和锂电池相似,钠离子电池是一种摇椅式二次电池。……全新海堡坚不可摧,海盗游戏ATLAS玩家暴怒直呼大炮打不动在现实世界中,依旧遗留着不少大航海时代留下的各种西方城堡,不少小岛上还有用于军事作用的海堡,在现如今都成为了著名的景点。国庆节期间,不少朋友的旅游照中,总有一两个是城堡造型的,……
暗物质探索者悟空号科学史小画编者按:中科院之声不定期手绘一张科学史小画,为大家介绍一段科学史和其背后的故事。暗物质作为一种人类无法用正常途径观测到的宇宙粒子,也是一种颠覆认知但确实存在的物质,其很有……3500元左右买什么手机这三款配置丰富性能媲美旗舰机颜值也不9月了,你买到心仪的手机了吗?预算多少呢?如果你预算3500元左右,今天我就推荐你三款配置丰富性能媲美旗舰机,当然颜值也不落下,看看你喜欢哪款?努比亚Z40SPro努比亚……秋天小西装怎么搭配种打造完美衣橱小西装外套是人手必备的扮靓利器,不管是出席商务场合还是和闺蜜出街,休闲小西装总能搭出不一样的时髦style,下面就一起来看看时髦潮人们都是如何玩转小西装的吧。STYLE1……内部系统也需要用户体验设计几天前,想把上个月校园招聘的餐旅费报销一下。结果在公司内网的报销系统折腾了三个半小时才搞定。看看自己报销的金额:802块。觉得挺无奈,花了三个多小时的工作时间,竟然为了报销80……恒大汽车被曝变相裁员再传苹果AR头显或将发布依据爆料,恒大恒驰新能源员工停工留职,自即日起迎来了横跨整个春节的超长假期,累计有90天之久。1、国美电器回应被申请破产清算:未收到法律文件、会负责任12月1日消息,国美……国足为何惨败越南?李霄鹏说是战术和情绪,但根源恐怕在归化球员13输给越南,还是在补时阶段才追回一球,国足的表现让人诧异:他们难道这么差了吗?完败给日本也就罢了,在越南面前都被打得没有还手之力?从赛前的言论来看,国足上下其实很有信心……安全帽都有什么材质的劳动防护用品对于保护职工在生产劳动过程中的安全健康发挥着重要作用。那么,安全帽都有什么材质的那?就让本站的小编和你一起去了解一下吧!安全帽常用材料:生产安全帽的材料……罗马元老院与人民讲的什么罗马元老院与人民书评《罗马元老院与人民》一直是近年来最畅销的史书之一。作者通过考古学、钱币学等多个领域的研究,为读者打造了一部更加有趣、生动的罗马通史。相信喜欢历史的朋友,肯定会对古罗马抱有兴趣,……肾炎有五大早期症状1、血尿:部分患者会出现肉眼可见的红色尿液,也有部分患者在进行尿常规检查时,会发现尿液中有红细胞。2、蛋白尿:患者在排尿时会发现尿液中存在很多细小泡沫,这些泡沫并不会在排……浅析电商购物流程设计畅游在各大电商网站的你,在网购时不知曾否察觉到有些小不同?排开具体的商品内容、视觉样式,回忆下那些我们熟悉的商品页面当然,这里并不是玩大家来找茬游戏的,需要火眼金睛审视于……隐藏于女人的经济奥秘一年以来,人们耳边每天听到最多的词就是金融风暴、经济危机,但是经济形势到底怎么样,我们的生活究竟有没有受影响?回答这些问题似乎都是专家的事,普通老百姓大多数连GDP、CPl是什……洛杉矶新能源计划和或将被迫更换电动汽车【智车派新闻】2019年11月,洛杉矶的清洁技术倡导组织发布了2028年零排放路线图2。0。当时,洛杉矶市长埃里克加西蒂(EricGarcetti)也呼吁到2028年将空气污染……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找