【JVM学习笔记】Java虚拟机内存管理

《深入理解Java虚拟机》(第3版) 学习笔记,涵盖全书精髓 说是每位Javaer必看的一本书不过分吧 阅读详情

运行时数据区

线程共享:方法区、堆内存

线程私有:虚拟机栈、本地方法栈、程序计数器

 

程序计数器:

1、是一块比较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器

2、每一个线程都有自己的程序计数器

3、如果线程执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果正在执行的是native方法,这个计数器的值为undefined

4、此区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域,因为他是虚拟机使用的内存,不是开发人员指定大小并使用的

 

虚拟机栈

1、虚拟机栈描述的就是Java方法执行的动态内存模型(方法开始执行到执行完成)

2、栈帧:每个方法执行都会创建一个栈帧,伴随着方法从创建到执行完成,用于存储局部变量表,操作数栈,动态链接,方法出口等

3、局部变量表:存放编译期可知的各种基本数据类型,引用类型,returnAddress类型

4、局部变量表的内存空间在编译期完成分配,当进入一个方法时,这个方法需要在帧分配多少内存是固定的,在方法运行期间是不会改变局部变量表的大小

5、大小:StackOverflowError 栈里放不下方法

OutOfMemoryError 栈的内存大于指定的内存的大小

 

本地方法栈

虚拟机栈为虚拟机执行Java方法服务

本地方法栈为虚拟机执行native方法服务

 

Java堆

1、存放对象的实例

2、垃圾收集器管理的主要区域

3、新生代,老年代,Eden空间

4、堆内存不足 OutOfMemoryError

5、通过 -Xmx 和 -Xms来设置堆内存大小

 

方法区

1、存储虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码数等据

类的信息:类的版本、字段、方法、接口

2、方法区和永久代 Hotspot使用方法区实现永久代,二者并不等价

3、垃圾回收在方法区的行为 常量池的回收,类型的卸载,效率低,很少出现

4、异常的定义:OutOfMemoryError

 

运行时常量池

属于上面的方法区

String s1 = "abc"; 存放在常量池中,可以想象为常量池中有个StringTable:类型是Hashset的,不可重复的,所以常量池中只会有同一个相同的值

String s2 = new String("abc"); 存放在堆中 s2.intern()方法会将对象的abc放到常量池中

s1==s2.intern() 结果是true intern()方法是个native方法

 

直接内存

NIO中使用,一般用不到

手把手教你用Simulink搭建BPSK调制解调系统(附完整参数设置与波形分析) 本文详细指导如何使用Simulink搭建BPSK调制解调系统,涵盖从理论到实践的全流程,包括参数设置、模块连接和波形分析。重点解析调制解调中的关键参数和常见问题,如带通滤波器设计、载波同步等,帮助读者快速掌握BPSK系统的实现与调试技巧。 阅读详情

相关推荐

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1656

深入理解JVM学习笔记(十二、JAVA虚拟机内存管理---堆)

1、JAVA堆概述        JAVA堆在JAVA虚拟机内存模型中位置如下图所示。        堆一种通用性的内存池(存在于RAM中),用于存放所以的JAVA对象。       修改JAVA堆内存大小的参数:-Xmx  -Xms            -Xms是用来设置你的应用程序能够使用的最大内存数,如果程序要花很大内存的话,那就需要修改增加此数的值。            -Xms是用它...

张--小涛涛 254

自动驾驶嵌入式修炼秘籍:理想L9自动驾驶域控制器拆解

自动驾驶嵌入式修炼秘籍:理想L9自动驾驶域控制器拆解

pathfinder888的博客 2561

Java 虚拟机(JVM) -- 内存管理 (一)

=-= 先撤,去同济经管学院门口吃卷饼去,炒鸡好吃,有空再写 内存管理的角度,进一步探索 Java 虚拟机(JVM)。 通常可以把 JVM 内存区域分为下面几个方面,其中,有的区域是以线程为单位,而有的区域则是整个 JVM 进程唯一的。 程序计数器(PC,Program Counter Register) 在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执...

怪咖先森的博客 402

【VS Code+Verilog+Vivado使用】(1)常用插件

VS Code + Verilog + Vivado联合使用说明

XDUryan的博客 5640

PX4无人机PID调参实战:从零到稳定飞行的关键步骤

本文详细介绍了PX4无人机PID调参的实战步骤,从理解双环控制结构到实战调参三部曲,帮助飞手解决飞行抖动、电机发热等常见问题。通过分析飞行日志、调整速率环P值、引入积分I和微调角度环与微分D,实现从零到稳定飞行的关键跨越,是无人机飞控调试的必修课。

weixin_29269441的博客 527

Java虚拟机(JVM)框架

见:GitHub - eHackyd/Java_JVM: Java虚拟机(JVM)框架的学习笔记

qq_26779635的博客 893

http协议

HTTP 协议由起始行、头部、空行、消息体组成。

qq_34059233的博客 94

JVM学习笔记

简介 《深入理解java虚拟机 》学习笔记整理 JVM 知识点整理

学而不厌 诲人不倦 399

YOLOv11 改进 - 检测头 | Detect_LSCD轻量共享卷积检测头:轻量化设计破解计算瓶颈,增强复杂场景目标感知能力

本文介绍了基于群归一化(GroupNorm)和共享卷积的轻量化检测头LSCD,并将其集成进YOLOv11。LSCD检测头充分利用了GroupNorm和共享卷积的优势,在保持特征信息有效融合的同时,减少计算量和运算复杂度。我们将LSCD的代码集成到YOLOv11检测头中,并在tasks文件中进行注册。实验证明,YOLOv11-LSCD在目标检测任务中取得了良好的效果。

魔改工程师的博客 2400

[网络安全提高篇] 一二〇.恶意软件动态分析经典沙箱Cape批量提取动态API特征

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文详细介绍动态分析沙箱Cape的安装过程,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。然而,当样本数量增加时,单个样本分析会降低效率。这篇文章将讲解如何实现Cape沙箱的批量分析,通过调用Python脚本文件来实施批量处理,并将分析结果存储在指定位置,最后补充submit.py的参数及Python调用方式。基础性文章,希望对您有帮助!

杨秀璋的专栏 4124

重磅首发!腾讯前晚最新爆出的“JVM学习笔记”,GitHub已评“钻级”,看完我爱了!

腾讯这种等级的互联网企业,业务几乎涵盖了目前一切主流的互联网行业,可以做到就这种体量的企业,在技术上肯定是经历过千锤百炼的,才能达到这种顶级的技术水平,自然产出的这份“JVM学习笔记”肯定也是经得起推敲的。

stone_tmp的博客 434

【DRAM存储器三十】DDR4介绍-DDR4 SDRAM的主要技术特性之bank group,为什么要搞个group出来?

详述DDR4 bank group的作用

highman110的博客 2139

《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——自动内存管理机制

《深入理解Java虚拟机——JVM高级特性与最佳实践》学习笔记——自动内存管理机制1.概述对于从事C、C++程序开发的开发人员来说,在内存管理领域,既拥有每一个对象的”所有权”,又担负着每一个对象生命开始到终结的维护责任对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,但也正因为Java程序员把

benhuo931115的博客 857

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java学习笔记之JVM篇

Java学习笔记之JVM篇前言问:什么是JVM?问:JRE/JDK/JVM是什么关系?判断对象是否存活的算法问:如何回收对象垃圾收集算法(4种) 前言 这是JVM学习笔记,内容主要来自 周志明编写的《深入理解Java虚拟机 JVM高级特性与最佳实践》(第2版)一书,相当于是此书的读书笔记,还有一些内容引用自公众号内容 问:什么是JVM? 答:JVM是Java Virtual Machine(Jav...

qq_34882796的博客 872

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深入理解JVM学习笔记(十一、JAVA虚拟机内存管理---JAVA虚拟机本地方法栈)

1、JAVA虚拟机本地方法栈概述        JAVA虚拟机本地方法栈在JAVA虚拟机内存模型中位置如下图所示。   本地方法栈和虚拟机栈是非常相似的。其不同点如下:虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的Native方法服务。...

张--小涛涛 360

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

重磅来袭!腾讯前晚最新爆出的“JVM学习笔记”,看完我慕了!!

前言 “JVM”,一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。有了JVM后,Java语言在不同平台上运行时不需要重新编译,为我们提供了极大的便利性,现在在面试当中“JVM”相关的知识是必问的,可见现在互联网企业对JVM的重视性。 就在昨晚,腾讯爆出内部锻造已久的“JVM学习笔记”,一经流出,GitHub上受各路大神点赞好评,我也是熬夜啃完后,就立马入榜我的年度最爱笔记之一! 我也是第一时间赶快分享给大家,需要完整版的朋友,点击这里下载 JVM学习笔记概述 第一部分、带你

doubututou的博客 143

全网首发,腾讯前晚最新爆出的“JVM学习笔记”,GitHub已评“钻级”,看完我爱了

JVM”,一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。有了JVM后,Java语言在不同平台上运行时不需要重新编译,为我们提供了极大的便利性,现在在面试当中“JVM”相关的知识是必问的,可见现在互联网企业对JVM的重视性。腾讯这种等级的互联网企业,业务几乎涵盖了目前一切主流的互联网行业,可以做到就这种体量的企业,在技术上肯定是经历过千锤百炼的,才能达到这种顶级的技术水平,自然产出的这份“JVM学习笔记”肯定也是经得起推敲的。所有对这份资料感兴趣的朋友可以点这里。

m0_67645544的博客 500

《深入理解Java虚拟机》学习笔记

本篇是《深入理解Java虚拟机-Java 高级特性与最佳实践》学习笔记,周志明著,Understanding the JVM-Advanced Features and Best Practices,机械工业出版社,2011.6出版。 重温Java JVM知识,重点学习了与日常开发工作相关性最大的“自动化内存管理”模块,对Java容器优化、内存问题解决很有帮助;习惯了从互联网看电子书,难以集中和记忆,现在找几本纸质书重温,可以很清静、很安静的理解和消化,受益匪浅。

Java之旅 8780

JVM 你知道不

实不相瞒,这份 JVM 学习笔记,可以说很香。

233

推荐学习笔记《深入理解Java虚拟机-第3版》,一文全书精髓!

大家好~今天来给大家分享一下这本书,我们先来看一下《深入理解Java虚拟机》(第3版)《深入理解Java虚拟机》这本书相信大家都看过吧,说是每位Javaer必看的一本书不过分吧!不论是你面试还是想要在 Java 领域学习的更深,都离不开这本书籍,需要多看几遍,里面都是干货。今天分享这本书的学习笔记,还没来得及看书的小伙伴可以先浏览笔记,看过书的也可以再学习一下。这份笔记涵盖全书精华,主要包括自动内存管理和虚拟机执行子系统部分,希望能帮助大家对JVM有更全面的认识。下面是笔记的部分展示图。

m0_73408074的博客 393

重磅首发!京东高工最新爆出的“JVM学习笔记”,GitHub已评“钻级”,技术与实战并肩

前言 “JVM”,一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。有了JVM后,Java语言在不同平台上运行时不需要重新编译,为我们提供了极大的便利性,现在在面试当中“JVM”相关的知识是必问的,可见现在互联网企业对JVM的重视性。 就在昨晚,京东爆出内部锻造已久的“JVM学习笔记”,一经流出,GitHub上受各路大神点赞好评,我也是熬夜啃完后,就立马入榜我的年度最爱笔记之一! 我也是第一时间赶快分享给大家,需要完整版的朋友,见下图,添加上小助手即可获取到了 JV..

m0_50180963的博客 137

腾讯前晚最新爆出的“JVM学习笔记”,GitHub已评“钻级”,看完我爱了

JVM”,一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。有了JVM后,Java语言在不同平台上运行时不需要重新编译,为我们提供了极大的便利性,现在在面试当中“JVM”相关的知识是必问的,可见现在互联网企业对JVM的重视性。点击免费领取腾讯最新”JVM学习笔记“完整版!腾讯这种等级的互联网企业,业务几乎涵盖了目前一切主流的互联网行业,可以做到就这种体量的企业,在技术上肯定是经历过千锤百炼的,才能达到这种顶级的技术水平,自然产出的这份“JVM学习笔记”肯定也是经得起推敲的。

jjc4261的博客 150

JVM学习笔记之CodeCache

JVM学习笔记之CodeCache - Java老K - 博客园

weixin_35843253的博客 205

《深入浅出 Java 虚拟机》学习笔记

JVM还是非常主要的滴,这门课如果后续有时间还得看看。

小小博客 238

由浅入深!腾讯大佬的“百万级”JVM学习笔记,从思维图+核心+架构让你一步到位

前言 毫不夸张地说,JVM是现代软件工程最成功的案例之一。因为它自带GC,又有无数可以微调的参数,且运行极其稳定可靠,所以,许多厂商的核心业务系统,才敢放心地用Java编写,运行在JVM之上。 近几年深入学习JVM调优的人越来越多,因为互联网一线大厂的Java高级开发工程师JD中都明确要求了“JVM调优”的能力。JVM调优是跳槽大厂必备的技能,但是由于JVM知识体系过于庞大,非系统学习难以学透,并且即使掌握了全部理论,没有实操,依然无法应对面试! 今天,特将腾讯大佬疯狂加持的“百万级”JVM学习笔记分

m0_50180963的博客 233
上一篇: Java的swing界面拖拽文件至文本框显示文件路径
下一篇: 【JVM学习笔记】对象的创建
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值