面试官:Java虚拟机是什么,Java虚拟机的内存模型是什么样子的?

news2024/12/28 10:29:49

哈喽!大家好,我是小奇,一个专给面试官添堵的撑序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!

文章目录

  • 一、前言
  • 二、面试
  • 三、总结

一、前言

最近关注一个公司好久了, 但是他们居然说已经招收到合适的人了,那我肯定不能坐以待毙。。。

在这里插入图片描述

二、面试

面试官:我看你简历上写的精通Java虚拟机?

我:准确来说不是精通,而是登峰造极。

面试官:那你说一下JVM虚拟机的内存模型吧

我:JVM虚拟机中有一个运行时数据区,里面主要分为程序计数器、虚拟机栈、本地方法栈、堆、方法区

在这里插入图片描述

面试官:能不能详细介绍一下这几个区域都是干什么的吗

1.程序计数器:简单来说每一个线程在执行代码的时候执行到哪一行是有一个记录的,比如线程A执行到代码第10行了这个时候在线程A中是有一个程序计数器来记录10这一行。程序计数器在线程中是私有的。那么他有什么好处呢?虽然我们开发的时候可以使用多线程来开发,但是CPU在执行A线程的时候B线程就需要等待,等到CPU去执行A线程的时候B线程又需要等待了,所以说如果这个时候CPU去执行B线程,那么执行完后再回来执行A线程的时候就知道之前执行到哪一行了,可以从这一行接着执行。

2.虚拟机栈:与程序计数器一样,虚拟机栈也是线程私有的,虚拟机是栈是存放执行方法的时候用到的一些信息,例如在执行方法的时候虚拟机就会创建一个栈帧用于存储局部变量表(表里是局部变量)、操作数栈(如果要进行一些数的计算,那么会把数先读取到操作数栈中进行操作最后赋值到局部变量表中)、动态链接、方法出口等信息。

3.堆:堆是线程共享的,堆是虚拟机所管理的内存中最大的一块,一般优化就是优化这块内存,比如我们Student st = new Student();那么我们新创建出来的对象就在堆内存里。

4.本地方法栈:本地方法栈是用来执行本地方法的时候所使用的,例如Java中我们会看到很多Native方法,这些方法使用例如c语言写的,Java中只是调用。

在这里插入图片描述

5.方法区:方法区是线程共享的,它用于存储已被虚拟机加载的类型信息、常量、静态变量等。在方法区中还包含一个运行时常量池部分,这一部分用于存放编译期生成的各种字面量与符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中,所谓符号引用其实就是将一个例如main方法这个方法引用转化为指针应用,可以更加快速的找到这个方法在磁盘中的真正位置

面试官:确实有些东西,那你继续关注我们公司吧,等有空位了你再来?

我:奸商啊。。。

三、总结

文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】的好文章,获取我为大家准备的资料。

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

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

相关文章

EmguCV学习笔记 VB.Net 2.S 特别示例

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSD…

el-image 图片预览时 与 el-table (或avue-crud) 样式冲突 的解决

问题: 解决 <style scoped> ::v-deep(.el-table__cell) {position: static !important; } </style> 后效果

SD-WAN视频汇聚网关,帮助企业省去公网服务器费用与流量费用,低成本、高可靠建设视频汇聚与管控平台,助力视频企业级智能应用

在介绍方案之前&#xff0c;我们先算一笔账&#xff0c;传统的B端项目大多数的场景是&#xff1a; 1、多个分布在不同区域&#xff0c;不同网络的现场需要进行视频设备的统一汇聚管理&#xff1b; 2、多种不同类型厂家和型号的设备需要接入&#xff1b; 3、需要接入各种设备的实…

ARM 裸机与 Linux 驱动对比及 Linux 内核入门

目录 ARM裸机代码和驱动的区别 Linux系统组成 内核五大功能 设备驱动分类 内核类型 驱动模块 驱动模块示例 Makefile配置 命令 编码辅助工具 内核中的打印函数 printk 函数 修改打印级别 ​编辑 打印级别含义 驱动多文件编译 示例 模块传递参数 命令行传递参数…

Keepalived知识点整理

Keepalived知识点整理 高可用集群 keeaplived高可用集群集群类型系统可用性实现高可用VRRP:Virtual Router Redundancy ProtocolVRRP相关术语 keepalived简介keeplived架构配置文件组成部分配置文件主要部分的解释说明: 环境配置ka1ka2realserver1realserver2 实验1:实验2独立日…

jetson循环输入密码登录不进GUI桌面环境

大概安装了pip, opencv, nvidia-jetpack&#xff0c;添加了环境变量&#xff0c;重启后&#xff0c;Jetson orin nano 登录不进去GUI桌面系统&#xff0c;输入密码后&#xff0c;又出现登录界面要求输入密码&#xff0c;如此循环&#xff0c;没有其他报错。 注意到在启动界面有…

天地伟业入职智鼎测评题库:EQT情商测验、IQCAT思维能力自适应测验

天地伟业智鼎题库EQT情商测验 情商测验采用关键事件法提取和概括人们在社会生活中发生的情景了解作答者在面对典型的工作、生活情景时最可能采取的做法&#xff0c;考察作答者的情绪觉察、情绪调节、自我激励、同理心、社交技能这5种重要的情绪智力&#xff0c;在销售人员和管理…

与人打交道的七个绝招

与人打交道的七个绝招&#xff0c;学会了让你混得风生水起&#xff01; 一、跟强者打交道&#xff0c;别绕圈子。就事论事&#xff0c;直奔主题&#xff1b; 二、跟没钱的人打交道&#xff0c;就直接告诉他能挣多少钱&#xff1b; 三、跟小人打交道&#xff0c;越虚假越好&…

i.MX6裸机开发(2):LED灯——汇编实现

本章主要包括两部分&#xff0c;第一部分讲解i.MX6ULL的GPIO配置方法以及常用寄存器介绍&#xff0c; i.MX6ULL的GPIO配置方法与单片机稍有不同&#xff0c;我们将详细介绍这部分内容。 第二部分讲解具体的实现代码以及程序的编译下载。 学习重点&#xff1a; 掌握i.MX6ULL GP…

YOLOV8网络结构|搞懂Backbone-Conv

参数量计算: (输入通道*w)*(输出通道*w)*k^2+(输出通道*w)*2 w是模型缩放里面的width - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 输出通道c2=64,k=3,s=2 P1/2 特征图变小一半 先定义算子层 再搭一个forward前向传播 class Conv(nn.Module):"""Standard convo…

《Techporters架构搭建》-Day06 国际化

什么是国际化&#xff1f; 国际化&#xff0c;也叫i18n&#xff0c;为什么叫i18n呢&#xff1f; "i18n"是国际化&#xff08;internationalization&#xff09;的缩写&#xff0c;数字18代表了国际化这个单词中间的字母数量。类似这样的缩写还有k8s&#xff08;kube…

Ubuntu离线安装库并解决依赖关系

&#xff08;1&#xff09;起因 安装插件出现库未找到的错误 configure: error: curses library is required but not found.&#xff08;2&#xff09;解决方法 手动到Ubuntu的库发布网页下载 http://packages.ubuntu.com/ 选择系统对应架构的版本下载&#xff0c;然后上传…

AI语言大模型商业价值深度解析

点击蓝字 关注我 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;特别是深度学习算法的进步&#xff0c;AI语言大模型在自然语言处理领域的表现日益突出。国内外多种语言大模型如&#xff1a;OpenAi 的 ChatGpt&#xff0c;阿里通义千问&#xff0c;百度文心…

计算机网络之TCP序号,确认序号和报文传输时间

开篇提示 本篇适合于了解基础知识&#xff0c;进行扩展提高的使用&#xff0c;附带考研习题以及解析。 TCP序号和确认序号的区别 TCP首部中有序号和确认序号&#xff0c;他们都是4个字节&#xff08;4B&#xff09;&#xff0c;且在数据传输中有很重要的意义&#xff0c;那么两…

在Net8.0中使用 MQTTnet 开源库实现 MQTT 应用程序开发(实践)

1. 介绍 MQTTnet 是一个强大的开源 MQTT 客户端库&#xff0c;适用于 C# 平台。它提供了丰富的功能和灵活的 API&#xff0c;可以轻松地构建基于 MQTT 协议的应用程序。本文将逐步学习如何使用 MQTTnet 库创建 MQTT 客户端&#xff0c;并实现基本的发布、订阅功能。 简介 什么…

无缝融入,即刻智能[二]:Dify-LLM平台(聊天智能助手、AI工作流)快速使用指南,42K+星标见证专属智能方案

无缝融入,即刻智能[二]:Dify-LLM平台(聊天智能助手、AI工作流)快速使用指南,42K+星标见证专属智能方案 1.快速创建应用 你可以通过 3 种方式在 Dify 的工作室内创建应用: 基于应用模板创建(新手推荐) 创建一个空白应用 通过 DSL 文件(本地 / 在线)创建应用 从模板创建…

六级英语翻译

大纲解读 1. 考查方式&#xff1a;段落汉译英。 2. 涉及主题&#xff1a;中国的历史、文化、经济、社会发展等。 3. 篇幅&#xff1a;六级为180-200个汉字。 4. *卷面分&#xff1a;106.5 / 710。 5. *考试时长&#xff1a;30分钟。 第一步&#xff1a;Extracting&…

Nvidia AI 发布 Llama-Minitron 3.1 4B:通过修剪和提炼 Llama 3.1 8B 构建的新语言模型

Nvidia 刚刚发布了语言模型的新版本&#xff0c;不过这次是一个小型语言模型&#xff1a;Llama-3.1-Minitron 4B 模型。这意味着它是语言模型不断发展的重要步骤之一&#xff0c;通过剪枝和知识提炼等尖端技术&#xff0c;将大型模型的效率与小型模型相结合。 Llama-3.1-Minitr…

Qt动画效果、动画曲线

Qt动画效果 QPropertyAnimation *animation new QPropertyAnimation(labelWin, "geometry",this); // 创建胜利标签动画animation->setStartValue(labelWin->geometry()); // 设置动画的起始位置animation->setEndValue(QRect(labelWin->x(), labelW…

Servbay 1.40版支持MySQL了,快升级吧。

全新的服务管理界面及MySQL支持 现在&#xff0c;你可以在ServBay中使用MySQL了。除了带来全新的服务管理界面外&#xff0c;我们还为你带来了MySQL5.1-MySQL9.0的所有版本&#xff0c;满足你对数据管理的一切需求。 全新的数据库管理功能 通过新的数据库管理功能&#xff0c…