简单谈谈我对JVM内存管理的理解(1)

本文简述了作者对JVM内存管理的理解,包括内存分配的两种方式——指针碰撞和空闲列表模式,以及它们由内存回收算法决定。此外,还介绍了JVM的内存分区,如程序计数器、方法栈、堆、方法区和运行时常量池,强调了各区域的功能和线程安全性。
摘要由CSDN通过智能技术生成

作为一个java程序员是幸福的,因为java程序员不用自己去管理内存。没有管理过内存的程序员,可能真的想不到管理内存的纠结。我离开学校后的第一份工作就是java语言的开发,并且一直从事java开发的工作,在项目级别,没有接触过别的语言,严格说来,我也没有体会过单独管理内存的纠结。但是我的弟弟是一名c++开发工程师。从他的从业经历来看,管理内存,有时候确实很痛苦。

不用直接管理内存,很多java程序员也就不关心jvm的内存管理。在我看来,jvm虽然很智能,看充其量只不过是一个用的比较好的软件,并不能替代一个高级java程序员对内存的理解在实际工作中的作用。

所以,我也看了两本jvm相关的书籍。一本是《java虚拟机规范》,另一本是《深入理解java虚拟机》。看这两个东西,纯粹属于个人爱好。在开发中用到的并不多,但是对开发过程中的每一行代码的运行,却有了更深的理解。所以,如果你现在以javaCoding为生,那么如果有时间,如果精力允许,就抽时间看看这两本书。

我这篇文章里,只是简单说说我对jvm内存管理的理解。

jvm对内存管理,有两个主要的部分,一部分时内存的分配。一部分是内存的回收。

jvm分配内存空间,有两种方式,第一种是指针碰撞:这种分配方式,是指将整个内存区域分为两个部分,一个为已经使用的内存,另外一个为尚未使用的趋于,用一个地址指针来作为两个区域的分割点。如果要为虚拟机分配定额内存,只需要将指针移动即可。另外一种方式称为空闲列表模式。即虚拟机维护一个关于内存的空闲列表,用来记录内存区域内,哪些内存块是空闲的,当jvm需要给运行的代码分配内存时,需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值