Java面试题分享-JVM

经典面试题 之 JVM调优 JVM调优涉及到两个很重要的概念:吞吐量和响应时间。jvm调优主要是针对他们进行调整优化,达到一个理想的目标,根据业务确定目标是吞吐量优先还是响应时间优先。一、调优步骤 调优的前提是熟悉业务场景,先判断出当前业务场景是吞吐量优先还是响应时间优先。调优需要建立在监控之上,由压力测试来判断是否达到业务要求和性能要求。 调优的步骤大致可以分为: 1.熟悉业务场景,了解当前业务系统的要求,是吞吐量优先还是响应时间优先; 2.选择合适的垃圾回收器组合,如果是吞 阅读详情

问:介绍下JVM的内存模型
答:JVM 分为堆区和栈区,还有方法区,本地方法栈,程序计数器,初始化的对象放在堆里面,引用放在栈里面,class类信息,常量池,static变量,等放在方法区。

问:GC的常用算法有那些
答:可达性分析算法,引用计数算法,标记-清除算法,标记-整理算法,复制算法,分代收集算法。

问:Minor GC与Full GC分别在什么时候发生
答:新生代内存不够用时候发生MGC,JVM内存不够的时候发生FGC。

问:SafePoint是什么
答:GC的时候必须要等到Java线程都进入到safepoint的时候VMThread才能开始执行GC。

问:GC收集器有哪些
答:CMS收集器:获取最短回收停顿时间,适合互联网站或者B/S的服务端,标记—清除算法。
G1收集器:一款面向服务端应用的垃圾收集器,并行与并发,分代收集,标记-整理算法。
串行收集器
并行收集器

问:类加载的五个过程
答:加载、验证、准备、解析、初始化使用和卸载了,通过全限定名来加载生成class对象,然后进行验证这个class文件,包括元数据验证,字节码校验等,初始化就是开始执行static代码块和给static初始化值。

问:双亲委派模型和加载器
答:Bootstrap ClassLoader:启动类加载器,Extension ClassLoader:扩展类加载器,ApplicationClassLoader:系统类加载器。

问:JVM性能调优有那些措施
答:设定堆最小内存大小,设定垃圾回收器年轻代用串行,年老代并行,响应优先选择GMS,吞吐量高选择G1。

问:介绍下JVM中的锁
答:无锁,偏向锁,轻量级锁,重量级锁。

问:引用有那些
答:强引用:new出的对象之类的引用,只要强引用还在,永远不会回收。软引用:引用但非必须的对象,内存溢出异常之前回收。弱引用:非必须的对象,对象能生存到下一次垃圾收集发生之前。虚引用:对生存时间无影响,在垃圾回收时得到通知

问:volatile
答:保证此变量对所有线程的可见性,禁止指令重排序优化,volatile修饰的变量不一定是线程安全的,a++。

关于JVM虚拟机调优的20道高级面试题 JVM内存模型是Java虚拟机在执行Java程序时,对内存进行逻辑划分的一种抽象模型。程序计数器:每个线程都有一个独立的程序计数器,用于存储下一条要执行的指令的地址。这样当线程恢复执行时,可以知道从哪里开始执行。虚拟机栈:每个线程也有一个私有的虚拟机栈,用于存储局部变量、操作数栈、动态链接和方法出口等信息。这个栈在方法调用和返回时扮演着重要角色。本地方法栈:与虚拟机栈类似,本地方法栈主要用于支持本地方法的调用。堆:堆是JVM内存模型中最大的一块内存区域,主要用于存储对象实例。 阅读详情

相关推荐

这些年,为了进大厂背过的Java面试题(JVM篇),全在这儿了!

作为一名有着 10 年 Java 开发经验的老鸟,回想起当年为了进大厂疯狂背面试题的日子,真是感慨万千。 如今市面上的面试题分享大多泛泛而谈,对于真正想提升技术、应对大厂面试的小伙伴帮助有限。 各位coder们都知道,JVM(Java 虚拟机)是 Java 语言的核心,也是面试中的高频考点。尤其是在冲击像阿里这样的大厂时,对 JVM 的深入理解更是必不可少。 今天就把这些宝贵的经验和面试题分享给大家,希望能帮助大家少走弯路,顺利拿下心仪的 offer。

十年Java老兵的实战笔记,带你手搓代码! 1209

常见面试题之JVM实践(调优)

JVM调优的参数可以在哪里设置参数值?用的JVM调优的参数都有哪些?说一下JVM调优的工具?java内存泄露的排查思路?CPU飙高排查方案与思路?jps输出JVM中运行的进程状态信息。jstack查看java进程内线程的堆栈信息。jmap用于生成堆转存快照。jstat用于JVM统计监测工具。还有一些可视化工具,像jconsole和VisualVM等。

时代各有不同,青春一脉相承。 3721

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 484

高频面试题 ----------JVM调优

是将内存缩小为了原来的一半,减少了实际可用的内存。现在的商业虚拟机都采用这种收集算法来回收新生代,IBM公司的专门研究表明,新生代中的对象98%是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。更关键的是,如果不想浪费50%的空间,就需要有额外的空间进行分配担保,以应对被使用的内存中所有对象都100%存活的极端情况,所以在老年代一般不能直接选用这种算法。......

没有简介 9686

研一脑电小白日记 之 EEGLAB预处理实战指南

本文为脑电研究新手提供了一份详尽的EEGLAB预处理实战指南。从MATLAB与EEGLAB环境搭建、使用NeuracleEEGFileReader插件导入BDF格式数据开始,逐步讲解了电极定位、滤波、降采样、ICA去伪迹等核心步骤,旨在帮助初学者高效完成脑电数据预处理,为后续分析奠定坚实基础。

weixin_29230649的博客 557

实现高精度卷积混响--MATLAB仿真篇

一、前言 之前在STM32F407上现实了直播声卡,实现的经典Schroeder混响模型和Moorer混响模型,得到不错效果。后来得知卷积混响最为真实地表现空间的特性,所以也就尝试在MCU上实现一个高精度的卷积混响(卷积点数为32768),目前MCU出来的混响效果算得上一流水准,本人也在计划在ADI的21489或者SC584上更高精度的卷积混响。 二、卷积方式 1、conv1是使用MATLAB自带卷积函数conv 2、conv2和conv3是改进后卷积过程,具有减少运算量特点,方便嵌入式移植 clear;

Six44的博客 5079

【金三银四】JVM虚拟机面试题(2021最新版)

目录 前言 1.什么情况下会发生栈内存溢出。 2.详解JVM内存模型 3.JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。 4. JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代 5.你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。 6.JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。 7.简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

SQY0809的博客 4622

网络工程系统CAD图:从设计到落地的关键技能与实战指南

网络工程并不只是配置路由器和交换机,真正的核心在于将设计方案转化为可施工的物理图纸。网络工程系统CAD图正是连接逻辑设计与物理世界的桥梁,它涵盖综合布线、信息点布置、桥架路由、弱电间规划等关键内容。理解并掌握这套图纸体系,是网络工程师从基础设备调试走向项目主导者、弱电总工乃至网络架构师的重要分水岭。在园区网、数据中心、智能楼宇等真实场景中,一套规范的系统CAD图直接决定了施工质量、验收效率与后期运维的可靠性。本文从基础概念出发,拆解图纸的组成层次、绘制流程和软件工作流,并结合学习路线与就业方向,帮助初学者建

weixin_33860553的博客 391

java堆栈面试题_Java(JVM)面试题分享

原标题:Java(JVM)面试题分享JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机本质是就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指...

weixin_29233333的博客 977

告别Keil4!手把手教你用Keil C51 V9.61编译51单片机代码(附最新激活方法)

本文详细介绍了Keil C51 V9.61在51单片机开发中的全栈升级指南,包括编译速度提升、调试器性能优化和现代开发支持等核心优势。通过智能安装方案、项目迁移实战和新特性深度应用,帮助开发者告别Keil4,大幅提升开发效率。附有最新激活方法和实用技巧,适用于嵌入式开发工程师。

weixin_26886855的博客 420

LVGL(lv_table)

LVGL中的lv_table是一个轻量级表格控件,用于显示行列式文本数据。它支持设置单元格内容/样式、行列调整、事件响应等基础功能,适用于参数配置、数据展示等场景。通过API可快速创建表格,设置行列数、填充数据,并自定义对齐方式与样式。但需注意默认无滚动条、行数限制等问题。该控件适合简单表格需求,复杂交互需结合自定义事件处理。

m0_49476241的博客 1263

java 培训 JVM 面试题分享

一、JVM 基础知识 1)Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答: 我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序。 而这个过程,我们编写的

m0_70565884的博客 297

大疆司空 2 私有化部署:FH2、Terra、4G 三大服务区别详解

摘要: 司空2私有版包含三大模块:FH2(核心平台,必选)、Terra(建模算力,需NVIDIA显卡)、4G(内网图传)。FH2是基础,支持设备管理与任务调度;Terra适用于测绘建模场景,依赖GPU算力;4G模块保障复杂环境下的图传稳定性,适合纯内网部署。选择逻辑:先部署FH2,再按需添加Terra(需显卡)或4G(需内网支持),避免资源浪费。

2501_93651177的博客 579

BATJ高级Java面试题分享:JVM+Redis+Kafka +数据库+设计模式

今天将与大家分享BATJ高级Java面试题,涵盖了JVM、Redis、Kafka、数据库和设计模式等多个重要主题。作为顶尖科技公司的代表,BATJ(指百度、阿里巴巴、腾讯、京东)在Java面试中常常提出具有挑战性的问题。我们将深入剖析这些面试题,包括对JVM内存模型、垃圾回收算法、Redis的数据结构和应用场景、Kafka的消息队列机制、数据库的优化和扩展、设计模式的原理和实际应用等方面。通过详细解答这些问题,我们将帮助您理解问题的核心要点,同时提供有效的解决思路和方法。

资料免费分享,点击名片 64

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解

本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 206

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java培训JVM面试题分享

以下文章来源于公账号面试专栏 一、JVM 基础知识 1)Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答: 我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程

weixin_45695430的博客 153

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

金九阿里面试官分享Java面试题100+:Kafka+JVM+数据库+分布式

金九银十,每年 9、10 月份各大互联网公司都会周期性地发生人事变动,无论是刚进社会的职场菜鸟,还是准备跳槽的老手,都将在这个时候获得新工作,或迎来晋升涨薪的最佳机会。 今天给大家分享阿里面试官Java面试题100+ Kafka面试专题Kafka的用途有哪些?使用场景如何?Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么Kafka中的HW、LEO、LSO、LW等分别代表什么?Kafka中...

bihui0660的博客 476

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java(JVM)面试题分享

原标题:Java(JVM)面试题分享 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。 Java虚拟机本质是就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,

m0_67401382的博客 99

java培训JVM基础面试题分享

为什么要学习JVM? 深入理解JVM可以帮助我们从平台角度提高解决问题的能力,例如,有效防止内存泄漏(Memory leak),优化线程锁的使用 (Thread Lock),更加高效的进行垃圾回收 (Garbage collection),提高系统吞吐量 (throughput),降低延迟(Delay),提高其性能(performance)等。 你是如何理解JVM的? JVM 是 Java Virtual Machine的缩写,顾名思义,它是一个虚拟计算机,是硬件计算机的抽象(虚构)实现,是JAVA平

weixin_45695430的博客 107

已拿offer-Java岗位面试题分享:jvm+分布式+消息队列+协议

个人近期面试情况 今年二月以来,我的面试除了一个用友的,基本其他都被毙了,可以说是非常残酷的。其中有很多自己觉得还面的不错的岗位,比如百度、跟谁学、好未来等公司。说实话,打击比较大。 情况基本上是从三月开始好起来的,这个时间点,可能疫情快过去了,国家也开启了接近40万亿的基础建设计划,在这个时间段,面试的几个代表性的公司,包括腾讯、饿了么、宝宝树、旷世科技等等,基本都成了。 最终,就在三月9号,饿了么刚给我确认了p7的职位。也算自己到了另一个奋斗的阶段了。对自己的经历,做一个面试总结。 技.

weixin_48673251的博客 237

JAVA面试题分享四十七:关于什么是JVM?

答:JVM是Java Virual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,他是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,时Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改的运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

之乎者也·的博客 820

java培训-JVM内存分配面试题分享

以下文章来源于java开发那些事,作者是贪挽懒月 1. JVM 是怎么创建对象的? 首先检查 class 文件是否加载; 然后选择内存的分配方式; 分配内存的过程采用 CAS 和 TLAB 来处理并发问题; 最后执行 init 方法初始化零值。 2. JVM 创建对象的时候怎么分配内存? 根据内存是否规整来决定用什么分配方式。内存规整用指针碰撞,内存不规整用空闲列表。堆内存是否规整取决于采用的垃圾回收方式是否会生成内存碎片,如果会,是否会对内存碎片进行整理。 3. 你知道指针碰.

weixin_45695430的博客 156

金九21道Java面试题推荐及剖析(数据库+JVM+微服务+高并发)分享

纵观几年来的Java面试题,你会发现每家都差不多。你仔细观察就会发现,HashMap的出现几率未免也太高了吧!连考察的知识点都一样,什么hash碰撞啊,并发问题啊!再比如JVM,无外乎考内存结构,GC算法等!因此,如果是为了面试,完全是有套路可以准备的!记住,基础再好,也架不住面试官天马行空的问,所以刷面试题还是很有必要的!1、Map 的底层结构?(HashMap)评注:老题目了,各位面试的人员必须熟记!回答:Map是以键值对来存储对象的,它的底层实际上是数组和链表来组成的,经典的一张图如下(别人画的);当

java_spp的博客 164

JAVA面试题分享三百九十三:JVM内存问题排查Cookbook

JVM 的堆空间分成2个区域:年轻代、老年代年轻代又进一步细分成3个区域:Eden、Survivor From、Survivor To。

之乎者也·的博客 1261
上一篇: Java面试题分享-网络编程
下一篇: Java面试题分享-设计模式
程序媛小敏
博客等级 码龄7年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值