你的位置:免费情侣作爱视频 > 精品国产一区二区三区香蕉 > 18禁裸乳无遮挡免费游戏 深切领略 JVM 的内存区域分别

18禁裸乳无遮挡免费游戏 深切领略 JVM 的内存区域分别

时间:2022-05-11 10:25 点击:64 次

本文转载自微信公众号「码虫甲」18禁裸乳无遮挡免费游戏,作家码虫甲 。转载本文请连络码虫甲公众号。

 18禁裸乳无遮挡免费游戏一、Java文献是如何驱动起来的?

推行经由:

1.Java文献经过编译后酿成 .class 字节码文献

2.字节码文献通过类加载器加载到 JVM 杜撰机中

3.加载罢了之后18禁裸乳无遮挡免费游戏,交由JVM推行引擎推行

在通盘这个词门径推行过程中,JVM会用一段空间来存储门径推行时间需要用到的数据和干系信息,这段空间一般被称动作Runtime Data Area(驱动时数据区),也即是咱们常说的JVM内存。

二、驱动时数据区包括哪几部分?

驱动时数据区主要包含以下5大块:方法区,堆都为线程分享区域,有线程安全问题,Java栈、腹地点法栈和门径计数器都是独享区域,不存在线程安全问题,其中 JVM 的调优主要即是围绕堆,栈两大块进行。

1.方法区

存储了每个类的信息(包括类的称呼、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等18禁裸乳无遮挡免费游戏,类加载器将 .class 文献加载到驱动时数据区时即是先丢到这一块上头。

有读者让我聊一聊关于西安一码通大数据系统崩溃的问题,症结在哪?领导怎么就被撤职了?

面对那些对平台忠诚度高的熟客,不仅没有给予更多的优惠,反而利用老用户的信息差和信任割起了韭菜!

1)Hadoop基础功能库:支持其他Hadoop模块的通用程序包。

在Class文献中除了类的字段、方法、接口等描摹信息外18禁裸乳无遮挡免费游戏,还有一项信息是常量池,用来存储编译时间生成的字面量和秀美援用。

在方法区中有一个非凡遑急的部分即是驱动通常量池,它是每一个类或接口的常量池的驱动时默示样式,在类和接口被加载到JVM后,对应的驱动通常量池就被创建出来。天然并非Class文献常量池中的内容技能参加驱动通常量池,在驱动时间也可将新的常量放入驱动通常量池中,比如String的intern方法。

2.堆

和方法区同属线程分享区域,它主要放了一些存储的数据,比如对象实例,数组···等。

堆是Java垃圾采集器解决的主要区域,在JVM中唯有一个堆。

3.Java栈18禁裸乳无遮挡免费游戏

Java栈也称作杜撰机栈(Java Vitual Machine Stack),Java栈是Java方法推行的内存模子。

Java栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向现时列法所属的类的驱动通常量池(驱动通常量池的看法在方法区部分会谈到)的援用(Reference to runtime constant pool)、方法复返地址(Return Address)和一些荒谬的附加信息。当线程推行一个方法时,就会随之创建一个对应的栈帧,并将诞生的栈帧压栈。当方法推行罢了之后,便会将栈帧出栈。因此可知,线程现时推行的方法所对应的栈帧必定位于Java栈的顶部。讲到这里,群众就应该会光显为什么 在 使用 递归方法的时候容易导致栈内存溢出的时局了以及为什么栈区的空间无须门径员去解决了(天然在Java中,门径员基本无须关系到内存分拨和开释的事情,因为Java有我方的垃圾回收机制),这部分空间的分拨和开释都是由系统自动实施的。关于通盘的门径操办说话来说,栈这部分空间对门径员来说是不透明的。下图默示了一个Java栈的模子:

局部变量表,顾名思义,想必无须证实群众应该光显它的作用了吧。即是用来存储方法中的局部变量(包括在方法中声明的非静态变量以及函数形参)。关于基本数据类型的变量,则胜仗存储它的值,关于援用类型的变量,则存的是指向对象的援用。局部变量表的大小在编译器就不错细目其大小了,因此在门径推行时间局部变量表的大小是不会更正的。

操作数栈,想必学过数据结构中的栈的知友想必对抒发式求值问题不会目生,栈最典型的一个愚弄即是用来对抒发式求值。想想一个线程推行方法的过程中,精品国产一区二区三区香蕉实质上即是束缚推行语句的过程18禁裸乳无遮挡免费游戏,而九九归一即是进行计较的过程。因此不错这样说,门径中的通盘计较过程都是在借助于操作数栈来完成的。

指向驱动通常量池的援用,因为在方法推行的过程中有可能需要用到类中的常量,是以必须要有一个援用指向驱动通常量。

方法复返地址,当一个方法推行罢了之后,要复返之前调用它的地点,因此在栈帧中必须保存一个方法复返地址。

由于每个线程正在推行的方法可能不同,因此每个线程都会有一个我方的Java栈,互不禁绝。

4.腹地点法栈

咱们点开Thread类的源码,不错看到它的start()方法带有一个native关键字修饰,而且不存在方法体,这种用native修饰的方法即是腹地点法。

private native void start0(); 

腹地点法栈与Java栈的作用和旨趣非凡相似,区别只不外是Java栈是为推行Java方法职业的,而腹地点法栈则是为推行腹地点法(Native Method)职业的。在JVM措施中,并莫得对腹地点发展的具体收尾方法以及数据结构作强制限定,杜撰机不错解放收尾它。在HotSopt杜撰机中胜仗就把腹地点法栈和Java栈合二为一。

5.门径计数器

门径计数器(Program Counter Register),也有称为PC寄存器的。学过汇编说话的同学对门径计数器这个看法并不目生,在汇编说话中,门径计数器是指CPU中的寄存器,它保存的是门径现时推行的辅导的地址(也不错说保存下一条辅导的所在存储单位的地址),当CPU需要推行辅导时,需要从门径计数器中得到现时需要推行的辅导所在存储单位的地址,然后笔据得到的地址获取到辅导,在得到辅导之后,门径计数器便自动加1或者笔据滚动指针得到下一条辅导的地址,如斯轮回,直至推行完通盘的辅导。

天然JVM中的门径计数器并不像汇编说话中的门径计数器相通是物理看法上的CPU寄存器,然而JVM中的门径计数器的功能跟汇编说话中的门径计数器的功能在逻辑上是等同的,也即是说是用来疏导推行哪条辅导的。

由于在JVM中,多线程是通过线程轮替切换来获取CPU推行时候的,因此,在职一具体时刻,一个CPU的内核只会推行一条线程中的辅导,因此,为了省略使得每个线程都在线程切换后省略还原在切换之前的门径推行位置,每个线程都需要有我方颓败的门径计数器,况且弗成彼此被禁绝,不然就会影响到门径的普通推行秩序。因此,不错这样说,门径计数器是每个线程所独有的。

在JVM措施中限定,如若线程推行的横暴native方法,则门径计数器中保存的是现时需要推行的辅导的地址;如若线程推行的是native方法,则门径计数器中的值是undefined。

由于门径计数器中存储的数据所占空间的大小不会随门径的推行而发生更正,是以它是内存区域中唯独一个不会出现OutOfMemoryError的区域,而且占用内存空间小到基本不错忽略不计。

 

服务热线
官方网站:www.365jz.com
工作时间:周一至周六(09:00-18:00)
联系我们
QQ:2852320325
邮箱:w365jzcom@qq.com
地址:武汉东湖新技术开发区光谷大道国际企业中心
关注公众号

Powered by 免费情侣作爱视频 RSS地图 HTML地图


免费情侣作爱视频-18禁裸乳无遮挡免费游戏 深切领略 JVM 的内存区域分别