JAVA虚拟机(JVM)

什么是JVM

JVM的内存模型

java代码运行示例:

堆和栈

主要用于存储局部变量、方法调用的参数、方法返回地址以及一些临时数据。每当一个方法被

调用,一个栈帧就会在栈中创建,用于存储该方法的信息,当方法执行完毕,栈帧也会被移除。

用于存储对象的实例(包括类的实例和数组)。当你使用 new关键字创建一个对象时,对象的实例就会在堆上分配空间。

内存泄漏和内存溢出

对比项 内存泄漏(Memory Leak) 内存溢出(Memory Overflow)
本质 无用对象未被回收,占用内存 内存需求超过 JVM 最大限制,无法分配内存
表现 内存缓慢增长,长期运行后出问题 直接抛出 OOM,程序崩溃

对象的生命周期

对象的生命周期包括创建、使用和销毁三个阶段:

· 创建:对象通过关键字new在堆内存中被实例化,构造函数被调用,对象的内存空间被分配。

· 使用:对象被引用并执行相应的操作,可以通过引用访问对象的属性和方法,在程序运行过程中被不断

使用。

· 销毁:当对象不再被引用时,通过垃圾回收机制GC自动回收对象所占用的内存空间。

GC只会对堆进行GC吗

JVM的垃圾回收器不仅仅会对 进行垃圾回收,它还会对方法区进行垃圾回收。

相关推荐
微尘寒风8 小时前
【Git】的安装和使用
java·git
y = xⁿ8 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
贝锐9 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
侧耳倾听1119 小时前
jwt使用简介
java·jwt
顶点多余9 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI人工智能+电脑小能手9 小时前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
jay神10 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
Julien200410 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
2601_9620664910 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
yaoxin52112311 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言