肥宅钓鱼网
当前位置: 首页 钓鱼百科

深入理解jvm知识点(jvm学习记录二)

时间:2023-07-01 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

深入理解jvm知识点?虚拟机栈都知道是运行咱们方法的,实际上他的里面放了一个一个的栈针,同时每一个线程中都会独有一份虚拟机栈的内存空间。我们的每一个栈针中存放的又是什么呢?因为我们java代码在服务器运行,然而具体到jvm中就是每一个栈针。同时我们的局部变量表是一个有序的数组,他的第一个元素放的使我们的this,然后就是一次放我们的定义好的各种变量。但是这样命名却是也没有问题。

深入理解jvm知识点?1.先从最不熟悉的来,虚拟机栈虚拟机栈都知道是运行咱们方法的,实际上他的里面放了一个一个的栈针,同时每一个线程中都会独有一份虚拟机栈的内存空间这是为什么呢?可以想一想,如何不是每个线程独有一份,那栈里面的栈针(每一个栈针就是一个方法)谁知道是哪个线程的,jvm也不是上帝(QUQ).所以我们的jvm大佬在设计jvm的时候每一个线程都会有一根栈资源和对应的程序计数器(各自记录自己的垃圾代码执行到哪里了),下面我们就来聊聊关于深入理解jvm知识点?接下来我们就一起去了解一下吧!

深入理解jvm知识点

上一章大致介绍了jvm内存模型,下来接着各区的详细内容

1.先从最不熟悉的来,虚拟机栈。

虚拟机栈都知道是运行咱们方法的,实际上他的里面放了一个一个的栈针,同时每一个线程中都会独有一份虚拟机栈的内存空间。这是为什么呢?可以想一想,如何不是每个线程独有一份,那栈里面的栈针(每一个栈针就是一个方法)谁知道是哪个线程的,jvm也不是上帝(QUQ).所以我们的jvm大佬在设计jvm的时候每一个线程都会有一根栈资源和对应的程序计数器(各自记录自己的垃圾代码执行到哪里了)。

我们的每一个栈针(就是每一个java方法)中存放的又是什么呢?和我们写的java代码又有什么关系呢?考点必会**

1.局部变量表(又叫本地变量表,都是一个意思),在这里面存放的就是我们在方法中定义的一个一个的变量,包括了咱们java的基础数据类型和引用类型(这些变量又是怎么进入到我们的栈中的呢?这个会在下文中解释,不急!),具体的比如咱么定义的int类型变量,或者new出来的对象。。。

为什么需要把这些变量放在局部变量表中呢?(补充,局部变量中还存放着咱们的当前类的对象的this,相信大家都用过,但是如果是static修饰的方法既没有,因为这个东西是属于类的)。因为我们java代码在服务器运行,然而具体到jvm中就是每一个栈针(再详细的可以查看我们的字节码文件)。

同时我们的局部变量表是一个有序的数组,他的第一个元素放的使我们的this,然后就是一次放我们的定义好的各种变量。这里提到一个问题,我们的变量放在我们的栈中是要占用我们的虚拟机内存的,所以我们的栈会发生垃圾回收吗(GC)?显然不会的,如果我们的栈中方法太多,比如我们写了一个递归,但是因为种种原因(代码太垃圾),导致没有结束,那我们的栈中会因为有太多的方法而导致stackoverflower错误(英文不知道写对没有)。或者我们的局部变量表太大,比如我们定义了1万万的数组,往里面装满了值。(你认为会出问题吗?)*

2.操作栈,这个地方大家可以简单的记住就是用来计算的。他计算的又是什么呢?其实这个地方计算的就是比如:1 1等于几(不要觉得简单,你知道底层原理吗?)类似的东西,当然不会这么简单。比如我们定义了2个变量相加,我们会把a变量先压入操作数栈,然后把b变量压入操作数栈,然后相加,最后的出的数值出栈然后赋值给我们接受计算结果的比如c变量。其实就是这样(具体的可以反编译我们的的字节码文件进行查看,后文会详细介绍这个技能,当前等级不够还不能用这个技能!!!!!!)

插播一句,作者码子不易,看了觉得有用的大佬请点一下关注,后面会接着记录学习过程,和大家一起共同成长!!!!

3.动态链接,这个东西一看有点蒙。但是这样命名却是也没有问题。因为这个东西关联到了我们方法区中的东西(java8叫元空间),我们都知道,我们的字节码中的(没看过字节码的自己看看,如果不想看先忽略后文问有详细介绍)会有很多的符号引用,在我们运行java代码的过程中,比如我们引入一个int类型的变量a他的值是5,虽然我们写java代码的时候知道我们自己写了这一段代码,但是我们需要把我们的java代码转换成字节码,然后转换成机器指令(01010101.。),首先java代码转换成字节码的时候,我们就需要告诉jvm我们的代码逻辑是什么,我们先执行那个再执行那个,同时我们的代码在编译成字节码的时候,我们的类信息是放在我们的方法区的,所以我们需要一些符号引用放在我们的栈针中,这里会有一个问题,我们的数据不都有一个内存地址吗?为什么不用这个,而是用符号引用,我可以告诉你就是为了简洁,所以我们的动态链接就是指向的我们的方法区一个个符号引用,他们在运行时候会转换成一个一个的直接引用(在讲方法区的时候会详细介绍),为什么叫动态,因为他是运行的时候用的,还有的叫静态链接没他事类加载,初始化的时候用到,总结一句话就是:我们的类信息,包括类中的方法,修饰符,变量,变量类型,字面量,这些东西都是放在方法区的,如果我们的栈针中要用,就要去方法区中找,然而找的时候就是用的符号引用,就是相当于他们的序号,二这就叫动态链接,不知道懂了没有,后面会懂得(嘿嘿嘿),

    推荐阅读
  • 会议降噪分析(打破办公电子内卷)

    写在前面有数据表明,去年仅使用腾讯会议的用户就近2亿,参会次数超过40亿次,我也贡献了其中微小的部分。POLYSYNC10会议麦克风就很贴心,它支持IP64级别防护,水撒到上面都没事,用纸巾轻轻擦拭就可,使用和打理都很方便。即插即用、大音量、双麦克风阵列以及IP64防护和降噪,专而精,有它在你真的可以保持专注。

  • 合肥新站区七里塘社康四价九价预约

    前来现场接种请遵守接种点相关规定,佩戴好口罩!温馨提示1:身份证出生日期在1996年2月1日之前的不要预约九价宫颈癌疫苗。

  • 致敬消防员和先烈(吉首消防开展缅怀革命先烈)

    在大坡烈士公园内,重温入队誓词,向烈士纪念碑前敬献花篮,全体人员脱帽肃立默哀,瞻仰烈士纪念碑,寄托对革命烈士的哀思,追忆先烈们的丰功伟绩。吉首市消防救援大队大队长朱志钢表示,要以革命先烈为榜样,发扬革命优良传统,献身消防、敢于奉献、敢于牺牲、刻苦训练,不断提升战斗能力,努力打造一支让党和人民满意的消防救援队伍。

  • 写给妈妈的新年祝福语(有哪些写给妈妈的新年祝福语)

    母爱,是叮嘱,是思念,无尽挂牵;母爱,柔如风,深似海,恩重如山;鲜花可以枯萎,沧海变为桑田,又到母亲节,祝愿亲爱的妈妈健康快乐!世上只有妈妈好,投入妈妈怀抱,困难也能看作宝,勤奋努力步步高,如意幸福都来到,祝天下母亲节日快乐,身体健康,平安吉祥!母亲节,祝福敬爱的母亲开开心心,健健康康,平平安安,快快乐乐!母亲节,最美好的祝福都给您,我的妈妈!母亲节到了,爱妈妈吗?祝全天下的母亲节日快乐!

  • 文玩手串戴着不好看怎么办(戴文玩手串也是有禁忌的)

    女人戴手串的禁忌:避免火焰纹佩戴木料手串,如菩提子、紫檀、沉香木,要尽量避免珠子上分布火焰纹。木料珠子上的火焰纹寓意地狱之火,不利于佩戴者,一定要注意。尤其是女人,体质阴柔,容易被阴气反噬。小叶紫檀还能调节睡眠,防止皱纹,对美容也有很大的作用。身体孱弱的女人佩戴金丝楠木可增强阳火,不得恶疾。

  • 淘宝规则变更怎么通知(淘宝调整认证管理类规则)

    5月24日消息,今日,淘宝发布了关于认证管理类规则变更的公示通知。此次规则变更于2022年5月24日进行公示通知,将于2022年5月31日正式生效。其中,市场登记信息是指卖家依法办理的营业执照信息,市场主体登记公示是指卖家应依法将营业执照信息上传平台对外公示。以上情形会被认定为会员信息存在不完整、失效或可能不准确。

  • 歌词中有回家啊回家(歌词春节回家)

    刘玉广马上又到春节了远行游子都在考虑回家紧紧张张买好火车票打个电话放心吧爸爸妈妈马上又到春节了有家能回该是多大福啊忙忙碌碌又是一大年真的很想抱抱咱爸爸妈妈马上又到春节了有家不能回这心里苦哇日思夜盼三百六十天任务重要原谅啊爸爸妈妈有爹有妈有家谁不想回家回家去把牵挂放下有爹有妈有家谁不想回家中国团圆万古佳话

  • 在外地能不能报废车辆 车辆报废能在外地吗

    机动车回收企业应当确认机动车并解体,向机动车所有人出具《报废机动车回收证明》。机动车回收企业应当在机动车解体后七日内将申请表、机动车登记证书、号牌、行驶证和《报废机动车回收证明》副本提交报废地车辆管理所,申请注销登记。

  • 小孩子长大后的愿望卡(女儿的愿望卡)

    最近几天,高三生全员封闭在校,老公和儿子都吃住在校。今天中午我回家,发现了幼儿园女儿的愿望卡。

  • 做一个网站的建设流程(新手建设自己的网站只需这几步)

    做一个网站的建设流程?对于一个零基础建网站新手,怎么建立网站其实只需以下五步:,下面我们就来说一说关于做一个网站的建设流程?我们一起去了解并探讨一下这个问题吧!)开通网站主机(网站空间、服务器…)设置网站域名解析和网站主机绑定安装建站程序(网站源码、网站程序…)安装网站主题(网站的图片、文字…)认真按照这5个步骤操作,你就能以特别快速度学会自己怎么建立网站!