java的核心机制:JVM

JVM(java virtual machine,java虚拟机):是一个虚拟的计算机,是java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

JVM功能1:实现java程序的跨平台性

编写的java程序,都运行在JVM之上。正是因为有了JVM,才使得java程序具备了跨平台性。

使用JVM前后对比:

JVM功能2:自动内存管理(内存分配、内存回收)

1、java程序在运行过程中,涉及到运算的数据分配、存储等都有JVM完成;

2、JVM消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应的阈值时,检查并释放可被释放的存储器空间;

3、GC的自动回收、提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏。

问题:java程序还会出现内存溢出和内存泄漏问题吗?

回答:会出现。因为java会自动清除垃圾,但有用的数据并不是垃圾,不会被清除,所以会出现内存泄露的情况;当jvm认为一些无用数据不是无用数据时,没有对它进行清理,这时就发生了内存泄漏。(内存泄漏多了会导致内存溢出)

相关推荐
m0_748554817 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
lee_curry7 小时前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
阿正呀8 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
九转成圣9 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio9 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
2501_901200539 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
laowangpython9 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫9 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch9 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI9 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn