Java的JVM自测题

文章目录

  • 一、运⾏时数据区中包含哪些区域?哪些线程共享?哪些线程独享?哪些区域可能会出现 OutOfMemoryError ?哪些区域不会出现 OutOfMemoryError ?
  • 二、说⼀下方法区和永久代的关系?
  • 三、Java 对象的创建过程?
  • 四、对象的访问定位的两种方式知道吗?各有什么优缺点。
  • 五、如何判断对象是否死亡(两种方法)。 讲⼀下可达性分析算法的流程。
  • 六、JDK 中有几种引用类型?分别的特点是什么?
  • 七、堆空间的基本结构了解吗?什么情况下对象会进⼊⽼年代?
  • 八、垃圾收集有哪些算法,各自的特点?
  • 九、有哪些常见的 GC?谈谈你对 Minor GC、还有 Full GC 的理解。Minor GC 与 Full GC 分别在什么时候发⽣? Minor GC 会发生 stop the world 现象吗?
  • 十、讲⼀下 CMS 垃圾收集器的四个步骤。CMS 有什么缺点?
  • 十一、并发标记要解决什么问题?并发标记带来了什么问题?如何解决并发扫描时对象消失问题?
  • 十二、G1 垃圾收集器的步骤。有什么缺点?
  • 十三、ZGC 了解吗?
  • 十四、JVM 中的安全点和安全区各代表什么?写屏障你了解吗?
  • 十五、虚拟机基础故障处理⼯具有哪些?
  • 十六、什么是字节码?类文件结构的组成了解吗?
  • 十七、类的⽣命周期?类加载的过程了解么?加载这⼀步主要做了什么事情?初始化阶段中哪⼏种情况必须对类初始化?
  • 十八、双亲委派模型了解么?如果我们不想⽤双亲委派模型怎么办?
  • 十九、双亲委派模型有什么好处?双亲委派模型是为了保证⼀个 Java 类在 JVM 中是唯⼀的?
  • 二十、JDK 中有哪些默认的类加载器?
  • 二十一、堆内存相关的 JVM 参数有哪些?你在项⽬中实际配置过了吗?
  • 二十二、如何对栈进⾏参数调优?
  • 二十二、你在项⽬中遇到过 GC 问题吗?怎么分析和解决的?
  • 二十二、GC 性能指标了解吗?调优原则呢?
  • 二十二、如何降低 Full GC 的频率?


一、运⾏时数据区中包含哪些区域?哪些线程共享?哪些线程独享?哪些区域可能会出现 OutOfMemoryError ?哪些区域不会出现 OutOfMemoryError ?

提示:把下⾯两张图记在⼼⾥!并且,你还要搞懂这些区域⼤概的作⽤是什么。


二、说⼀下方法区和永久代的关系?

提示:其实就有点像 Java 中接⼝和类的关系


三、Java 对象的创建过程?

提示:下图便是 Java 对象的创建过程,我建议最好是能默写出来,并且要掌握每⼀步在做什么


四、对象的访问定位的两种方式知道吗?各有什么优缺点。

提示:句柄和直接指针。


五、如何判断对象是否死亡(两种方法)。 讲⼀下可达性分析算法的流程。


六、JDK 中有几种引用类型?分别的特点是什么?

提示:JDK1.2 以后,Java 对引⽤的概念进⾏了扩充,将引⽤分为强引⽤、软引⽤、弱引⽤、虚引⽤ 四种(引⽤强度逐渐减弱)。对这些概念简单了解,有印象就可以了。


七、堆空间的基本结构了解吗?什么情况下对象会进⼊⽼年代?

提示:1. ⼤部分情况,对象都会⾸先在 Eden 区域分配。2. ⻓期存活的对象将进⼊⽼年代。3. ⼤对象直接进⼊⽼年代。


八、垃圾收集有哪些算法,各自的特点?

``


九、有哪些常见的 GC?谈谈你对 Minor GC、还有 Full GC 的理解。Minor GC 与 Full GC 分别在什么时候发⽣? Minor GC 会发生 stop the world 现象吗?

``


十、讲⼀下 CMS 垃圾收集器的四个步骤。CMS 有什么缺点?

``


十一、并发标记要解决什么问题?并发标记带来了什么问题?如何解决并发扫描时对象消失问题?

``


十二、G1 垃圾收集器的步骤。有什么缺点?

``


十三、ZGC 了解吗?

``


十四、JVM 中的安全点和安全区各代表什么?写屏障你了解吗?

``


十五、虚拟机基础故障处理⼯具有哪些?

提示: 简单了解⼏个最重要的即可!


十六、什么是字节码?类文件结构的组成了解吗?

提示:在 Java 中,JVM 可以理解的代码就叫做 字节码 (即扩展名为 .class 的⽂件)。 ClassFile 的结构如下:


十七、类的⽣命周期?类加载的过程了解么?加载这⼀步主要做了什么事情?初始化阶段中哪⼏种情况必须对类初始化?


十八、双亲委派模型了解么?如果我们不想⽤双亲委派模型怎么办?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


十九、双亲委派模型有什么好处?双亲委派模型是为了保证⼀个 Java 类在 JVM 中是唯⼀的?


二十、JDK 中有哪些默认的类加载器?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


二十一、堆内存相关的 JVM 参数有哪些?你在项⽬中实际配置过了吗?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


二十二、如何对栈进⾏参数调优?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


二十二、你在项⽬中遇到过 GC 问题吗?怎么分析和解决的?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


二十二、GC 性能指标了解吗?调优原则呢?

可以参考 Tomcat 的⾃定义类加载器 WebAppClassLoader


二十二、如何降低 Full GC 的频率?


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

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

相关文章

【Linux】进程间通信2——命名管道

1. 命名管道(FIFO) 1.1. 基本概念 简单,给匿名管道起个名字就变成了命名管道 那么如何给 匿名管道 起名字呢? 结合文件系统,给匿名管道这个纯纯的内存文件分配 inode,将文件名与之构建联系,关键点在于不给它分配 D…

2024 年最新 Python 基于 LangChain 框架基础案例详细教程(更新中)

LangChain 框架搭建 安装 langchain pip install langchain -i https://mirrors.aliyun.com/pypi/simple/安装 langchain-openai pip install langchain-openai -i https://mirrors.aliyun.com/pypi/simple/ChatOpenAI 配置环境变量 环境变量 OPENAI_API_KEYOpenAI API 密钥…

生成式人工智能如何改变客户服务

生成式人工智能不仅重新定义了品牌与客户的互动方式,还重新定义了品牌如何优化内部资源,以提供更加个性化和高效的服务。 了解在就业和效率方面的挑战和机遇,使用生成式人工智能工具进行客户服务和支持任务。 生成式人工智能不仅重新定义了品…

【Quartus 13.0】EP1C3144I7 部署4*6矩阵键盘

仿照 正点原子 的 Sample 修改 V2手册 P266 没有用这个 给出的手动按键控制的矩阵模块 为 4*6 矩阵键盘外接模块 每一个按键自带led,所以对应的接口是合并在一起的一个引脚 按下后 LED 亮,vice versa 底部 LED*8 目前不清楚有什么用 或许可以变成 16进…

外链跳转到小程序原生的企业客服

备注: 在外链中,不能直接调起小程序原生客服(wx.openCustomerServiceChat)。 解决方法: 小程序里新增一个原生的过渡页面。外链跳转到过渡页面,在过渡页面添加点击事件,打开原生客服 在外链中…

Swift Combine — Publisher、Operator、Subscriber概念介绍

Combine框架介绍 Combine框架提供了一个声明式Swift API,用于处理随时间变化的值。这些值可以表示多种异步事件。Combine声明发布者公开发布可能随时间变化的值,并声明订阅者从发布者接收这些值。 Combine框架为应用程序如何处理事件提供了一种声明式的…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 02 Clos拓扑

本章回答以下问题: 什么是 Clos 拓扑,它与“接入 - 汇聚 - 核心”拓扑有何不同?Clos 拓扑的特征是什么?Clos 拓扑对数据中心网络的影响是什么? Clos拓扑 云原生数据中心基础设施的先行者们想要构建一种支持大规模水平扩展网络。 基本的Clos拓扑如图…

检查HIVE分区是否连续

检查HIVE分区是否连续 场景描述分区连续性检查语句 我们经常可能会有这样的诉求,需要对一张目标表进行分区检查,查看是否存在不连续的情况,该诉求频繁且重要,因此以下语句可以实现我们的诉求 场景描述 我们有一张表,…

精准营销是一种利用大数据和人工智能技术来定位目标客户的方法

精准营销是一种利用大数据和人工智能技术来定位目标客户的方法。下面是涉及到的用户类型和业务流程,以及开发难度评估: 用户类型: 活跃用户:经常使用产品或服务的用户。潜在用户:尚未使用产品或服务,但可能对其感兴趣的用户。流失用户:曾经使用过产品或服务,但已经停止使用或…

在Gradle中优雅地统一管理依赖

前言 不知大家在使用 Gradle 的时候是如何统一管理整个项目所需依赖的版本呢?尤其是在有多个模块的情况下。 曾经我写过 一篇文章 来介绍如何在 buildSrc 中使用常量来管理版本,但是实际上那种做法并不怎么优雅,甚至有些邪道。 当然&#…

记录一下 Chrome浏览器打印时崩溃问题

问题描述: 为了查看页面内存占用情况,按F2,打开Memory chrome浏览器点击“打印”按钮,或Ctrl P 时出现如下页面 一直以为是页面问题,每次打印的时候遇到这种 崩溃现象 就是重新刷新页面 但今天刚开一个页面,内存 …

【2024最新精简版】RabbitMQ面试篇

文章目录 Kafka和RabbitMQ什么区别惰性队列(Lazy Queues)是怎么实现的?RabbitMQ工作模式有哪些 ?你们项目中哪里用到了RabbitMQ ?为什么会选择使用RabbitMQ ? 有什么好处 ?使用RabbitMQ如何保证消息不丢失 ?消息的重复消费问题如何解决的…

Unity中使用UI组件实现场景切换——6.18山大软院项目实训

设置场景切换 在Unity项目中,首先需要准备几个场景,并在项目的“Build Settings”中添加这些场景,以确保SceneManager可以加载它们。本例中,我们假设已有几个场景编号依次为1到5。 脚本概述 我们创建了一个SwitchScene类&#…

在IDEA 2024.1.3 (Community Edition)中创建Maven项目

本篇博客承继自博客Windows系统Maven下载安装-CSDN博客 Maven版本:maven-3.9.5 修改设置: 首先先对Idea的Maven依赖进行设置;打开Idea,选择“Costomize”,选择最下边的"All settings" 之后找到Maven选项&…

利用LabVIEW项目管理和组织LabVIEW应用程序

如何利用LabVIEW项目管理和组织LabVIEW应用程序,提供了关于文件定义、磁盘上的文件组织、LabVIEW项目浏览器、交叉链接和相关资源的建议。这些推荐在开发前就应建立,以确保应用程序能扩展到大量VIs并适应多开发者环境。 目录 定义和识别应用程序文件 磁…

黑龙江等保测评与企业安全:携手共筑数字时代坚固防线

在数字化转型的浪潮中,黑龙江的企业正以前所未有的速度拥抱新技术,推动业务创新与增长。然而,随着信息技术的深入应用,网络安全风险也随之增加,尤其是对个人信息与敏感数据的保护成为企业不容忽视的重大课题。信息安全…

【运维项目经历|032】Hadoop大数据处理与分析平台构建项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目…

List, Set, Map, Queue介绍

Java集合框架是一组接口和实现这些接口的类的集合,它提供了对数据集合的高效率存储和操作。以下是Java集合框架中一些核心接口的介绍: 1.List: List是一个有序的集合,允许包含重复的元素。它提供了按插入顺序访问元素的方法&…

leetcode56 合并区间

题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 输入:intervals [[1,3],[2,6]…

6、 垃圾回收 浏览器事件循环

垃圾回收 & 浏览器事件循环 垃圾回收引用计数算法标记清除(mark-sweep)算法标记整理(Mark-Compact)算法 内存管理浏览器事件循环宏任务微任务整体流程 垃圾回收 垃圾回收,又称为:GC(garbag…