当前位置: 首页 > news >正文

Jvm -堆对象的划分

堆对于一个jvm进程来说是唯一的,一个进程只有一个jvm,但是进程半酣多个线程,多个线程共享一个堆。

也就是说,一个jvm实例只存在一个堆,同时对也是Java内存管理的核心区域。

Java堆区域的大小在jvm启动时就已经被确定下来了,是jvm管理的最大的一块内存空间,但对的大小也是可以调节的。

《Java虚拟机规范》规定对可以处于物理上不连续的内存空间中,但在逻辑上他应该被视为是连续的。
所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区,在《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组对象都应当在运行时分配在堆上。数组共和对象永远不可能储存在栈上,因为栈中保存引用的地址,这个引用会指向对象或者数组在堆中的位置。

在方法结束后,堆中 的对象并不会被马上移除,仅仅是在垃圾回收时才会被移除。对GC指向垃圾回收的重点区域。

在Java1.7之前堆内存在逻辑上分为:新生代+养老区+永久区
● 新生区 又被划分为Eden区和Survivor区
● 养老区
● 永久区
在这里插入图片描述

在Java1.8后分为:新生区+养老区+元空间
●新生区 Young/New 又被划分为Eden区和Survivor区
● 养老区
● 元空间
在这里插入图片描述
年轻代与老年代
在jvm中存储的对象可以被划分为两类:

  1. 一类是生命周期较短的瞬时对象,之类对象的创建消亡都非常迅速
  2. 另一类对象的生命周期却非常长,在某些极端的情况下还能够与jvm的上明周期保持一致

Java堆区进一步细分的化还可以划分为YoungGen年轻代和OldGen老年代
其中年轻代又可以划分为Eden空间、Survivor0和Survivor1空间也叫做from、to区
在这里插入图片描述
那么对象是如何进行分配的呢?
为对象分配内存是意见非常严谨和复杂的任务,jvm的设计者们不仅需要考虑内存如何分配、在哪里分配等问题,并且由于内存分配算法与内存回收算法密切相关,所以还需要考虑GC完成垃圾回收后在内存空间产生的内存碎片。

  1. new的对象先放到Eden也就是伊甸园区,此区域有大小限制
  2. 当伊甸园区的空间被填满时,程序还在创建新的对象,jvm的垃圾回收器将对伊甸园进行垃圾回收(MinorGc),将伊甸园中不在被其他对象所引用的对象进行回收,再将新家在的对象放入到伊甸园区
  3. 之后将伊甸园中剩余的对象移动到s0区
  4. 如果再次触发垃圾回收,此时上次幸存下来的放到s0区的,如果没有被回收就会被放到s1区
  5. 如果再次经历垃圾回收,此时会从新放回s0区,接着再去s1区
  6. 进入养老区的次数默认是15次
  7. 在养老区,相对悠闲.当养老区的内存不足时,再次触发Gc(MajorGc)进行养老区的内存清理
  8. 若在养老区执行了MajorGc之后发现依旧无法进行对象的保存就会报oom异常
    ● 针对幸存者s0,s1区的总结:复制之后有交换,谁空谁是to
    ● 关于垃圾回收:频繁在新生区收集,很少在老年代收集,几乎不再永久代和元空间进行收集

相关文章:

Jvm -堆对象的划分

堆对于一个jvm进程来说是唯一的,一个进程只有一个jvm,但是进程半酣多个线程,多个线程共享一个堆。 也就是说,一个jvm实例只存在一个堆,同时对也是Java内存管理的核心区域。 Java堆区域的大小在jvm启动时就已经被确定…...

2023美赛F题讲解+数据领取

我们给大家准备了F题的数据,免费领取!在文末 国内生产总值(GDP)可以说是一个国家经济健康状况最著名和最常用的指标之--。它通常用于确定一个国家的购买力和获得贷款的机会,为各国提出提高GDP的政策和项目提供动力。GDP“衡量一个国家在给定时间段内生产…...

【博客625】keepalived开启garp refresh的重要性

keepalived开启garp refresh的重要性 1、场景 1-1、对keepavlied master机器热迁移后出现vip不通,过后恢复 原因:机器迁移后网关那边的arp表没有刷新,流量还是转发到老的端口,但是机器已经迁移到别的端口了,于是网络…...

nginx防护规则,拦截非法字符,防止SQL注入、防XSS,nginx过滤url访问,屏蔽垃圾蜘蛛,WordPress安全代码篇

nginx防护规则,拦截非法字符,防止SQL注入、防XSS,nginx过滤url访问,屏蔽垃圾蜘蛛,WordPress安全代码篇 精心强化,小白一键复制 资源宝分享:www.httple.net 宝塔为例:/www/server/panel/vhost/nginx/你的网站域名.conf,复制代码点击保存 修改www.xx.net你自己域名incl…...

【计算机网络】网络层

文章目录网络层概述网络层提供的两种服务IPv4地址IPv4地址概述分类编址的IPv4地址划分子网的IPv4地址无分类编址的IPv4地址IPv4地址的应用规划IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题路由选择路由选择协议概述路由信息协议RIP的基本工作原理开放最短路…...

产品经理知识体系:1.什么是互联网思维?

互联网思维 思考 笔记 用户思维 是要注重用户体验,产品带给用户的价值是什么,是能帮助用户获取想要的商品、解决生活中的问题、获取想要的信息,还是产品能通过兜售参与感、满足感等来满足用户的心理需求。 贯穿产品的整个生命周期过程。 简…...

【数据结构】单链表的接口实现(附图解和源码)

单链表的接口实现(附图解和源码) 文章目录单链表的接口实现(附图解和源码)前言一、定义结构体二、接口实现(附图解源码)1.开辟新空间2.头插数据3.头删数据4.打印整个单链表5.尾删数据6.查找单链表中的数据7…...

TikTok话题量超30亿,这款承载美好记忆的剪贴簿引发讨论

回忆风剪贴簿在TikTok引起关注小超在浏览超店有数后台时发现,有一款平平无奇的剪贴簿的种草视频爆火,在24h内收获了9.9K点赞,播放量更是突破了100W,直接冲到了【种草视频飙升榜】第六名的位置,并且这个数字目前仍在继续…...

了解Dubbo

1.注册中心挂了,消费者还能不能调用生产者? 注册中心挂了, 消费者依然可以调用生产者。生产者和消费者都会在本地缓存注册中心的服务列表,当注册中心宕机时,消费者会读取本地的缓存数据,直接访问生产者&am…...

2023年前端面试知识点总结(JavaScript篇)

近期整理了一下高频的前端面试题,分享给大家一起来学习。如有问题,欢迎指正! 1. JavaScript有哪些数据类型 总共有8种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt Null 代表的含义是空对象…...

jQuery

文章目录jQuery 介绍初体验核心函数jQuery 对象和 dom 对象区分什么是 jQuery 对象,什么是 dom 对象问题:jQuery 对象的本质是什么?jQuery 对象和 Dom 对象使用区别Dom 对象和 jQuery 对象互转(重点)jQuery 选择器&…...

强化学习基础概念

强化学习入门 入门学习第一周:基础概念 经验回放: 将sss,agent当前步的action环与境的交互rrr以及下一步的状态st1s_{t1}st1​组成的四元组[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxhVd0dn-1676710992983)(null)] 组…...

Redis学习【9】之Redis RDB持久化

文章目录一 AOF(Append Only File) 持久化二 AOF 基础配置2.1 AOF的开启2.2 文件名配置2.3 混合式持久化开启2.4 AOF 文件目录配置三 AOF 文件格式3.1 Redis 协议3.2 查看 AOF 文件3.3 清单文件3.4 Rewrite 机制3.4.1 rewrite简介3.4.2 rewrite 计算策略3.4.3 手动开启 rewrite…...

分析 vant4 源码,学会用 vue3 + ts 开发毫秒级渲染的倒计时组件,真是妙啊

2022年11月23日首发于掘金,现在同步到公众号。11. 前言大家好,我是若川。推荐点右上方蓝字若川视野把我的公众号设为星标。我倾力持续组织了一年多源码共读,感兴趣的可以加我微信 lxchuan12 参与。另外,想学源码,极力推…...

事件驱动型架构

事件驱动型架构是一种软件设计模式,其中微服务会对状态变化(称为“事件”)作出反应。事件可以携带状态(例如商品价格或收货地址),或者事件也可以是标识符(例如,订单送达或发货通知&a…...

20222023华为OD机试 - 不含 101 的数(Python)

不含 101 的数 题目 小明在学习二进制时,发现了一类不含 101 的数, 也就是将数字用二进制表示,不能出现 101 。 现在给定一个正整数区间 [l,r],请问这个区间内包含了多少个不含 101 的数? 输入 输入一行,包含两个正整数 l l l, r r r...

杭州电子科技大学2023年MBA招生考试成绩查询和复查申请的通知

根据往年的情况,2023杭州电子大学MBA考试初试成绩可能将于2月21日公布,最早于20号出来,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。根据教育部和浙江省教育考试院关于硕士研究生招生考试工作的统一…...

电子技术——CS和CE放大器的高频响应

电子技术——CS和CE放大器的高频响应 在绘制出MOS和BJT的高频响应模型之后,我们对MOS和BJT的高频响应有了进一步的认识。现在我们想知道的是在高频响应中 fHf_HfH​ 的关系。 高频响应分析对电容耦合还是直接耦合都是适用的,因为在电容耦合中高频模式下…...

2023年数学建模美赛D题(Prioritizing the UN Sustainability Goals):SDGs 优先事项的选择

正在写,不断更新,别着急。。。 4. SDGs 优先事项的选择 4.1 基于SDG密度分布图选择优先事项 虽然每个可持续发展目标的接近度矩阵和中心性度量的结果是通用的,并创建了基本的可持续发展目标网络,但由于各国在网络的不同部分取得…...

springboot实现项目启动前的一些操作

在服务启动时,做一些操作,比如加载配置,初始化数据,请求其他服务的接口等。 有三种方法: 第一种是实现CommandLineRunner接口 第二种是实现ApplicationRunner接口 第三种是使用注解:PostConstruct 三者使用…...

NotebookLM无法识别PDF表格?手把手复现Google Research 2024最新LayoutParser适配方案(附可运行Colab脚本)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM无法识别PDF表格?手把手复现Google Research 2024最新LayoutParser适配方案(附可运行Colab脚本) NotebookLM 默认使用轻量级 PDF 解析器(如 Py…...

Emacs集成ChatGPT:AI助手无缝融入编辑器工作流

1. 项目概述:在Emacs中集成ChatGPT的魔法工具作为一名在Emacs生态里摸爬滚打了十多年的老用户,我对于在编辑器里“折腾”各种生产力工具一直乐此不疲。当ChatGPT这类大语言模型(LLM)横空出世时,我的第一反应就是&#…...

2026年最值得投入的5款AI Agent工具:Gartner认证+生产环境压测数据全公开

更多请点击: https://intelliparadigm.com 第一章:2026年最佳AI Agent工具推荐 2026年,AI Agent 已从概念原型迈入企业级生产部署阶段。开发者不再满足于单任务自动化,而是追求具备长期记忆、跨平台协调与自主目标分解能力的智能…...

DeepSeek-Coder-V2:企业级代码智能的革命性突破

DeepSeek-Coder-V2:企业级代码智能的革命性突破 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-V2 在数字化…...

如何自定义 LangGraph 的 State Schema 以支持复杂业务数据流

标题选项 《LangGraph实战进阶:自定义State Schema搞定复杂业务数据流全指南》 《从零搞定LangGraph复杂工作流:State Schema自定义从原理到落地》 《告别简单Demo:自定义LangGraph State Schema支撑企业级复杂数据流》 《LangGraph核心原理解锁:State Schema自定义设计思路…...

人工智能的“意识”争论:它真的能理解吗,还是只是在模仿?—— 一个软件测试从业者的专业解构

2026年的今天,当你在测试环境中输入一条模糊的需求描述,大模型瞬间生成了逻辑严密、边界清晰的测试用例时,你是否曾在某一瞬间恍惚:它真的“懂”我在测什么吗?还是仅仅在进行一场华丽的概率模仿?关于人工智…...

XSP25全协议 100W PD快充诱骗芯片_串口读电压电流信息

在Type-C快充技术普及的今天,快充诱骗协议芯片成为小家电、智能硬件、锂电设备等产品实现高效取电的核心器件。XSP25作为汇铭达推出的Type‑C受电端(Sink)多功能快充取电芯片,以全协议兼容、100W大功率输出、串口智能通信、极简外…...

我花三天实测了DeepSeek V4,发现它根本不是来跟GPT-4o打架的

2026年4月24号,DeepSeek V4发布。 同一天,GPT-5.5也发布了。 这不是巧合,这是宣战。 但测了三天之后,我发现一个反直觉的结论,DeepSeek V4的真正对手根本不是GPT-4o,也不是Claude 3.5。 它要干掉的&#xf…...

码森防伪溯源系统:一站式构建产品信任桥梁,赋能品牌全流程数字化管理

在假冒伪劣产品屡禁不止、消费者对产品来源与真实性日益关注的今天,如何高效实现防伪、溯源、营销、管理一体化,已成为品牌方与技术开发者共同关注的核心问题。 防伪溯源系统,正是这样一套集低成本、易操作、强扩展性于一体的综合性解决方案。…...

Llama.cpp Docker镜像部署指南:快速搭建本地大模型运行环境

1. 项目概述:为什么需要为Llama.cpp准备Docker镜像? 在本地部署和运行大型语言模型(LLM)这件事上,Llama.cpp 几乎成了开源社区的“标准答案”。它用纯C/C编写,通过高效的量化技术,让我们能在消费…...