2023Java高频面试题,jvm虚拟机体系结构,收藏必看!

news2025/1/17 6:02:04

1. 前言

最近很多小伙伴在找工作.

在面试中, 面试官经常问到的一个面试题是 : 请说出Jvm虚拟机体系结构?

小伙伴们, 一般会说堆, 栈.....然后面试官问, 那还知道其他的吗, 然后小伙伴们就语塞了.......

面试后来问千锋健哥, 所以健哥在这里为大家来讲讲这个Jvm虚拟机体系结构的问题.

2. 面试题考点

如果面试官是千锋健哥的话, 那么我想考的就是看看候选人是否有对Jvm虚拟机结构有一个宏观的理解.

大家来想想为什么要问这个问题呢, 因为Jvm优化的第一步就是先要理解整个Jvm虚拟机的体系结构和作用, 然后再学习Jvm的垃圾回收机制, Jvm分析的命令等, 最后才可以做Jvm调优或者优化.

下面是健哥整理的关于Jvm虚拟机部分的整体学习思路和大纲:

 3. 解题分析

下面千锋健哥来带大家一起分析下这个问题的解题思路, 首先Jvm虚拟机结构一共分为九个部分如下:

接下来健哥再说一说每个部分的作用:

3.1. 类加载器

作用 : 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中.

类加载器将 Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的newInstance()方法就可以创建出该类的一个对象。

3.2. 方法区

作用 : Java方法区和堆一样,方法区是一块所有线程共享的内存区域,他保存系统的类信息。比如类的字段、方法、常量池等。

3.3. Java堆

作用 : 堆内存用于存放由new创建的对象和数组。例如: new String() 创建一个对象, 而这个对象就会放入Java堆中存储

3.4. Java栈

作用 : 线程私有,它的生命周期与线程相同。存储局部变量, 动态链接, 方法出口等信息.

3.5. 直接内存

作用 : 提高一些场景中的性能. 直接内存并不是虚拟机运行时数据区的一部分,也不是Java 虚拟机规范中定义的内存区域。在NIO中增加NIO的性能.

3.6. 本地方法栈

作用 : 用于本地方法调用, JDK源码中好多使用了Native关键字, 也就是调用底层C语言编写的方法.

3.7. 垃圾回收系统

作用: 垃圾回收器也叫做垃圾回收系统, 用于在Jvm运行时, 回收垃圾(不用的对象), 释放被占用的内存.

3.8. PC寄存器

作用 : 每个线程启动的时候,都会创建一个PC寄存器。保存下一条将要执行的指令地址. PC寄存器的内容总是指向下一条将被执行指令的地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。

3.9. 执行引擎

作用 : 执行编译后的字节码指令.

4. 总结

经过上面的分析最后千锋健哥来给大家总结下这个问题的完整答案:

Jvm虚拟机体系结构一共分为九个部分:

类加载器, 方法区, Java堆, Java栈, 直接内存, 本地方法栈, 垃圾回收器, pc寄存器, 执行引擎.

大家一定要牢记哦, 这可是高频面试题!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/443500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【一起啃书】《机器学习》第三章 线性模型

第三章 线性模型 3.1 基本形式 给定由 d d d个属性描述的示例 x ( x 1 ; x 2 ; . . . ; x d ) {\bf{x}} ({x_1};{x_2};...;{x_d}) x(x1​;x2​;...;xd​),其中 x i x_i xi​是 x \bf{x} x在第 i i i个属性上的取值,线性模型试图学得一个通过属性的线性…

瀚高股份吕新杰:创新开源双驱动,躬耕国产数据库

作者 | 伍杏玲 近年来,国际形势不断变幻,也给人们带来巨大警示:关键核心技术是买不来、讨不来的,中国科技企业需寻找研发自强之路。 瀚高基础软件股份有限公司(简称瀚高股份)专注数据库十八年,始…

信息安全-reNgine-Web应用渗透测试的自动化网络侦察框架

目录 reNgine介绍 工具运行机制 安装部署 安装rengine 安装python依赖包 合并Django前端静态文件 安装Postgresql 创建reNgine账号 启动reNgine 启动reNgine成功 启动reNgine后在浏览器访问:http://localhost:8000/ 这时会发现前端静态资源加载失败&…

【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码

极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码 相关博客 【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码 【自然语言处理】【大模型】DeepMind的大模型Gopher 【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言…

Froala V4.0.18 Crack Froala 编辑器

Froala V4.0.18:复制和粘贴图像变得更好,还有更多! 2023 年 3 月 25 日最忠实用户编辑器,新版本发表评论 Froala Editor团队很高兴地宣布发布Froala Editor 4.0.18。这个新版本在质量和稳定性方面有很多改进,并修复了…

优雅的处理sping项目全局异常

全局异常处理 为了达到系统的各个模块中都能够共用同一个异常处理逻辑,避免代码重复和错误。在Spring框架中,可以通过全局异常处理来捕获应用程序中抛出的异常,并根据需要进行处理。 ControllerAdvice ControllerAdvice是Spring MVC框架中…

TCP CUBIC 动力学

曾陪经理一起面试,问过一个问题: CUBIC 的公式: W ( x ) C ( x − K ) 3 W m a x W(x)C(x−K)^3W_{max} W(x)C(x−K)3Wmax​ 其中 x 是什么意思? 本意是想候选人回答 “x 是绝对时间”,然后我会接着问 “这个 x …

[SWPUCTF] 2021新生赛之(NSSCTF)刷题记录 ②

[SWPUCTF] 2021 新生赛(NSSCTF刷题记录wp) [SWPUCTF 2021 新生赛]no_wakeup[鹤城杯 2021]easy_crypto[suctf 2019]EasySQL[ZJCTF 2019]NiZhuanSiWei[强网拟态 2021]拟态签到题[BJDCTF 2020]easy_md5[SWPUCTF 2021 新生赛]easyupload3.0[SWPUCTF 2021 新生…

Python解决微软Microsoft的登录机器人验证

前言 本文是该专栏的第8篇,结合优质项目案例,让你精通使用Pyppeteer,后面会持续分享Pyppeteer的干货知识,记得关注。 在注册微软Microsoft账号或者注册outlook邮箱账号的时候,会遇到如下机器人验证: 是的,你可能第一眼看到这个验证页面,首先会想到是定位它的页面元素N…

数据结构各结构特点(数组、链表、栈、队列、树)

目录 一、数组 二、链表 三、栈 四、队列 五、树 1.二叉树 2.二叉查找树 3.平衡二叉树(AVL树) 4.红黑树 六、总结: 1.红黑树和平衡二叉树的区别: 2.为什么有了数组和链表还要引入二叉树? 3.为什么有了二叉树…

【Linux】从机I/O线程报错

一、报错问题 I/O线程报错 查看/var/log/mysqld.d日志,查看报错; 在从机,telnet主机的3306端口显示拒绝连接; 并且从机mysql登录用户密码问题,密码输入正确但是报错【ERROR 1045 (28000): Access denied for user root…

软件开发中的DevOps实践

一、引言 在软件开发领域,为了满足用户需求、提升产品质量、缩短产品上线时间,DevOps已经成为一种流行的开发实践方式。本文将从什么是DevOps、DevOps的理念、DevOps的价值、DevOps的实践等方面详细介绍DevOps在软件开发中的实践。 二、什么是DevOps …

python爬虫原理及源码解析(入门)

目录 一、爬虫是什么?二、爬虫的基本原理三、HTTP协议与响应4、爬虫实现源码 一、爬虫是什么? ​ 如果将互联网比作一张大的蜘蛛网,数据便是存放在蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据…

用spring-boot-starter实现事务的统一配置

一、前言 微服务架构下,多个微服务都需要事务操作,如果在每个微服务下都从头配置事务,将非常繁锁。事务配置具有高度的一致性,可以抽取出来,制作starter,在需要配置事务的服务中引入starter依赖即可。 采用…

NFS(UOS)

appsrv 172.16.146.11 strogesrv 172.16.146.53 共享/data/share目录 用于存储app主机的web数据 仅允许stora访问该共享 安装nfs apt install nfs-common nfs-kernel-server -y mkdir /data/share /data/share 172.16.146.50(rw,sync,no_root_squash,insecure) 重启服…

志特转债上市价格预测

志特转债 基本信息 转债名称:志特转债,评级:A,发行规模:6.14033亿元。 正股名称:志特新材,今日收盘价:35.6元,转股价格:41.08元。 当前转股价值 转债面值 / …

微服务学习高级篇【5】之服务异步通信(rabbitmq的高级特性)

文章目录 环境准备:MQ部署【docker环境】消息可靠性生产者消息确认项目配置定义Return回调和ConfirmCallback 消息持久化交换机持久化队列持久化消息持久化 消费者消息确认none模式演示 消费失败重试机制本地重试失败策略 总结 死信交换机初识死信交换机死信交换机接…

【DHCP原理与配置】

目录 一、了解DHCP服务使用DHCP的好处DHCP的分配方式 二、DHCP的租约过程传输协议端口DHCP的IP地址自动获取工作原理 三、配置DHCP服务器安装dhcp查看配置文件根据配置文件提示查看相关文档 四、模拟外网和内网互通进入主机1的设置进入主机2的设置复制dhcp文件,修改…

Nginx 优化与防盗链

Ngnix优化主要有两种,一种是配置上的优化,一种是内核上的优化 实验准备:安装好一台Nginx服务器,IP:192.168.126.22,域名:www.accp.com 浏览器访问nginx服务器此时F12查看网页信息,可…

MySQL之表的约束

目录 一 空属性 定义 如何设置 示例 影响: 二 默认值 定义 示例 影响: 三 列描述 定义 示例 影响: 四 zerofill 定义: 示例: 影响: 五 主键 定义 主键的性质是什么: 为什么要…