☰
小腊肠java学习——JVM篇(1)面试可用
2026/10/8 13:36:10 网站建设 项目流程

这个中秋连着国庆,主包也是给自己放了一个大大的假,今天回来继续更新学习,如果其中讲解的有问题,希望大家多多指正。

JVM是什么?

java程序的运行环境(java二进制字节码的运行环境)

好处:

一次编写,到处运行

自动内存管理,垃圾回收机制

首先我先自己理解一下最底层一定是计算机硬件,包括了计算机cpu和内存条。然后上方是操作系统window或linux... 最后是JVM

JVM的组成

1.什么是程序计数器?

  1. 程序计数器是私有的,每个线程一份(私有的就没有安全问题)
  2. 内部保存的字节码的行号
  3. 用于记录正在执行的字节码指令地址

2.介绍一下什么是JAVA堆?

java堆:线程共享的资源(共享就有安全问题)

用来保存对象实例+数组,当内存不够时,抛出OOM异常

java堆的组成:年轻代+老年代

  • 年轻代分为:Eden区 两个大小完全相同的Servivor区
  • 老年代是:主要保存生命周期长的对象

我想讲一下,对象从eden中垃圾回收后如果还存活会进入下一个块,最后到达老年代,这个后期会详细讲解。

jdk1.7和jdk1.8的区别:

jdk1.7有一个永久代是用于存储类信息,静态变量,常量,变以后代码,jdk1.8后移除了永久代,把数据存储到了本地内存的元空间中,这么做是为了防止OOM(内存溢出)

元空间中包括了:保存类的信息,静态变量,常量,编译后代理。

最后我想总结一下JVM的内存结构:

——————————————————————————————————

虚拟机栈 本地方法栈 堆:年轻代+老年代

程序计数器

本地内存:直接内存+元空间

——————————————————————————————————

好的,那么今天的分享就先这样啦,希望有帮助到大家

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询