`

对象分配规则

    博客分类:
  • java
 
阅读更多

对象分配规则

1.对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次Minor GC

2.大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。这样做的目的是避免在Eden区和两个Survivor区之间发生大量的内存拷贝(新生代采用复制算法收集内存)。

3.长期存活的对象进入老年代。虚拟机为每个对象定义了一个年龄计数器,如果对象经过了1Minor GC那么对象会进入Survivor区,之后每经过一次Minor GC那么对象的年龄加1,知道达到阀值对象进入老年区。

4.动态判断对象的年龄。如果Survivor区中相同年龄的所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象可以直接进入老年代。

5.空间分配担保。每次进行Minor GC时,JVM会计算Survivor区移至老年区的对象的平均大小,如果这个值大于老年区的剩余值大小则进行一次Full GC,如果小于检查HandlePromotionFailure设置,如果true则只进行Monitor GC,如果false则进行Full GC

分享到:
评论

相关推荐

    对象协作与职责分配

    本文深入浅出阐述了面向对象设计中的职责分配原则,辅以java代码示例。

    C++析构函数调用时间及分配对象堆与栈区别demo

    描述了C++析构函数调用时间及分配对象堆与栈区别,一个理清C++析构函数和默认系统析构函数,C++堆栈分配的原则。

    co成本对象控制(doc_425)_

    成本对象会计中实际记帐和分配 35 FI系统内记帐 37 为成本对象标识输入总分类帐记帐 37 MM系统中货物变动 38 为成本对象标识输入发货 39 为成本对象标识输入发票收据 39 CO系统内实际记帐 40 控制CO系统中实际记帐 ...

    论文研究-地铁列车制动力再分配优化控制研究.pdf

    在对电制动优先的电-空制动力协调分配算法进行分析的基础上,以北京某地铁列车中2动1拖基本制动单元为研究对象,基于轴重转移原则,提出了根据各轮对所承受压力的大小按比例再分配空气制动力的优化控制算法,并通过...

    C++教材(张松)c++语言是从C语言发展而来,她在重突出的面向对象的的特性的同时,出于工程实际的需求,也作了一些关于非面向对象的语言规则。

    第五讲:对象堆分配…………………………………………………44 第六讲:单继承………………………………………………………52 第七讲:虚函数………………………………………………………61 第八讲:多继承和友元...

    Java零基础-对象的创建和使用-内存分析.md

    内容概要: 本文档详细介绍了Java编程中对象的创建和使用,并对对象在内存中的分配和使用进行了详细分析。...推荐深入学习和实践面向对象编程的概念、原则和设计模式,以提升代码的可重用性和可维护性。

    面向对象与UML资料

    GRASP: 职责分配中通用原则的模式 99 专家 99 问题: 99 解决方案: 99 举例: 99 专家模式的优点是: 100 创建者 100 问题: 100 解决方案: 100 举例: 100 优点: 101 低耦合度 101 问题: 101 解决方案: 101 ...

    实业公司股权分配方案.doc

    本股权分配方案本着效率优先,兼顾公平的原则,进行员工持股数额的分配,以期既能客观反映管理层和骨干员工对公司发展的贡献,又能激励管理层为公司的长期增长而努力,同时有效地吸引人才,留住人才,为企业的持续...

    JVM面试专题

    2.对象分配规则   3、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法 4、Perm Space中保存什么数据?会引起OutOfMemory吗? 5、什么是类的加载 6、如何⾃定义⼀个类加载器?你使⽤过哪些或者你在...

    爬虫:当首选项为单峰时对象(重新)分配问题的两个等价结果-研究论文

    接下来,对于对象分配问题,我们通过根据均匀分布随机选择禀赋配置文件并应用原始定义来定义爬虫的概率版本。 我们的第二个定理指出,该规则与“随机优先规则”相同,正如 Knuth (1996) 和 Abdulkadiroglu 和 Sö...

    第17章_职责链模式.ppt

    行为型模式分为类行为型模式和对象行为型模式两种: 类行为型模式:类的行为型模式使用继承...根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式。

    C++ 面向对象教程 21 courses#

    第1章 对象的演化 1 1.1 基本概念 1 1.1.1 对象:特性+行为 1 1.1.2 继承:类型关系 1 1.1.3 多态性 2 1.1.4 操作概念:OOP程序像什么 3 1.2 为什么C++会成功 3 1.2.1 较好的C 3 1.2.2 采用渐进的学习方式 4 1.2.3 ...

    数据库编程期末答疑,卷子讲解,SQL server相关操作讲解,如有侵权请联系删除

    (3) 为学生表Student、课程表Course、教师表Teacher分配只读权限,成绩表分配读写权限。完成后请将程序代码保存到脚本文件3_2_3.sql。 3.运行CreateTeaching.sql在系统数据库tempdb中生成解答用数据库对象,完成...

    数据库及数据库对象.docx

    第7章 数据库及数据库对象 7.1创建及维护... 3 数据库存储空间的分配. 规则:1)在创建用户数据库时,model数据库自动被复制到主要数据文件中。2)在SQL Server 2008中一页是一块8k(8x1024B)的连续磁盘空间 3)

    控制C++的内存分配

    具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。  这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注意在嵌入式C++环境中的因果关系。并且,在嵌入式...

    遥感资料(四)+遥感图像解译+目视解译、传统计算机解译方法、决策树分类、面向对象分类、神经网络分类、卷积神经网络分类法

    传统计算机解译方法是指利用计算机对遥感图像进行自动或半自动的处理和分析,通过设置阈值或规则,将图像分割成不同的区域或类别。 决策树分类是指利用一系列的判断条件,将遥感图像中的每个像元按照一定的顺序和...

    理解Javascript_15_作用域分配与变量访问规则,再送个闭包

    作用域分配与变量访问规则 在 ECMAScript 中,函数也是对象。函数对象在变量实例化过程中会根据函数声明来创建,或者是在计算函数表达式或调用 Function 构造函数时创建。(关于’函数对象’请见《理解Javascript_08_...

    【04-面向对象(上)】

    •当对象被创建时,实例成员就在内存中分配了内存空间。 •实例变量与实例共存亡;类变量与类本身共存亡。 局部变量的运行机制 •局部变量仅在方法内有效。 •当方法执行完成时,局部变量便会自动销毁。 ...

    UML和模式应用 英文版本

    为什么, 因为分配职责是必须要执行的一项活动(无论是画UML还是进行程序设计, 都要为软件对象分配职责), 并且它对软件构件的健壮性, 可维护性和可重用性具有重要影响. 当然, OOA/D中还有其他重要的技能, 但强调职责...

Global site tag (gtag.js) - Google Analytics