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

JVM内存模型的演变

1,背景

class文件、类的加载过程。我们的class文件就要进入到JVM内存里,我们沿着经典的JDK1.6,JDK1.7,JDK1.8看看在其中都经历了哪些改变

概念的统一:

  • 方法区:
    方法区可以看作是JVM逻辑上管理一片区域的名字的概念
  • 永久代:
    永久代和元空间都是对方法区的实现,只不过是1.7以前是永久代,1.8开始永久代被替代成元空间了。
  • 元空间:

2,内存模型的演变

1.6及以前JVM运行时数据区,方法区叫永久代

请添加图片描述

JVM1.7

1.7永久代还存在,但是已经逐步去永久代,字符串常量和静态变量移到堆中请添加图片描述

JVM1.8 及以后

1.8以后,无永久代,类型信息、字段、方法、常量直接保存在元空间,元空间用的是直接内存,字符串常量池和静态常量还是保持在堆中。请添加图片描述

思考

永久代为什么要被元空间替换?
永久代设置空间大小是很难确定的。在某些场景下,如果动态加载的类过多,容易产生OOM。或者是朝生夕死的类比较多。
对永久代的调优比较困难

字符串常量池为什么调整?
永久代的回收效率比较低,在full gc的时候才会触发。发生full gc是老年代的空间不足、永久代空间不足才会促发。这就导致stringTable回收效率不高。而我们开发中会有大量的字符串被创建,回收效率低,导致永久代内存不足。放到堆中能及时回收。

相关文章:

JVM内存模型的演变

1,背景 class文件、类的加载过程。我们的class文件就要进入到JVM内存里,我们沿着经典的JDK1.6,JDK1.7,JDK1.8看看在其中都经历了哪些改变 概念的统一: 方法区: 方法区可以看作是JVM逻辑上管理一片区域的…...

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks数据库

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks 一、认识DataX二、DataX3概览三、DataX3框架设计四、DataX3插件体系五、DataX3核心架构六、DataX 3六大核心优势1.可靠的数据质量监控2.丰富的数据转换功能3.精准的速度控制4.强劲的同步性能5.健…...

你是否曾经为自己写的代码而感到懊恼?那如何才能写出高质量代码呢?

这里写目录标题 一、 前言二、高质量代码的特征三、编程实践技巧1. 遵循编码规范2. 使用有意义的变量名和函数名3. 减少代码重复4. 使用注释5. 编写单元测试6. 使用设计模式7. 使用版本控制工具8. 保持代码简洁9. 优化代码性能10. 学习和借鉴他人的代码总结 一、 前言 写出高质…...

常用 Composition API【VUE3】

二、常用 Composition API 7. 计算属性与监视 7.1 computed函数 与Vue2.x中computed配置功能一致写法 <template><h1>一个人的信息</h1>姓&#xff1a;<input type"text" v-model"person.firstName"><br><br>名&a…...

--商业模式--

O2O O2O&#xff0c;网络用语中指Online To Offline的缩写&#xff0c;即在线离线/线上到线下&#xff0c;是指将线下的商务机会与互联网结合&#xff0c;让互联网成为线下交易的平台。 O2O概念最早来源于美国。O2O的概念非常广泛&#xff0c;既可涉及到线上&#xff0c;又可…...

JavaWeb《HTML基础标签》

本笔记学习于Acwing平台 MDN官方文档https://developer.mozilla.org/zh-CN/ 目录 1. html文件结构 2. 文本标签 3. 图片 4. 音频和视频 5. 超链接 6. 表单 7. 列表 8. 表格 9. 语义标签 10. 特殊符号 1. html文件结构 文档结构 html的所有标签为树形结构&#xff…...

ChatGpt 能取代人类吗?

目录 前言 一、ChatGpt是什么&#xff1f; 二、ChatGpt能做什么 总结 前言 随着人工智能的不断发展&#xff0c;很多人都开启了学习机器学习&#xff0c;以及现在ChatGpt的出现&#xff0c;对人类社会带来了很多变化。 智能化交流方式&#xff1a;ChatGpt的出现为人们提供了…...

PHP内存溢出Allowed memory size of 解决办法

以前追踪过这个问题,但是那个时候工具用的不太好,没看的这么细,这次搞的比较细,修正了偶以前的看法 .于是写小文一篇总结一下. PHP偶尔会爆一下如下 错误Allowed memory size of xxx bytes exhausted at xxx:xxx (tried to allocate xxx bytes) 不想看原理的,直接跳到最后…...

重回代码,学习总结

回顾加总结 2021年 自动化测试 1.ETL 数据库开发维护(oracle pl/sql) 2.自动化测试(javaseleniumcucumber) 2022年 功能测试 1.功能测试&#xff08;学习测试用例&#xff0c;postman测试&#xff09; 2.性能测试&#xff08;jmeter初学&#xff09; 2023年 测试开发 1.学习了…...

【Leetcode -86.分隔链表 -92.反转链表Ⅱ】

Leetcode Leetcode -86.分隔链表Leetcode -92.反转链表Ⅱ Leetcode -86.分隔链表 题目&#xff1a;给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每…...

算法记录 | 48 动态规划

198.打家劫舍 思路&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a;dp[i]&#xff1a;前 i 间房屋所能偷窃到的最高金额。 2.确定递推公式&#xff1a;dp[i] max(dp[i - 2] nums[i-1], dp[i - 1]) i间房屋的最后一个房子是nums[i−…...

CRM部署Always on 后 CRM报无法更新数据库,数据库只读,且读写分离不正常

CRM部署Always on 后 CRM报无法更新数据库&#xff0c;数据库只读&#xff0c;读写分离不正常 问题描述背景信息问题原因解决方案 问题描述 CRM部署Always on 后 CRM报无法更新数据库&#xff0c;数据库只读 读写分离不正常,出现错乱链接。 背景信息 1.2个节点配置SQL serve…...

麓言信息设计创意思维,打开设计师思路

在现在快速发展的时代&#xff0c;信息纷杂繁琐&#xff0c;如果一个设计不能让人眼前一亮&#xff0c;印象深刻&#xff0c;只会沦为平凡作品&#xff0c;无亮点无用处。正所谓&#xff0c;无设计不创意&#xff0c;这句口号正是喊出对设计的要求。   伴随着时代的发展、…...

POJ3704 括号匹配问题 递归方法

目录 题目 算法 完整代码 题目 参考 递归: https://blog.csdn.net/qq_45272251/article/details/103257953 利用了递归, 但思路稍复杂了 循环: https://blog.csdn.net/weixin_50340097/article/details/114579805 (看起来是递归其实是循环. 每次递归其实是循环内一次迭…...

leetcode — JavaScript专题(三):完全相等的 JSON 字符串、复合函数、 分组、柯里化、将对象转换为 JSON 字符串

专栏声明&#xff1a;只求用最简单的&#xff0c;容易理解的方法通过&#xff0c;不求优化&#xff0c;不喜勿喷 2628. 完全相等的 JSON 字符串 题面 给定两个对象 o1 和 o2 &#xff0c;请你检查它们是否 完全相等 。 对于两个 完全相等 的对象&#xff0c;它们必须包含相…...

OGNL 的表达式

目录 概念 基本原理 基本语法 1、访问Root区域对象基本语法 2、访问Context区域对象基本语法 符号含义 概念 Object-Graph Navigation Language 对象-图形导航语言&#xff0c; 主要用于访问对象的数据和方法。 基本原理 主要由3部分构成&#xff1a;1.OGNL引擎 …...

JAVA面试中遇到的那些坑,80%的人都种过招

面试&#xff0c;是很多学完Java开发的人不得不面对的问题。小编经常听到学员抱怨&#xff0c;明明觉得自己学的不错&#xff0c;为什么到了面试的时候就凉凉了?为什么有的面试官会一直问业务层面的问题&#xff0c;让人措手不及? 其实&#xff0c;我们在学习Java知识的同时…...

【测试开发】单元测试、基准测试和性能分析(以 Go testing 为例)

一、为什么需要测试&#x1f914;️ 你写不出 bug-free 的代码。你认为自己写出了 bug-free 的代码&#xff0c;但它在你意想不到的地方出错了。你觉得自己写出了永不出错的代码&#xff0c;但它的性能十分糟糕。 二、在开发过程中做好测试&#xff08;理想情况下&#xff09;…...

linux中一条命令查询当前端口的进程,然后拿到进程pid,作为另一条杀死进程的参数

1. 可以使用lsof命令来查询端口对应的进程&#xff0c;然后使用awk命令提取PID&#xff0c;最后将其作为另一条命令的参数。 例如&#xff0c;如果要查询端口为8080的进程&#xff1a; lsof -i :8080 | awk NR2{print $2}其中&#xff0c;-i选项指定查询网络连接&#xff0c;…...

程序员找工作难吗?我用亲身经历来告诉大家

我看到很多同学说今年的程序员找工作难。我的心里也有一定预期&#xff0c;但直到我出来之后才真正地感受到这股寒冬有多么凛冽。 一个外包公司有四五个招聘人员&#xff0c;然后外包公司有十来个&#xff0c;一个公司的岗位会分发给这些各个不同的外包公司。所以你看到我沟通…...

基于AI与Markdown的YouTube视频知识库自动化构建指南

1. 项目概述&#xff1a;一个为知识管理而生的YouTube视频归档工具 如果你和我一样&#xff0c;喜欢在YouTube上收藏大量的教程、演讲和深度解析视频&#xff0c;构建自己的“数字第二大脑”&#xff0c;那你一定也面临过同样的困境&#xff1a;收藏夹&#xff08;或者“稍后观…...

10分钟搭建完整心电监测系统:AD8232开源方案让健康数据触手可及

10分钟搭建完整心电监测系统&#xff1a;AD8232开源方案让健康数据触手可及 【免费下载链接】AD8232_Heart_Rate_Monitor AD8232 Heart Rate Monitor 项目地址: https://gitcode.com/gh_mirrors/ad/AD8232_Heart_Rate_Monitor 想要了解自己的心脏健康状态吗&#xff1f;…...

7天突破编程障碍:游戏化学习的完整实战指南

7天突破编程障碍&#xff1a;游戏化学习的完整实战指南 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 你还记得第一次面对编程时的感受吗&#xff1f;那些冰冷的语法规则、抽象的算法概念&#…...

别再踩坑了!Windows 10 下 MobSF 3.6.0 环境搭建保姆级避坑指南(附Frida版本解决方案)

Windows 10下MobSF 3.6.0环境搭建全流程避坑手册 移动应用安全测试已成为开发生命周期中不可或缺的环节&#xff0c;而MobSF作为一款开源框架&#xff0c;凭借其全面的静态与动态分析能力&#xff0c;正获得越来越多安全团队的青睐。但在Windows平台搭建环境时&#xff0c;从Py…...

告别AI问答的‘乱码’:手把手教你用Towxml在uni-app微信小程序里优雅展示Markdown

告别AI问答的‘乱码’&#xff1a;手把手教你用Towxml在uni-app微信小程序里优雅展示Markdown 去年夏天&#xff0c;我们的开发团队在构建"聚导航AI助手"时遇到了一个棘手问题&#xff1a;当AI返回的Markdown内容直接渲染到小程序页面时&#xff0c;用户看到的是满屏…...

HS2-HF_Patch终极指南:5分钟解锁《Honey Select 2》完整游戏体验

HS2-HF_Patch终极指南&#xff1a;5分钟解锁《Honey Select 2》完整游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为《Honey Select 2》的日文界…...

在Python项目中接入Taotoken多模型服务实现智能对话功能

在Python项目中接入Taotoken多模型服务实现智能对话功能 1. 准备工作与基础配置 在Python项目中接入Taotoken多模型服务前&#xff0c;需要完成两项基础准备工作。首先登录Taotoken控制台创建API Key&#xff0c;该密钥将作为所有请求的身份凭证。建议在环境变量中管理密钥而…...

多模态融合技术终极指南:让AI同时看懂文字、图像和声音的10个核心方法

多模态融合技术终极指南&#xff1a;让AI同时看懂文字、图像和声音的10个核心方法 【免费下载链接】leedl-tutorial 《李宏毅深度学习教程》&#xff08;李宏毅老师推荐&#x1f44d;&#xff0c;苹果书&#x1f34e;&#xff09;&#xff0c;PDF下载地址&#xff1a;https://g…...

R语言机器学习48小时速成:从数据到模型部署

1. 用R语言开启机器学习之旅的周末速成方案第一次接触机器学习时&#xff0c;我被Python生态的各种库淹没了。直到发现R语言中那些优雅的机器学习包&#xff0c;才意识到统计学家们早已为我们铺好了路。这个周末速成方案&#xff0c;就是带你在48小时内&#xff0c;用R完成从数…...

手把手教你用PaddleOCR的SVTR模型:从环境搭建到中文场景文字识别实战

手把手教你用PaddleOCR的SVTR模型&#xff1a;从环境搭建到中文场景文字识别实战 在数字化浪潮席卷各行各业的今天&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术已成为连接物理世界与数字世界的桥梁。无论是金融行业的票据处理、零售行业的商品标签识别&#xff0c…...