jvm面试题30问

什么是JVM的跨平台?

在这里插入图片描述

什么是JVM的语言无关性?

在这里插入图片描述

什么是JVM的解释执行

在这里插入图片描述

什么是JIT?

在这里插入图片描述
JIT:在Java编程语言和环境中,即时编译器(JIT compiler,just-in-time compiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。

对象一定是在堆中创建吗?

几乎所有的对象都是在堆中创建,但这不是绝对。
热点代码指的是在程序运行时被频繁执行的代码段。
对象逃逸是指当我们在某个方法里创建了一个对象,这个对象除了被这个方法引用,还在方法体之外被其它的变量引用。
在这里插入图片描述

讲一讲JVM的10种垃圾回收器

在这里插入图片描述

什么是垃圾回收中的STW?

STW(stop the world)
会造成用户的卡顿!用户体验非常差!
在这里插入图片描述

什么是可达性分析算法?

可达性的链路分析
做完可达性分析之后,可达的对象就是存活的对象,反之,没有可达的对象就是垃圾,完成JVM中存活对象和垃圾对象的判断!
如果不使用可达性分析的话,使用引用计数法,循环引用的对象计数不为0。
在这里插入图片描述

JVM中的垃圾回收算法

JVM从诞生到现在只有三种垃圾回收算法,分别是:复制算法、标记清除算法和标记整理算法。
复制算法:将可用的内存一分为二,交换复制。效率比较高,适合于新生代。空间利用率只有50%。
标记清除算法:根据可达性分析进行标记,红色不可回收,灰色可回收。效率可以,但是垃圾回收之后内存不连续,存在内存碎片,大对象无法分配。
标记整理算法:在标记清除算法的基础上把存活对象移动到堆空间的一端,从而完成空间的整理。空间利用率可以,但效率比较低。
三种算法各有所长,又各有所短。
在这里插入图片描述

JVM的分代模型

新生代和老年代,在不同的代里面采用不同的垃圾回收算法
**为什么要进行分代?**因为对象的生命周期不一样,有的对象朝生夕死,但是有的对象生命周期比较长,如果堆内存不分代,所有对象存在相同的区域,那么垃圾回收的时候就会变的很复杂。分代后,垃圾回收就可以按区域的不同,采用不同的回收算法,保证整体垃圾回收的高效性。
在这里插入图片描述

CMS垃圾回收器

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。
垃圾回收依赖于可达性分析算法
GC Roots数量很少,一般不会很多,可以在初始标记的时候全暂停。
CMS垃圾回收器的特点
优点:进行垃圾回收的时候,部分工作可以并发,暂停时间比较短;
缺点:业务线程和垃圾回收线程同时运行,cpu核心数小于4的时候,CMS垃圾回收器的效率是比较低的;并发清理会出现一种情况,业务线程可以会产生新垃圾(浮动垃圾),本次垃圾回收是处理不了的;并发清理标记清除算法,会产生内存碎片,空间不连续,大对象无法分配。
在这里插入图片描述

G1垃圾回收器

为了实现暂停时间的可预测,使用化整为零的思想,将堆空间分成大小相等的一些独立区域,每个区域叫做region。
在这里插入图片描述

JVM的运行时数据区有哪些?

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

什么是堆内存?堆内存包含哪些部分?

为了提高复制算法的空间利用率,Eden占80%。(绝大数对象都是朝生夕死)
对象一般要经过15次垃圾回收,才能进入老年代。
不同的代采用不同的垃圾回收算法。
在这里插入图片描述

什么是内存溢出?

在这里插入图片描述

什么是内存泄漏?与内存溢出有什么关系?

在这里插入图片描述

对象头包括哪些部分?

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

给定一个具体的类,请分析对象的内存占用

在这里插入图片描述
在这里插入图片描述
对象的整个占用大小应该是8字节的整数倍。
最终实际占用:40个字节。

常用的JVM启动参数有哪些?

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

设置堆空间的最大值(-Xmx)应该要考虑哪些因素?

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

Java8默认使用的垃圾回收器是什么?

在这里插入图片描述

什么是并行垃圾收集?

在这里插入图片描述

什么是STW?什么是安全点,什么是安全区域?

STW STOP THE WORLD
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果CPU使用率突然飙升,你会怎么排查?

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

CMS、G1垃圾回收器中的三色标记你了解吗

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

类加载与类加载器

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

什么是双亲委派机制?它有什么作用?

在这里插入图片描述

G1收集器有哪些特点

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

哪些手段来排除OOM的问题?

在这里插入图片描述

使用过那些JVM相关的命令工具?

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

流量卡就该这么选,用起来性价比真的超高!

很多朋友会私信小编,让小编给大家推荐几款流量卡,在这里小编告诉大家,流量卡可以推荐,但是每个人的喜好不同,小编也忙不过来,今天,小编整理了一篇选购指南,大家可以参考选择&#xf…

2024 B2B企业出海营销白皮书(展会篇)

来源:科特勒&微吼 根据36氪研究院发布的《2023-2024年中国企业出海发展研究报告》中指出,随着全球化浪潮席卷以及中国智造的崛起,中国企业出海主力从过去的低附加值行业逐步扩展至信息技术、先进制造、医疗健康、汽车交通、新消费等附加…

106短信平台疑难解答:为何手机正常却收不到短信?

当您使用群发短信平台发送消息时,有时尽管系统提示发送成功,但手机却未能收到短信。这背后可能隐藏着一些不为人知的原因。 首先,我们要明确,在正常情况下,只要手机状态正常,都应该能够接收到短信。然而&am…

为什么站长们喜欢使用新加坡站群服务器呢?

为什么站长们喜欢使用新加坡站群服务器呢? 站群优化一直是站长们追逐的目标之一,而新加坡站群服务器则备受站长们的青睐。为什么会如此呢?让我们深入了解一下。 为什么站长们喜欢使用新加坡站群服务器呢? 站群,简单来说,就是一组相互关联…

Python专题:十、字典(1)

数据类型:字典,是一个集合性质的数据类型 字典的初始化 字典{关键字:数值} 新增元素 修改元素 字典元素访问 字典[关键字} in 操作符 字典关键字检测 字典元素遍历 ①遍历关键字

Android build.prop生成过程源码分析

Android的build.prop文件是在Android编译时刻收集的各种property【LCD density/语言/编译时间, etc.】&#xff1b;编译完成之后&#xff0c;文件生成在out/target/product/<board【OK1000】>/system/目录下&#xff1b;在Android运行时刻可以通过property_get()[c/c域] …

深度学习论文: LightGlue: Local Feature Matching at Light Speed

深度学习论文: LightGlue: Local Feature Matching at Light Speed LightGlue: Local Feature Matching at Light Speed PDF: https://arxiv.org/pdf/2306.13643 PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://github.com/shanglianlm0525/…

python数据分析——数据预处理

数据预处理 前言一、查看数据数据表的基本信息查看info&#xff08;&#xff09;示例 查看数据表的大小shape&#xff08;&#xff09;示例 数据格式的查看type()dtype&#xff08;&#xff09;dtypes&#xff08;&#xff09;示例一示例二 查看具体的数据分布describe()示例 二…

机器人学【一、刚体运动】

机器人学 文章目录 机器人学1. 刚体运动1.1 刚体变换刚体刚体变换 1.2 三维空间中的旋转运动群求质点坐标的相对变换旋转矩阵的合成法则用线性算子来计算叉积叉积的右手法则叉积用于计算线速度旋转的指数坐标Rodrigues公式计算旋转矩阵的例子四元数 1.3 三维空间中的刚体运动齐…

二分查找入门、二分查找模板

二分查找的具体实现是一个难点&#xff0c;挺复杂的&#xff0c;可以背住一个模板&#xff0c;然后以后再慢慢学习。下面是y总的二分模板(比较难懂&#xff0c;之后再学) y总的模板 二分的本质是在一个边界内&#xff0c;定义了两种不同的形状&#xff0c;其中某点是这两个性…

Golang | Leetcode Golang题解之第68题文本左右对齐

题目&#xff1a; 题解&#xff1a; // blank 返回长度为 n 的由空格组成的字符串 func blank(n int) string {return strings.Repeat(" ", n) }func fullJustify(words []string, maxWidth int) (ans []string) {right, n : 0, len(words)for {left : right // 当前…

详细解析DBC文件

《AUTOSAR谱系分解(ETAS工具链)》之总目录_autosar的uart模块-CSDN博客

Docker Desktop 修改容器的自启动设置

Docker Desktop 允许用户控制容器的自启动行为。如果你不希望某个容器在 Docker 启动时自动启动&#xff0c;你可以通过以下步骤来更改设置&#xff1a; 1. 打开 Docker Desktop 应用。 2. 点击右上角的设置&#xff08;Settings&#xff09;按钮&#xff0c;或者使用快捷键 Cm…

Hive Aggregation 聚合函数

Hive Aggregation 聚合函数 基础聚合 增强聚合

找最大数字-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第60讲。 找最大数字&#…

67万英语单词学习词典ACCESS\EXCEL数据库

这似乎是最多记录的英语单词学习词典&#xff0c;包含复数、过去分词等形式的单词。是一个针对想考级的人员辅助背单词学英语必备的数据&#xff0c;具体请自行查阅以下的相关截图。 有了数据才能想方设法做好产品&#xff0c;结合权威的记忆理论&#xff0c;充分调动用户的眼…

OpenSearch 与 Elasticsearch:7 个主要差异及如何选择

OpenSearch 与 Elasticsearch&#xff1a;7 个主要差异及如何选择 1. 什么是 Elasticsearch&#xff1f; Elasticsearch 是一个基于 Apache Lucene 构建的开源、RESTful、分布式搜索和分析引擎。它旨在处理大量数据&#xff0c;使其成为日志和事件数据管理的流行选择。 Elasti…

国产猫粮哪家强?福派斯三文鱼猫粮成新宠!

1️⃣ 品质保证&#xff1a;福派斯三文鱼猫粮是一款由国内知名宠物食品品牌生产的猫粮产品。该品牌有着严格的品质控制&#xff0c;确保每一粒猫粮都符合国家相关标准和规范&#xff0c;为猫咪提供安全、健康的食品。 2️⃣ 营养丰富&#xff1a;福派斯三文鱼猫粮采用新鲜三文鱼…

B/S模式的web通信(高并发服务器)

这里写目录标题 目标实现的目标 服务器代码&#xff08;采用epoll实现服务器&#xff09;整体框架main函数init_listen_fd函数&#xff08;负责对lfd初始化的那一系列操作&#xff09;epoll_run函数do_accept函数do_read函数内容补充&#xff1a;http中的getline函数 详解do_re…

ipv4手动设置网络的相关知识

基本知识 1.IP地址 IP地址 网络地址 主机地址(又称&#xff1a;主机号和网络号组成) 192.168.100.168&#xff08;IP地址&#xff09; 192.168.1.0 (网络地址) 0.0.0.168&#xff08;主机地址&#xff09; 2.家庭网络基础组成 3.子网掩码 作用&#xff1a;告诉计算机哪…
最新文章