Java面试必问题

1000道互联网大厂面试题:ZooKeeper+Dubbo,linux基础教程第二版课后答案 1、MySQL 中有哪几种锁? 2、MySQL 中有哪些不同的表格? 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别? 5、CHAR 和 VARCHAR 的区别? 6、主键和候选键有什么区别? 7、myisamchk 是用来做什么的? 8、如果一个表有一列定义为 TIMESTAMP,将发生什么? 9、你怎么看到为表格定义的所有索引? 10、… Java 并发编程(一) 1、在 java 中守护线程和 阅读详情

工作六年面试被问JVM为什么使用元空间替换了永久代? 

面试解析#
我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。

但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。

因此我可以说,99%的人都回答不出这个问题。

但是互联网大厂的面试就是筛选那1%的优秀人才,因此通过这道题,

既可以考察求职者对JVM原理的理解程度

又能够考察求职者基本功的扎实程度

还能实现高级人才的筛选

在Java7里面,JVM运行时数据区是这样的。

在Hotspot虚拟机中,方法区的实现是在永久代里面,它里面主要存储运行时常量池、Klass类元信息等。

永久代属于JVM运行时内存中的一块存储空间,我们可以通过-XX:PermSize来设置永久代的大小。

当内存不够的时候,会触发垃圾回收。


在JDK1.8里面,JVM运行时数据区是这样的。

在Hotspot虚拟机中,取消了永久代,由元空间来实现方法区的数据存储。

元空间不属于JVM内存,而是直接使用本地内存,因此不需要考虑GC问题。

默认情况下元空间是可以无限制的使用本地内存的,但是我们也可以使用JVM参数来限制内存使用大小。


为什么要使用元空间来替换永久代,背后必然有它的道理,但是如果求职者能够回答出来。

必然对于JVM底层原理是有一定了解的。

我们来看看高手的回答。

高手:#
有三个方面的原因:

在1.7版本里面,永久代内存是有上限的,虽然我们可以通过参数来设置,但是JVM加载的class总数、大小是很难确定的。

所以很容易出现OOM问题。

但是元空间是存储在本地内存里面,内存上限比较大,可以很好的避免这个问题。

永久代的对象是通过FullGC进行垃圾收集,也就是和老年代同时实现垃圾收集。

替换成元空间以后,简化了Full GC。可以在不进行暂停的情况下并发地释放类数据,同时也提升了GC的性能

Oracle要合并Hotspot和JRockit的代码,而JRockit没有永久代。

还有很多会持续更新看加关注也私聊我也是可以的

Java 面试必问问题详解 作者:禅与计算机程序设计艺术 1.简介 概述 "Java is a high-performance, class-based, object-oriented language that is designed to have as few implemen 阅读详情

相关推荐

Java面试必问题:Spring 面试问题 TOP 50

Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。 本文内容主要翻译自 Top 50 Spring Interview Questions You Must Prepare In 2018 1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 200

常年被追砍的博客 272

java常见面试题(160道)

java常见面试题

打造专业技术博客 9万+

Java面试必问题:目录

Java面试必问题:目录 Java面试必问题:Spring 面试问题 TOP 50 Java面试必问题:Spring AOP 原理源码深度剖析 Java面试必问题:Spring Cloud底层原理 Java面试必问题:Java遇见了Html--Servlet篇 Java面试必问题:Mybatis细节 Java面试必问题:Spring详解篇之IoC控制反转 Java面试必问题:线程池和信号量 Java面试必问题:常见的安全算法 Java面试必问题:Spring详解篇之 AOP面向切面编程 .

常年被追砍的博客 218

JAVA面试题大全(200+道题目)

面试题 一、Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4.final在 java 中有什么作用? 5.java中的 Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java中操作字符串都有...

qq_38078190的博客 13万+

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 978

转录组数据去批次方法整理(combat,combat-seq,removeBatchEffect)

正是因为这些非生物学的因素存在就有可能会导致我们的结果偏离真实的情况,那么实际分析的过程中研究者应当评估是否存在批次效应,并决定是否要进行去批次处理。批次效应是指样本在不同批次处理及测量的情况下引入与生物学情况不相关的技术误差,比如不同试剂耗材,不同操作者,不同的实验时间等。combat函数是基于贝叶斯框架下的调整数据批次效应的函数,主要适用于已经被过滤和标准化后的数据(combat-seq函数是基于二项回归分布下的调整数据批次效应的函数,主要适用于。值得注意的是,即使使用了所谓的去批次效应的工具,

zfyyzhys的博客 7862

10万字208道Java经典面试题总结(附答案)

1、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 2、== 和 equals 的区别是什么? 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址; equals不能用于基本类型的比较; 如果没有重写equa

学Java,找哪吒 106万+

Android WIFI体系:深入解析WifiLock与MulticastLock的底层实现与性能优化

本文深入解析Android WIFI体系中WifiLock与MulticastLock的底层实现机制与性能优化策略。WifiLock通过阻止Wi-Fi休眠提升网络性能,尤其WIFI_MODE_FULL_HIGH_PERF模式可显著降低延迟;MulticastLock则控制组播数据接收,但会增加功耗。文章详细探讨了其与wpa_supplicant、HAL层的交互,并提供高性能场景下的优化实践与功耗平衡方案。

php55的博客 1082

Java程序员不得不会的124道面试题(含答案)

double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。

Javaesandyou的博客 3万+

在PyCharm中配置使用Anaconda环境

在PyCharm中配置使用Anaconda环境一、步骤1.Anaconda2.PyCharm总结 一、步骤 1.Anaconda 如未安装Anaconda可至其官网下载,学习使用个人版就可以了。 下载地址:https://www.anaconda.com/products/individual 1、打开Anaconda Navigator,点击Environments可以看到anaconda中已经有了默认的“base”环境,其中包含了大多数我们会用到的包,在PyCharm中可以直接使用该环境,而无需自行下载

TuckX的博客 19万+

西门子 S7-1200 G2 高速计数器的使用方法介绍

西门子 S7-1200 G2 高速计数器的使用方法介绍

Robot_PLC_HMI_Automation 1711

Java面试必看二十问题

大家都应该知道Java是目前最火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数。究竟这些新入职的Java程序员是入坑还是入行呢?那就要看他们对于Java这门语言的看法了。不管如何,在入职之前,问题会要经过面试,那么Java面试题是怎么出的呢?下面罗列了20道常见初级Java面试题,简直是入职者必备!    1、面向对象...

261

R数据分析:潜在剖面分析LPA的做法与解释

Latent Profile Analysis (LPA) tries to identify clusters of individuals (i.e., latent profiles) based on responses to a series of continuous variables (i.e., indicators). LPA assumes that there are unobserved latent profiles that generate patterns of resp.

Codewar的博客 1万+

Java面试宝典(2025版),java面试必问问题

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。是操作系统层面的一个错误,是进程死锁的简称,最早在 1965 年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并发程序设计领域最难处理的问题之一。

2401_89221867的博客 1945

YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv9的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 2611

Lasso的原理及其与其他特征选择方法的比较进行阐述,然后讨论Lasso优点、缺点以及应用场景,最后给出了代码实例

在机器学习领域中,特征选择(feature selection)是指在模型训练前对数据集进行分析,选择其中有助于预测目标变量或影响模型性能的特征,去除不相关或冗余的特征,提升模型的泛化能力。而Lasso回归是一种很流行的用于特征选择的方法之一。Lasso回归(又称LASSO,least absolute shrinkage and selection operator)是一种线性模型中的特征选择方法。

AI天才研究院 3052

大厂Java面试必问的50个问题及答案解析

Java大厂面试高频考点解析:涵盖JVM、并发编程、框架原理、分布式系统等核心领域。重点包括:JVM内存模型与GC算法、多线程同步机制、Spring循环依赖解决方案、分布式事务CAP理论、MySQL索引优化、Redis持久化策略等50个高频问题。系统梳理了大厂技术面试的核心知识体系,涉及底层原理、性能优化和架构设计方法论,帮助开发者针对性准备面试,提升通过率。建议结合项目实践理解技术原理,掌握系统化思维和问题解决能力。

又见江南雨的博客 635

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JAVA面试必问:十大经典问题全解析

本文精选10个Java面试高频问题,涵盖高并发控制、数据库优化、框架原理和缓存技术等核心模块。从超卖问题的分布式锁解决方案、数据库索引优化策略,到SpringBoot注解应用、MyBatis二级缓存机制,每个问题均提供原理剖析、代码示例和场景应用建议。特别解析了Redis、RabbitMQ等中间件的实战应用,并对比了synchronized与ReentrantLock的异同。通过系统化的技术解析,帮助开发者掌握面试要点,提升解决实际问题的能力。

2501_93873871的博客 642

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

20道Java工程师面试必问题,java面试项目中遇到的困难

我自认为能力平庸,学习能力和排查分析问题的能力也很一般,在互联网公司也不断被领导吐槽。尽管如此,我尚敢不断挑战更高的工资。在我身边,一些能力比我强的,提升收入的效率还远比我高。再次重复,本文的目的不是一味让大家在面试中不顾实际地要求高工资,更不提倡大家在面试中投机取巧,而是首先让大家保持不断上进的心态,并以此不断提升自己,在此基础上,就别在客气了——要足工资。总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。

m0_60635176的博客 1431

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java面试问哪些问题?精选必问

你也许能说出一万个不知道原理源码也能胜任工作的理由。但是也改变不了,高质量的人才必须要通过原理源码来筛选的事实!不要抱怨没有时间学习,去年到今年,一年时间过去了,你是没时间学习,还是有时间也没学习,进步了多少你心里清楚。[java面试问哪些问题?精选必问!]纵观目前的Java面试套路,无非可以分为这几个部分,Java基础、主流框架、分布式相关、数据库等。Java基础面试官最喜欢问的无非是HashMap,HashMap被经常问的也就是线程安全相关,为啥线程不安全?怎么扩容的?JDK1.7和1.8的实现有啥区别

jvm77625的博客 1564

网易Java面试必问:四年Java面试遇到的问题整理,已整理成文档

思维导图 前言 在很多时候,我们都可以在各种框架应用中看到ZooKeeper的身影,比如Kafka中间件,Dubbo框架,Hadoop等等。为什么到处都看到ZooKeeper? 01 MySQL相关 1.1 面试问题 MySQL有哪些锁? 解释一下ACID都是什么 Innodb中索引的实现 B+树 AUTO_INCREMENT原理(考察并发情况) 数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎

m0_56712948的博客 725

2024年Java面试必问的10个硬核问题(附实战解析)

不要死记硬背API(面试官最烦这个!每个答案都要带场景分析(比如:“在电商秒杀场景下…”)主动画架构图(拿白板笔在空气里画都行!遇到不会的问题直接说"这个我需要查文档确认"(比瞎蒙强100倍)最后给各位勇士的忠告:2024年的Java面试已经卷到要看GitHub项目了!赶紧把文中的代码案例整理成可运行的项目(取名别用demo,换成xx-system更有逼格),链接直接贴简历里,保证让面试官眼前一亮!各位还在等什么?赶紧打开IDE把文中的代码敲一遍!

niuma8888的博客 1308

20道Java工程师面试必问题,值得一看

Kubernetes简介 Kubernetes(简称K8S,K和S之间有8个字母)是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。 Kubernetes具有如下特性: 服务发现与负载均衡:无需修改你的应用程序即可使用陌生的服务发现机制。 存储编排:自动挂载所选存储系统,包括本地存储。 Secret和配置管理:部署更新Secrets和应用程序的配

m0_57700563的博客 1633

java的面试问题,Java开发者必看

话不多说,先上张图 一、微服务必备技能: 二、一起从浅入深理解DUBBO! **先来看一份DUBBO脑图:**HelloWorld+前置知识+适合群体+架构(核心点:生产者 消费者问题 特点:连通性,健壮性,伸缩性,升级型、节点调用关系图) 什么是Dubbo(分布式服务框架+RPC远程调用解决服务+SOA服务治理方案) Dubbo的由来(需要解决的问题:1、依赖管理 2、路由透明 3、服务治理) 主要是对Dubbo总体的介绍,让大家对Dubbo有一个总体的认识。首先介绍后台应用 架构的演进过程,从最初

m0_57768082的博客 151

java面试oom问题及答案_java面试中必问的oom问题

引言一般你去面试的时候,面试官经常会问:请谈谈你对OOM的认识?然后,你可能会说OOM就是out of memory,那如果你只是这么答的话,这可不是面试官想要的答案;面试官又接着问,那你生产过程中有遇到哪些OOM呢?请你说说出常见的OOM问题?这时的你可能是懵的。先来做个调查,你知道几种常见的OOM呢?欢迎评论区留言。总览来看一下思维导图,这些错误的异常你有遇到过吗?常见的OOM1. Stack...

weixin_34409887的博客 608
上一篇: 为什么不想搞java了,六七年的经验面试几分钟就结束了,现在java面试为何这么难?
下一篇: 刚刚出来的Java程序员怎样参与面试呢?那我们今天来聊聊
在酒吧写代码
博客等级 码龄7年 211粉丝 330原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值