JAVA工程师面试专题-JVM篇

目录

一、运行时数据区

1、说一下JVM的主要组成部分及其作用?

2、说一下 JVM 运行时数据区 ?

3、说一下堆栈的区别

4、成员变量、局部变量、类变量分别存储在什么地方?

5、类常量池、运行时常量池、字符串常量池有什么区别?

6、JVM为什么使用元空间替换永久代

二、垃圾回收

1、GC是什么,为什么要GC?

2、Java 中都有哪些引用类型?

3、JVM如何判断一个对象是否可以被回收?

4、GC Root有哪些?

5、讲一下新生代、老年代、永久代的区别

6、JVM 分代年龄为什么是 15 ?可以是 25 吗?

7、Minor GC、Major GC、Full GC是什么

8、Minor GC过程

9、JVM 垃圾回收算法有哪些?

10、说一下 JVM 有哪些垃圾回收器?

11、JDK各版本默认垃圾收集器

12、G1垃圾收集器的特点

(1)并行和并发

(2)分代收集

(3)空间整合

(4)可预测的停顿时间模型

(5)缺点:

13、G1垃圾回收过程

14、JVM 中的三色标记法是什么?

15、说一下 CMS 垃圾回收器的工作原理

16、CMS收集器和G1收集器的区别

(1)使用范围不一样

(2)STW的时间

(3)垃圾碎片

(4)垃圾回收的过程不一样

17、如何选择垃圾收集器?


一、运行时数据区

1、说一下JVM的主要组成部分及其作用?

两个子系统:

  • 类加载器:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area

  • 执行引擎:执行classes中的指令

两个组件:

  • 运行时数据区:这就是我们常说的JVM的内存

  • 本地接口:与native libraries交互,是其它编程语言交互的接口

2、说一下 JVM 运行时数据区 ?

  • 程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器,字节码解析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能,都需要依赖这个计数器来完成(为什么要线程计数器?因为线程是不具备记忆功能)。

  • Java 虚拟机栈(Java Virtual Machine Stacks):每个方法在执行的同时都会在Java 虚拟机栈中创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息(栈帧就是Java虚拟机栈中的一个单位)。

  • 本地方法栈(Native Method Stack):与虚拟机栈的作用是一样的,只不过虚拟机栈是服务 Java方法的,而本地方法栈是为虚拟机调用 Native 方法服务的(Native 关键字修饰的方法是看不到的,Native 方法的源码大部分都是 C和C++ 的代码)。

  • Java 堆(Java Heap):Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存。

  • 方法区(Methed Area)

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

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

相关文章

在前后端分离项目中如何设置统一返回格式

目录 一、步骤一 二、步骤二 在前后端分离的项目中,为了方便前后端交互,后端往往需要给前端返回固定的数据格式,但不同的实体类返回格式不同,所以在真实开发中,我们将所有API接口设置返回统一的格式。基本上包括的有…

EventLoop整合与TimerWheel联合调试(整合二)

目录 概要 tcp_cli.cc tcp_srv.cc server.hpp 测试结果 第二次整合 概要 本主要是将以下模块进行整合测试 Poller模块与Channel模块整合-CSDN博客 时间轮设计-CSDN博客 timerfd的认识与基本使用-CSDN博客 整合基于的理念 tcp_cli.cc #include "../source/server.h…

ThreadLocal内存泄漏?

ThreadLocal内存泄漏? 在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露、强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这样情况发生,增…

Facebook与数字创新:引领社交媒体的数字化革命

在当今数字化时代,社交媒体已经成为了人们日常生活中不可或缺的一部分。而在众多社交媒体平台中,Facebook作为领头羊,一直致力于推动数字创新,引领着社交媒体的数字化革命。本文将探讨Facebook在数字创新方面的表现,以…

第100讲:MHA+Atlas实现MySQL主从复制读写分离分布式集群

文章目录 1.Atlas读写分离简介2.搭建MHA高可用MySQL主从复制集群3.部署配置Atlas读写分离中间件3.1.安装Atlas读写分离中间件3.2.配置读写分离3.3.启动Atlas读写分离 4.读写分离集群测试5.生产环境中创建一个用户通过Atlas使用6.Atlas通过管理接口实现在线管理7.Atlas自动分表 …

ETW Bypass

1.NET 程序集 像 Java 是由 JVM 托管的&#xff0c;.NET 程序集(比如C_Sharp.exe) 都是由 CLR 托管的 硬盘加载 从硬盘中读取加载到内存 通过三个接口可以启动 CLR 来对 .NET 程序集 进行硬盘加载 Program.cs&#xff1a; x64.cpp&#xff1a; Copy #include <iostream…

【已解决】PPT无法复制内容怎么办?

想要复制PPT文件里的内容&#xff0c;却发现复制不了&#xff0c;怎么办&#xff1f; 这种情况&#xff0c;一般是PPT文件被设置了以“只读方式”打开&#xff0c;“只读方式”下的PPT无法进行编辑更改&#xff0c;也无法进行复制粘贴的操作。 想要解决这个问题&#xff0c;我…

c语言---函数指针变量

目录 一、函数指针变量的概念二、函数指针变量的创建三、函数指针变量的使用 一、函数指针变量的概念 函数指针变量应该是用来存放函数地址的&#xff0c;未来通过地址能够调用函数的。 二、函数指针变量的创建 那么函数是否有地址呢&#xff1f; 接下来看看&#xff1a; #…

imazing软件安全吗?2024中文永久免费许可证

以下是iMazing更多的使用场景描述&#xff1a; iMazing3Mac-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49816 iMazing3Win-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49817 1. 数据迁移 当你换新的iOS设…

Outlook 中关闭特殊字符显示

故障现象&#xff1a; 不知道什么原因&#xff0c;Outlook发mail时候&#xff0c;突然显示如下的特殊字符&#xff0c;看起来非常不方便&#xff0c;需要关闭; 解决办法&#xff1a; 在Outlook正文里面&#xff0c;输入CtrlShift*&#xff08; 其中*是键盘数字8旁边的那个*&a…

KEIL软件新建工程示例

很感谢这位博主的分享&#xff0c;参考链接&#xff1a;KEIL软件安装教程 在实践的过程中&#xff0c;会有些不一样&#xff0c;把我遇到的问题也贴出来&#xff0c;谨做记录与参考。 一 在环境中配置相关文件&#xff08;第一种&#xff09; 1、新建一个文件夹demo&#xff…

IDEA的版本控制Local Changes和settings按钮显示问题

经常用idea的小伙伴应该对标题的这两个功能不陌生&#xff0c;特别是Local Changes 周日刚开工&#xff0c;我的idea就过期了&#xff0c;索性就下载了一个2023.3.3版本的&#xff0c;安装好打开一看&#xff0c;发现Local Changes 和 settings的按钮消失了&#xff0c;虽然说…

我的NPI项目之Android USB 系列(一) - 遥望和USB的相识

和USB应该是老朋友了&#xff0c;从2011年接触Android开发开始&#xff0c;就天天和USB打交道了。那时候还有不 对称扁头的usb/方口的usb&#xff0c;直到如今使用广泛的防反插USB3.0 type-C。 但是&#xff0c;一直有一个不是很清楚的问题萦绕在心头&#xff0c;那就是。先有…

韶音、南卡、Cleer怎么样?2024年主流产品硬核测评对比

​作为一位资深的开放式耳机使用者&#xff0c;我要强调&#xff0c;在选购耳机时应避免仅仅因为某款产品的流行度或是品牌名气而做出选择。适合自己需求的耳机才是最佳之选。我和我的团队经过多次测试&#xff0c;对比了几种市场上热门的开放式耳机&#xff0c;从中总结了我们…

【Algorithms 4】算法(第4版)学习笔记 09 - 3.2 二叉查找树

文章目录 前言参考目录学习笔记1&#xff1a;二叉树与二叉搜索树定义1.1&#xff1a;二叉树定义1.2&#xff1a;二叉搜索树定义1.3&#xff1a;Java定义1.4&#xff1a;BST基本实现1.5&#xff1a;BST demo 演示1.5.1&#xff1a;节点搜索成功命中演示1.5.2&#xff1a;节点搜索…

ElementUI table表格组件实现双击编辑单元格失去焦点还原,支持多单元格

在使用ElementUI table表格组件时有时需要双击单元格显示编辑状态&#xff0c;失去焦点时还原表格显示。 实现思路&#xff1a; 在数据中增加isFocus:false.控制是否显示在table中用cell-dblclick双击方法 先看效果&#xff1a; 上源码&#xff1a;在表格模板中用scope.row…

Nginx缓存相关配置解析

文章目录 前言配置示例proxy_cacheproxy_cache_pathproxy_cache_keyproxy_cache_validproxy_cache_lockproxy_cache_methodsproxy_cache_bypassproxy_no_cacheproxy_cache_min_usesadd_header 可选项 使用示例通过响应头判断是否走缓存 缓存手动删除原博客 前言 客户端需要访问…

10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 背景&#xff1a; 主要针对内网主机中的 域控提权漏洞&#xff0c;包含漏洞探针和漏洞复现利用。 1、横向移动-系统漏洞-CVE-2017-0146&#xff08;ms17-010&#xff0c;永恒之蓝&#xff0…

如何添加或编辑自定义WordPress侧边栏

WordPress侧边栏是许多WordPress网站上的固定装置。它为您的内容提供了一个垂直空间&#xff0c;您可以在其中帮助读者导航、增加电子邮件列表或社交关注、展示广告等。 因为它是许多WordPress网站不可或缺的一部分&#xff0c;所以我们认为侧边栏值得拥有自己的大型指南。在这…

SpringBootWeb学习笔记——12万字详细总结!

0. 写在前面 注:这套笔记是根据黑马程序员B站2023-3-21的视频学习的成果,其中省略了前端基础部分、Maven部分和数据库基础部分,详情可见目录。 注注:目前文章内结尾处多幅图片加载不出来,因为图片还存在本地没被传上来,过段时间再改~ 所有的Spring项目都基于Spring Fra…