java后端面试题(jvm极简)

目录

1、JVM是什么?核心作用

JVM是Java虚拟机,是Java程序的专属运行环境。核心作用:实现跨平台运行,一次编写到处运行;自带自动垃圾回收,不用手动释放内存。

2、JVM五大运行时数据区

分为五个区域:程序计数器、虚拟机栈、本地方法栈、堆、方法区(JDK8为元空间)。

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

线程共享:堆、方法区

3、程序计数器作用与特点

作用:记录当前线程执行的字节码行号,多线程切换时,用来恢复线程执行位置。

特点:JVM唯一不会发生OOM、不参与垃圾回收的内存区域。

4、虚拟机栈核心特点

虚拟机栈是线程私有,生命周期和线程一致。每个方法执行都会创建一个栈帧,存储局部变量、方法调用信息。方法执行完毕自动出栈释放内存,栈内存不需要GC回收,栈帧过多会出现栈溢出。

5、Java堆内存基础认知

堆是线程共享的最大内存区域,所有对象、数组都存在堆中,是GC垃圾回收的主要区域。JDK8堆分为新生代、老年代,新生代存新对象,老年代存长期存活的对象。

6、堆栈核心区别

1、存储内容:栈存局部变量、方法调用;堆存对象和数组。

2、归属:栈线程私有,堆线程共享。

3、GC:栈不用GC,方法结束自动释放;堆需要GC垃圾回收。

4、异常:栈溢出报StackOverflowError,堆不足报OOM。

7、GC垃圾回收基础、对象回收判断

GC是Java自动垃圾回收机制,自动清理堆中无效对象,释放内存。

对象回收判断:采用可达性分析算法,从GC根对象遍历,没有任何有效引用的对象,会被判定为垃圾,等待GC回收。

相关推荐
蹊黎2 小时前
C++中vector类的部分简单实现
开发语言·c++·visual studio
驭渊的小故事2 小时前
MyBatis XML 开发实战:从配置到 CRUD 全解析
xml·java·mybatis
哦虎!7 小时前
【JavaEE】网络初识
java
for_ever_love__7 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
程序猿追8 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓8 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播8 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
欣栀♡8 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室8 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
慧都小项8 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs