草蜢在线观看高清完整版

好男人手机在线视频播放1 56家福... 好男人手机在线视频播放1.拜登下... 好男人手机在线视频播放1.勇士记... 好男人手机在线视频播放1.隔夜外... 好男人手机在线视频播放1.新华国...
栏目分类

热点资讯
好男人手机在线视频播放1

你的位置:草蜢在线观看高清完整版 > 好男人手机在线视频播放1 > 好男人手机在线视频播放1.聊聊虚拟机垃圾搜集机

好男人手机在线视频播放1.聊聊虚拟机垃圾搜集机

发布日期:2021-09-21 17:01    点击次数:66

 ;

1、运走时数据区域

全红婵比赛。本文图片 CFP

全红婵比赛。本文图片 CFP骚虎出入口免费

马龙退出全运会男单。

马龙退出全运会男单。

近年来,我国体育事业不断发展蓬勃,国民健身意识逐渐觉醒,使得人们对体育的需求也日益增长。

虚拟机在实走JAVA程序的过程中会把它所管理的内存划分成若干个分别的数据区域。

(1)程序计数器

程序计数器(程序计数器寄存器)是一块比较幼的内存区域,它能够望作是现在线程所实走的字节码指令的走号计数器。在虚拟机的概念模型里,字节码注释器做事时就是议定转折这个计数器的值来选取下一条要实走的字节码指令。

由于JAVA虚拟机的众线程是议定线程的轮流切换并分配中央处理器时间片来实现的,在任何一个确定的时刻,一个核只会实走一条线程中的指令,为了线程切换后能恢复到准确的实走位置,每一条线程都必要有一个自力的程序计数器,因此,程序计数器是线程私有的内存。

倘若线程正在实走的是一个JAVA手段,那么程序计数器中的值是正在实走的虚拟机字节码指令的地址;倘若是一个土生土长的手段,这个计数器的值为空(未定义)此内存区域是JAVA虚拟机规范中唯逐一个异国定义任何OutOfMemoryError情况的内存区域。

(2)虚拟机栈

虚拟机栈(Java虚拟机堆栈)也是线程私有的,它的生命周期与线程相通。虚拟机栈描述的是JAVA手段实走的内存模型:每个手段在实走的同时都会创建一个称为栈帧(堆栈帧)的东西,用于存储片面变量外、操作数栈、动态链接、手段出口等新闻。每个手段从调用最先直至实走完善,都对答着一个栈帧在虚拟机栈中入栈和出栈的过程

清淡所说的栈,清淡指的是虚拟机栈中的片面变量外片面。片面变量外存储了编译期可知的基本数据类型、引用类型和回信地址类型(指向一条字节码指令的地址)。片面变量外所需的内存空间在编译期间完善分配,进入一个手段时,这个手段必要在栈帧平分配众大的片面变量空间是十足确定

倘若线程乞求的栈深度超过了虚拟机的最大深度,那么就会抛出堆栈溢出错误变态;倘若虚拟机能够动态拓展并且在拓展时无法申请到有余的内存,将抛出OutOfMemoryError变态。

(3)本地手段栈

本地手段栈(本机方法堆栈)和虚拟机栈相通,都是线程私有的,只不过虚拟机栈为虚拟机实走JAVA手段服务,而本地手段栈则为虚拟机实走本地的手段服务。

(4)爪哇

对大无数行使程序来说,JAVA堆(Java堆)都是JAVA虚拟机所管理的内存区域中最大的一块。JAVA堆是被一切线程所共享的一块内存区域,在虚拟机启动时创建。此内存区域存在的唯一方针就是存放对象实例,几乎一切的对象都在此内存区域上进走分配

根据JAVA虚拟机规范的规定,JAVA堆能够处于物理上不不息的内存空间,只要逻辑上是不息的即可。在实眼前,能够实现成固定大幼的,也能够实现成可拓展的。当拓展时,倘若无法申请到有余的内存,将抛出OutOfMemoryError变态。

(5)手段区

手段区(方法区)也是被各个线程所共享的内存区域,它用于存储已经被虚拟机添载的类新闻、常量、静态变量、准时制编译器编译后的代码等数据。

对于民风在热点虚拟机上开发、安放程序的的开发者来说,更民风于把手段区称为”长期代&ldquo但内心上两者并不等价。

手段区能够处于不不息的内存空间,也能够选择成可拓展,还能够选择不实现垃圾搜集。当手段区无法已足内存分配需求时,将抛出OutOfMemoryError变态。

(6)运走往往量池

运走往往量池(运行时常量池)是手段区的一片面。班文件中除了有类的版本、字段、手段、接口等描述新闻外,还有一项新闻是常量池(固定池表)用于存放编译期生成的各栽字面量和符号引用,这片面内容将在类添载以后进着手段区的运走往往量池中存放。

运走往往量池除了保存班文件中描述的符号引用外,还会把翻译出来的直接引用也存储在运走往往量池中,因此,运走往往量池相对于班文件常量池的一个主要特征是具备动态性。

符号引用用一组符号来描述所引用的现在标,符号能够是任何样式的字面量,只要操纵时能够无歧义地定位到现在标即可。符号引用与虚拟机的内存组织无关,引用的现在标纷歧定添载到内存中。例如org.simple.People类引用了org.simple.Language类,在编译时,好男人手机在线视频播放1人类并不清新语言类的实际内存地址,因此只能操纵符号来代替,这就是符号引用。

2、对象的内存组织

热点虚拟机中,对象在内存中存储的组织能够分为3.块区域:对象头(页眉)实例数据(实例数据)和对齐填充(填充)

热点虚拟机的对象头包含2.片面的新闻。第一片面用于存储对象自己运走时数据如哈希码、GC分代年龄、锁状态标志等等,官方称之为“标记单词&rdquo另一片面是类型指针,即对象指向它的类元数据的指针,虚拟机议定这个指针来确定这个对象是哪个类的实例,但并不是一切的虚拟机实现都必须在对象头中保留类型指针。另外,倘若对象是一个JAVA数组,那在对象头中还必须有一块用于记录数组长度的数据,由于虚拟机能够议定清淡JAVA对象的元数据新闻确定JAVA对象的大幼,但是无法从数组的元数据中确定数组的大

实例数据片面是对象真实存储的有效新闻。这片面的存储挨次会受到虚拟机分配策略参数和字段在JAVA源码中定义挨次的影响。

对齐填充并不是必须的。由于热点虚拟机的自动内存管理编制请求对象的首首地址必须是8.字节的整数倍(为什么这么请求?),也就是说对象的大幼必须是8.字节的整

3、对象的访问定位

栈上的参考数据定位和访问堆中的详细对象的手段取决于虚拟机实现,现在主要有句柄和直接指针两栽。

操纵句柄访问手段的话,JAVA堆中将会划分出一块内存来行为句柄池,参考中存储的就是对象的句柄地址,而句柄中包含了对象实例和类型数据各自详细的地址新闻。

倘若操纵直接指针访问,那么JAVA堆对象的组织就必须考虑如何安放访问类型数据的有关新闻,而参考中存储的就是对象地址。

操纵句柄访问的最大益处就是参考中存储的是安详的句柄地址,在对象被移动时只会转折句柄中的实例数据指针,而参考自己不必要修改。操纵直接指针访问的最大益处是速度更快,撙节了一次指针定位的时间支付。热点虚拟机采用的是直接指针手段。

4、垃圾搜集器

1960年诞生于麻省理工学院的口齿不清是第一门真实操纵内存动态分配和垃圾搜集技术的说话。当口齿不清还在胚胎时期,人们就在思考GC必要完善的三件事:

(1)哪些内存必要回收

(2)什么时候回收好男人手机在线视频播放

(3)如何回收

对于第一个题目,哪些内存必要回收,就是哪些对象是不走用的。第二个题目,什么时候回收,一句话概述就是内存不足用的时候进走回收。第三个题目,就涉及到回收的详细实现上了。

4.1 对象的存活鉴定

(1)引用计数算法

给对象增补一个引用计数器,每当有一个地方引用它时,计数器就添1.当引用失效时,计数器值就减1.任何时刻,计数器为0的对象就是不能够再被操纵的对

引用计数算法无法解决对象之间循环引用的题目。

(2)可达性分析

这栽算法的基本思维就是议定一系列的称为”GC根";的对象行为首首点,从这些节点最先向下搜索,搜索所走过的路径称为引用链(参考链)当一个对象到GC根异国任何引用链相连时,则表明此对象不走用

在JAVA中,能够行为GC根的对象包括下面几栽

a。虚拟机栈(栈帧中的本地变量外)中引用的对

b。手段区中类静态变量所引用的对象

c。手段区中常量所引用的对象

d。本地手段栈中JNI(即土生土长的手段)引用的对

主流的商用程序说话(java、c)#等)都是采用的可达性分析算法来鉴定对象是否

4.2 垃圾搜集算法

(1)标记-消弭算法

标记-消弭算法(标记扫描)是最基础的搜集算法。算法分为”标记”和”消弭";两个阶段:最先标记出一切必要回收的对象,在标记完善之后同一回收被标记的对象。

这栽算法存在两个弱点:

a。效率题目。”标记”和”消弭”两个阶段的效率都不高

b。内存碎片题目。标记消弭之后会产生大量不不息的内存碎片,当以后要分配较大的对象时,能够会由于找不到有余的不息内存而不得不挑前触发另一次垃圾搜集行为。

(2)复制算法

复制算法(复印)是为晓畅决标记消弭算法的效率题目而挑出。该算法将可用内存划分为大幼很是的两块,每次只操纵其中的一块。当这一块内存操纵完毕,就将还存在世的对象复制到另一块内存上面,然后再把已操纵过的内存空间一次清算失踪,如许使得每次都是对整个半区进走回收,分配内存时,也不必考虑内存碎片的题目,只必要移动堆顶指针即可。 ,

Powered by 草蜢在线观看高清完整版 @2013-2021 RSS地图 HTML地图