美文网首页
JVM读书笔记-创建对象-03

JVM读书笔记-创建对象-03

作者: 你缺少想象力 | 来源:发表于2018-12-27 00:29 被阅读0次

文中将会出现两个人物,1.小虚,2.小象,对应现实中的虚拟机和对象

第一天

小象:小虚,我想出来做大事
小虚:哟?想出来啦?行啊,等着,我把你造出来。
小象:你要怎么把我造出来啊= =
小虚:这简单啊,加载你所在的类啊,解析然后初始化,你不就出来了吗。
小象:好!我等着
小虚:造好了,出来吧!
小象:耶!我终于可以站在内存大陆了,我要去闯荡一番!

第二天

小象:小虚,给我来几个兄弟姐妹,一起好干大事
小虚:等着,马上给你造出来
小虚:小象12345,都出来
小象:谢谢你,小虚

第三天

小象:小虚,再来几百个。。。
小虚:几百个?你要累死我啊!
小象:怎么了嘛
小虚:你是站着说话不腰疼,你给我造几百个试试,不累啊
小象:做这个工程人手不够嘛,大工程哟!
小虚:去你的大工程,我还是想想怎么快速建造吧
小象:等你好消息!

第四天

小象:怎么样,小虚,有进展吗
小虚:你还真别说,有!
小象:可以啊!打算怎么做?
小虚:我完全可以在创建之前判断一下你们家族是否已经被加载初始化过了啊,如果已经被初始化了,我直接创建不就完了吗?还费那功夫每次创建都要加载初始化。
小象:是啊,每次花那功夫加载初始化干嘛,如果需要加载再加载,不需要就直接创建啊
小虚:嗯,这样一来,速度就快多了
小象:再给我来几千个兄弟
小虚:你!

第五天

小象:小虚,兄弟太多了,乱糟糟的,内存大陆看着乱七八糟的,你是按什么规则规定我的兄弟都在内存大陆的那一块的啊
小虚:(冷汗)
小象:怎么了,小虚,你怎么出汗了啊
小虚:既然被你问到这个问题了,那我就告诉你吧。
小象:你说
小虚:其实,我有两个方案。第一,一个一个排着队站在内存大陆的空白区域,第二,第二。。。
小象:第二什么你说啊
小虚:(咽了咽口水)你也知道内存大陆乱糟糟的,大家都站在各种地方,你有些兄弟体格又大,有些时候空间站不下,我就把你的兄弟拆开了,手放这里,脚放那里。
小象:什么!什么!什么!你对我兄弟下毒手,亏你做得出来!
小虚:消消气嘛,内存大陆本来就小,我只好合理利用大陆面积了啊,你们如果被挤出大陆,那会发生灾难的啊,难道你忘了吗
小象:灾难?什么灾难?
小虚:算了,说了你也不知道,而且下次灾难发生后,你就会把我忘得一干二净。
小象:神神叨叨的,不知道你在说什么,话说我的兄弟没事吧
小虚:没事,他们手脚在什么地方我都记录着的呢,丢不了,而且可以正常工作。
小象:那我就放心了

第六天

小象:小虚,为什么我的兄弟莫名其妙消失了
小虚:消失?什么情况
小象:我明明看到这块地皮已经被我兄弟认领了,但是居然出现的其他人,这是为何
小虚:你有所不知,出现了两个制造机抢一块地皮的现象
小象:那是什么现象
小虚:说白了就是出现了线程安全,CPU大佬没有顾过来
小象:听不懂,你就说怎么解决吧。我以为那里是我兄弟,走过去差点吓死我!
小虚:你不用紧张,最近大陆出了新政策,让每个线程都预先留一块地,现在自己的地方创建对象,如果自己的地方满了,就分配一块新的地方,这个地方叫做本地线程分配缓冲(TLAB Thread local Allocation Buffer)
小象:分配新地方出现了你说的那个线程安全问题怎么办,那不是更大一块地方吗
小虚:你说的没错,所以会加上同步锁,保证这项操作的原子性
小象:那还不错嘛
小虚:对啊

第七天

小象:我要走了,小虚,下次见
小虚:嘀咕(下次你就不认识我了)
小象:嘀咕什么呢
小虚:没什么,下次见
小象:掰掰
小虚:拜拜

相关文章

  • JVM读书笔记-创建对象-03

    文中将会出现两个人物,1.小虚,2.小象,对应现实中的虚拟机和对象 第一天 小象:小虚,我想出来做大事小虚:哟?想...

  • JVM对象创建过程-备忘录

    JVM创建对象实例流程

  • 4.JVM体系-对象的创建

    一、JVM体系-对象的创建 问题:JVM在方法的调用过程中,是怎样创建对象的? 1.对象在堆中如何创建: 3.1 ...

  • JVM-对象内存布局

    jvm-对象内存布局 对象内存结构概述 对象的创建过程: jvm将对象所在的class文件加载到方法区中 jvm读...

  • JVM(八):Java 对象模型

    JVM(八):Java 对象模型 本文将学习对象是如何创建的,对象的内存布局,以及如何定位访问一个对象。 对象创建...

  • Java String 文字(Literal)和 对象(Obje

    当我们创建 String 对象的时候,如果使用new()的方式来创建一个 String 对象,JVM 将会每次都会...

  • JVM中对象的生命周期

    JVM运行空间中,对象的整个生命周期大致分为7个阶段: 1.创建阶段 1.1 对象的创建过程: 1)对象分...

  • 【问答】补充

    Java JVM如何管理内存的? Java中内存管理是JVM自动进行的,创建对象或者变量时JVM会自动分配内存,当...

  • JVM常见面试题

    简单介绍下JVM运行时数据区 简单介绍下JVM常见异常 程序计数器 讲一讲方法区 JVM中对象的创建过程 对象的访...

  • JVM-JMM

    JMM(jvm内存模型) by shihang.mai 对象的内存布局 对象的创建过程class loading-...

网友评论

      本文标题:JVM读书笔记-创建对象-03

      本文链接:https://www.haomeiwen.com/subject/fydllqtx.html