Java面试常见问题-JVM篇

news2024/11/17 6:42:54

JVM面试问题汇总①

  • 什么是字节码,采用字节码的好处是什么
  • ⭐java类加载器有哪些
  • ⭐双亲委派模型
  • ⭐⭐GC是如何判断对象可以被回收


总结了目前主流平台中常见的面试题,标⭐为重点!
第一次更新节点:2023.1.8

在这里插入图片描述


什么是字节码,采用字节码的好处是什么

  • Java中的编译器和解释器:
    Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口
    编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。
    每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。这也就是解释了Java的编译与解释并存的特点。
    Java源代码—>编译器—>jvm可执行的Java字节码(即虚拟指令)—>jvm—>jvm中解释器…–>机器可执行的二进制机器码---->程序运行。
  • 采用字节码的好处:
    Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行

⭐java类加载器有哪些

JDK自带有三个类加载器: BootStrapClassLoaderExtClassLoaderAppClassLoader

  • BootStrapClassLoader是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME%lib下的jar包和class文件。
  • ExtClassLoader是AppClassLoader的父类加载器,负责加载%JAVA_HOME%/lib/ext文件夹下的jar包和class类。
  • AppClassLoader是自定义类加载器的父类,负责加载classpath下的类文件。系统类加载器,线程上下文加载器
  • 继承ClassLoader实现自定义类加载器

⭐双亲委派模型

在这里插入图片描述
双亲委派模型的好处:

  • 主要是为了安全性,避免用户自己编写的类动态替换Java的一些核心类,比如String.
  • 同时也避免了类的重复加载,因为JVM中区分不同类,不仅仅是根据类名,相同的class文件被不同的ClassLoader加载就是不同的两个类

⭐⭐GC是如何判断对象可以被回收

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

相关文章

用nvidia-smi查看GPU的状态时,能耗pwr显示为ERR!

用nvidia-smi查看GPU的状态时,能耗pwr显示为ERR! 解决方式: 以下代码查看具体的报错: dmesg -l err 如果有: NVRM:***说明硬件问题,需要更换 如果无错误,则参考如下: 1. 将你的工作站或者服务器报错的…

车载激光雷达赛道「新窗口」

车载激光雷达的降本逻辑,除了前装量产规模的加速,还有背后核心供应链的驱动。这也被视为激光雷达新周期的核心竞争力。 Lumotive是一家由微软创始人比尔盖茨投资的初创公司,为激光雷达公司提供基于波束转向技术的核心元器件,采用液…

【寒假每日一题】DAY1.水仙花数

一、题目描述 求0~100000之间的所有“水仙花数”并输出。 什么是水仙花数: “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水…

前端vue中ts无法识别引入的vue文件,提示找不到xxx.vue模块的解决【引入新建页面或者通过router引入时报错】

一、文章引导 #mermaid-svg-7KdCeocZ1DbrWrKC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7KdCeocZ1DbrWrKC .error-icon{fill:#552222;}#mermaid-svg-7KdCeocZ1DbrWrKC .error-text{fill:#552222;stroke:#55222…

联合证券|“仰望”概念爆发,多股涨停!人气龙头股罕见“炸板”

今日涨停股中,以封单金额核算,今飞凯达、联泓新科、灵通动力等涨停板封单资金最多。 涨停家数回落 1月6日,沪深两市股价收盘涨停的有37只,跌停股有14只。下午盘面震动,炸板数量增多,兔宝宝、中远海科、久其…

64. 锚框

1. 锚框 锚框是用来预测真实的边缘框。 2. loU-交并比 ioU用来计算两个框之间的相似度 0表示无重叠,1表示重合 这是Jacquard指数的一个特殊情况 给定两个集合A和B: 杰卡德系数(Jaccard)可以衡量两组之间的相似性。 给定集合A和…

D. Boris and His Amazing Haircut(线段树)

传送门题意:给定长度为 n 的数组 A ,代表 Boris 现在的头发长度,和一个长度为 n 的数组 B ,代表他希望的发型的头发长度。理发师手里有 m 把剪刀,每个都只能用一次,剪刀的所剪的高度用 xi 给出。 对于每一把…

ASO优化之苹果和安卓的优化思路

大家都知道,ASO优化是指应用商店的搜索优化,其目的就是通过关键词的覆盖,让APP的搜索排名靠前,带来更多的曝光和用户下载量。 安卓ASO优化的思路: 1,关键词的覆盖。由于现在大部分的安卓商店为了商业化,所以后台几乎…

【C语言进阶】指针经典笔试题

作者:匿名者Unit 目录指针笔试题eg1.eg2.eg3.eg4.指针笔试题 eg1. 我们先来看第一题: int main() {int a[4] { 1, 2, 3, 4 };int *ptr1 (int *)(&a 1);int *ptr2 (int *)((int)a 1);printf( "%x,%x", ptr1[-1], *ptr2);return 0; }我们先来分析ptr1&…

初级篇Nginx笔记

第一章、Nginx的目录结构以及运行原理Nginx的目录结构[rootlocalhost ~]# tree /usr/local/nginx/usr/local/nginx├── client_body_temp # POST 大文件暂存目录├── conf # Nginx所有配置文件的目录│ ├── fastcgi.conf # fastcgi相关参数的配置文件│ ├── fastcgi.…

在maven项目当中创建第一个jdbc程序

大家好&#xff0c;今天给大家分享在Maven环境中创建jdbc程序 这是Maven项目的创建方式 跟着一步一步做就可以了 然后&#xff0c;创建好的Maven项目应该是这样的 导入相关的依赖 <dependencies><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-ja…

PHP date() 函数

PHP date() 函数用于格式化时间/日期。 PHP date() 函数 PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。 时间戳是一个字符序列&#xff0c;表示一定的事件发生的日期/时间。 语法 string date ( string $format [, int $timestamp ] ) 参数描述format必需。规…

Python下载ts文件视频且合并

目录 一、ts文件的由来 二、下载ts文件 1.下载index.m3u8&#xff0c;并做相应处理 2.下载ts文件 三、合并ts文件 一、ts文件的由来 ts文件&#xff0c;ts即"Transport Stream"的缩写&#xff0c;特点就是要求从视频流的任一片段开始都是可以独立解码的&#xff…

Pytorch 权重衰减

目录 1、权重衰减 2、L2正则化和L1正则化 3、高维线性回归演示权重衰减 1、权重衰减 一般来说&#xff0c;我们总是可以通过去收集更多的训练数据来缓解过拟合。 但这可能成本很高&#xff0c;耗时颇多&#xff0c;或者完全超出我们的控制&#xff0c;因而在短期内不可能做到…

OpenTelemetry日志体系

前言 OpenTelemetry为了实现其可观测性有三大体系&#xff1a;Trace&#xff0c;Metrics和Log。本文将对于OpenTelemetry实现的日志体系进行详细的讲述。 日志 说到日志相比大家都能侃侃而谈&#xff1a;帮助快速定位出现的问题&#xff0c;数据追踪&#xff0c;性能分析等等…

联合证券|新年再现“A吃A” 建发股份拟控股美凯龙

2022年&#xff0c;A股上市公司之间的并购超越10起。2023年伊始&#xff0c;上市公司“A吃A”或将再添新事例。 建发股份(600153)1月8日晚公告&#xff0c;公司正在谋划经过现金方法协议收购红星美凯龙控股集团有限公司&#xff08;以下简称“红星控股”&#xff09;持有的美凯…

导致 MySQL 索引失效

1、索引失效情况1&#xff1a;非最左匹配 最左匹配原则指的是&#xff0c;以最左边的为起点字段查询可以使用联合索引&#xff0c;否则将不能使用联合索引。 我们本文的联合索引的字段顺序是 sn name age&#xff0c;我们假设它们的顺序是 A B C&#xff0c;以下联合索引的…

YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8!

YOLOv8是Ultralytics开发的 YOLO&#xff08;You Only Look Once&#xff09;物体检测和图像分割模型的最新版本&#xff0c;详细介绍可以参考Ultralytics发布的网址&#xff0c;可以通过ultralytics python 包获取代码&#xff0c;暂时还没有官方公布代码 安装ultralytics py…

再见,Python 循环,向量化已超神

使用向量化 -- Python中循环的超级快速替代品 我们在几乎所有的编程语言中都学习过循环。所以&#xff0c;默认情况下&#xff0c;只要有重复性的操作&#xff0c;我们就会开始实施循环。但是当我们处理大量的迭代&#xff08;数百万/数十亿行&#xff09;时&#xff0c;使用循…

啊哈哈哈,2023年Python学习清单来喽;这清单都上齐了,怎么不收藏啊

不知不觉已经在CSDN写了三百多篇博客&#xff0c;这些博客中&#xff0c;Python相关的内容占了绝大多数&#xff0c;而这些与Python有关的内容中&#xff0c;绝大多数又都是我个人学习的总结&#xff0c;本文希望把我的Python学习过程做一个总结&#xff0c;也希望能够帮助不同…