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

深入理解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我们的代码逻辑是什么,我们先执行那个再执行那个,同时我们的代码在编译成字节码的时候,我们的类信息是放在我们的方法区的,所以我们需要一些符号引用放在我们的栈针中,这里会有一个问题,我们的数据不都有一个内存地址吗?为什么不用这个,而是用符号引用,我可以告诉你就是为了简洁,所以我们的动态链接就是指向的我们的方法区一个个符号引用,他们在运行时候会转换成一个一个的直接引用(在讲方法区的时候会详细介绍),为什么叫动态,因为他是运行的时候用的,还有的叫静态链接没他事类加载,初始化的时候用到,总结一句话就是:我们的类信息,包括类中的方法,修饰符,变量,变量类型,字面量,这些东西都是放在方法区的,如果我们的栈针中要用,就要去方法区中找,然而找的时候就是用的符号引用,就是相当于他们的序号,二这就叫动态链接,不知道懂了没有,后面会懂得(嘿嘿嘿),

    推荐阅读
  • hgst硬盘型号(2.5寸cmr硬盘展示HGST篇)

    今天介绍日立的第二款硬盘,日立的2.5寸硬盘有多个系列,大致分为三种类别:普通型HTS,增强型HTE,监控型HCC。今天要介绍的是HTE系列的代表作,HTE725050A7E630HTE的特点是在普通的HTS型号基础上增强了可用性。当然这种改变是有原因的,毕竟HTE和HTS针对的目标使用场景是不同的。在进入市场到停产的十余年时间里,没有任何一款同类产品能够优秀到和HTE角力。

  • 运城高三寒假放假时间2022(山西运城高中寒假放假时间2021)

    答:1月26日起假,2月16日正式开学。具体寒假时间,请以学校实际放假时间为准。按照放假、开学时间和常态化疫情防控要求,认真做好开学前后疫情防控工作,分时段、分批次组织师生放假或报到,确保放假和春季开学等各项工作顺利、有序进行。

  • 墙布墙纸墙漆哪个更好(墙漆墙纸墙布哪个好)

    干燥迅速,耐碱性较好,耐水耐擦洗性好,使用寿命长,至少10年以上。常见的墙纸有4种,PVC墙纸,无纺布墙纸,纯纸类墙纸,织物类墙纸。墙纸有接缝,因为它的宽度是有限的,每幅之间需要拼接。再次更换壁布会更加麻烦,一旦没有处理好或者受潮了会有脱落的情况。

  • 黄油外面黄里面白还能吃吗(黄油外面黄里面白还可以吃吗)

    接下来我们就一起去研究一下吧!新鲜的黄油内外颜色一致,都是白色,若是黄油外面黄里面白,证明黄油已被氧化,不仅已滋生细菌等有害物质,还流失一部分营养成分,此时黄油不再具有食用价值,不宜食用,以免进入人体后,对人体造成不适,因此在食用黄油之前需判断是否变质再食用。

  • 各种电子秤校正方法(各种电子秤怎么校正)

    UCA电子计数称:按任意键不放开机,按4键,放入砝码,输入砝码值,如5kg输入5,按住“单重设定”不放再按住“数量设定”同时松开即可。ACS-1A1型:按住“置零/去皮”开机,显示“CAL0”再显示砝码值,放上相应砝码自动完成。按住“风带行”显示END结束。DJ-600J亚太电子:按<↓>校正显示“CAL”放上500g砝码,自动完成。

  • 高云翔和范冰冰合作的电影(高云翔涉嫌性侵被捕)

    中国影星高云翔被曝涉嫌性侵在悉尼被捕。目前两人已因此被警方逮捕。昨天,高云翔和另一名被捕男子通过视频出庭受审,辩护律师希望申请保释,然而,国内某媒体在联系当地法院后得知,律师申请保释被拒,此案将于悉尼当地时间4月6日9点30分重审。此案曝光后,有媒体第一时间致电高云翔妻子董璇求证,董璇挂断电话拒绝回应。同时被捕的另一位男子据爆料也是唐德影视的一位制片人,如果事件属实,这恐怕也是唐德影视的一大丑闻了。

  • 空气污染是什么(空气污染介绍)

    空气污染是什么空气污染,又称为大气污染,按照国际标准化组织的定义,空气污染通常是指:由于人类活动或自然过程引起某些物质进入大气中,呈现出足够的浓度,达到足够的时间,并因此危害了人类的舒适、健康和福利或环境的现象。2017年10月27日,世界卫生组织国际癌症研究机构公布的致癌物清单初步整理参考,室外空气污染在一类致癌物清单中。

  • 床上有跳蚤怎么清除(床上有跳蚤怎么办)

    床上有跳蚤怎么清除?跟着小编一起来看一看吧!床上有跳蚤怎么清除晾晒:紫外线有很好的消杀作用,可以先把所有的床单被套清洗一遍,然后在太阳底下暴晒来去除跳蚤,这是比较简单去除方法之一。

  • 网络机顶盒能投屏吗(这里有详细的操作方法)

    我们一起去了解并探讨一下这个问题吧!网络机顶盒能投屏吗首先,我们需要设置一下机顶盒和手机。其次,找到“设置”选项,并选择“安全”,把“设备管理”下的“允许安装未知来源”锁定后选中。再次,我们就可以从应用市场把相关的第三方投屏APP安装到机顶盒里面了,同样的,在手机上也需要安装此软件的手机版APP。

  • 倒车影像多少钱一个(汽车倒车影像摄像头多少钱)

    单独更换倒车摄像头的价格汽车倒车摄像头也是分级的。这主要取决于车主的需求和他们想要什么样的倒车形象一个,但价格不同。一般情况下,倒车影像会有三条标线,即红线、黄线和绿线。这三行将出现在倒车影像处。当倒车影像中的障碍物到达红色标记时,意味着需要刹车。此时车辆后方与障碍物的距离相差约一米。此时表示距离车尾还有一段距离,而绿线外的障碍物表示障碍物距离车尾至少有一个车体,可以轻松倒车继续。