GitHub2022年度前100的Java面试真题高频知识点汇总

news2024/11/23 21:45:15

前言

这是我在工作、面试中学习并总结到的一些知识点,都是一些比较典型的、面试常常被问到的问题。

如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。

有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。


 

JDK、JRE、JVM之间的区别

  • JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等

  • JRE( Java Runtime Environment) ,Java运⾏环境,⽤于运⾏Java的字节码⽂件。JRE中包括了JVM以及JVM⼯作所需要的类库,普通⽤户⽽只需要安装JRE来运⾏Java程序,⽽程序开发者必须安装JDK来编译、调试程序。

  • JVM(Java Virtual Mechinal),Java虚拟机,是JRE的⼀部分,它是整个java实现跨平台的最核⼼的部分,负责运⾏字节码⽂件。

我们写Java代码,⽤txt就可以写,但是写出来的Java代码,想要运⾏,需要先编译成字节码,那就需要编译器,⽽JDK中就包含了编译器javac,编译之后的字节码,想要运⾏,就需要⼀个可以执⾏字节码的程序,这个程序就是JVM(Java虚拟机),专⻔⽤来执⾏Java字节码的。

String、StringBuffer、StringBuilder的区别

1. String是不可变的,如果尝试去修改,会新⽣成⼀个字符串对象,StringBuffer和StringBuilder是可变的

2. StringBuffer是线程安全的,StringBuilder是线程不安全的,所以在单线程环境下StringBuilder效率会更⾼

==和equals⽅法的区别

  • ==:如果是基本数据类型,⽐较是值,如果是引⽤类型,⽐较的是引⽤地址

  • equals:具体看各个类重写equals⽅法之后的⽐较逻辑,⽐如String类,虽然是引⽤类型,但是String类中重写了equals⽅法,⽅法内部⽐较的是字符串中的各个字符是否全部相等。

1、重载和重写的区别

2、List和Set的区别

3、ArrayList和LinkedList区别

4、谈谈ConcurrentHashMap的扩容机制

5、Jdk1.7到Jdk1.8 HashMap 发⽣了什么变化(底层)?

6、说⼀下HashMap的Put⽅法

7、深拷⻉和浅拷⻉

8、HashMap的扩容机制原理

9、CopyOnWriteArrayList的底层原理是怎样的

10、什么是字节码?采⽤字节码的好处是什么?

11、Java中的异常体系是怎样的

12、在Java的异常处理机制中,什么时候应该抛出异常,什么时候捕获异常?

13、Java中有哪些类加载器

14、说说类加载器双亲委派模型

15、JVM中哪些是线程共享区

16、你们项⽬如何排查JVM问题

17、⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?

18、怎么确定⼀个对象到底是不是垃圾?

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

20、什么是STW?

21、JVM参数有哪些?

22、说说对线程安全的理解

23、对守护线程的理解

24、ThreadLocal的底层原理

25、并发、并⾏、串⾏之间的区别

26、Java死锁如何避免?

27、线程池的底层⼯作原理

28、线程池为什么是先添加列队⽽不是先创建最⼤线程?

29、ReentrantLock中的公平锁和⾮公平锁的底层实现

30、ReentrantLock中tryLock()和lock()⽅法的区别

31、CountDownLatch和Semaphore的区别和底层原理

32、Sychronized的偏向锁、轻量级锁、重量级锁

33、Sychronized和ReentrantLock的区别

34、谈谈你对AQS的理解,AQS如何实现可重⼊锁?

35、谈谈你对IOC的理解

36、单例Bean和单例模式

37、Spring事务传播机制

38、Spring事务什么时候会失效?

39、Spring中的Bean创建的⽣命周期有哪些步骤

40、Spring中Bean是线程安全的吗

41、ApplicationContext和BeanFactory有什么区别

42、Spring中的事务是如何实现的

43、Spring中什么时候@Transactional会失效

44、Spring容器启动流程是怎样的

45、Spring⽤到了哪些设计模式

46、Spring Boot中常⽤注解及其底层实现

47、Spring Boot是如何启动Tomcat的

48、Mybatis的优缺点

49、#{}和${}的区别是什么?

50、索引的基本原理

51、索引设计的原则?

52、事务的基本特性和隔离级别

53、什么是MVCC

54、简述MyISAM和InnoDB的区别

55、Explain语句结果中各个字段分表表示什么

56、索引覆盖是什么

57、最左前缀原则是什么

58、Innodb是如何实现事务的

59、B树和B+树的区别,为什么Mysql使⽤B+树

60、Mysql锁有哪些,如何理解

61、Mysql慢查询该如何优化?

62、什么是RDB和AOF

63、Redis的过期键的删除策略

64、简述Redis事务实现

65、Redis 主从复制的核⼼原理

66、Redis有哪些数据结构?分别有哪些典型的应⽤场景?

67、Redis分布式锁底层是如何实现的?

68、Redis主从复制的核⼼原理

69、Redis集群策略

70、缓存穿透、缓存击穿、缓存雪崩分别是什么

71、Redis和Mysql如何保证数据⼀致

72、Redis的持久化机制

73、Redis单线程为什么这么快

74、什么是CAP理论

75、什么是BASE理论

76、什么是RPC

77、数据⼀致性模型有哪些

78、分布式ID是什么?有哪些解决⽅案?

79、分布式锁的使⽤场景是什么?有哪些实现⽅案?

80、什么是分布式事务?有哪些实现⽅案?

81、什么是ZAB协议

82、为什么Zookeeper可以⽤来作为注册中⼼

83、Zookeeper中的领导者选举的流程是怎样的?

84、Zookeeper集群中节点之间数据是如何同步的

85、Dubbo⽀持哪些负载均衡策略

86、Dubbo是如何完成服务导出的?

87、Dubbo是如何完成服务引⼊的?

88、Dubbo的架构设计是怎样的?

89、负载均衡算法有哪些

90、分布式架构下,Session 共享有什么⽅案

91、如何实现接⼝的幂等性

92、简述zk的命名服务、配置管理、集群管理

93、讲下Zookeeper中的watch机制

94、Zookeeper和Eureka的区别

95、存储拆分后如何解决唯⼀主键问题

96、雪花算法原理

97、如何解决不使⽤分区键的查询问题

98、Spring Cloud有哪些常⽤组件,作⽤是什么?

99、如何避免缓存穿透、缓存击穿、缓存雪崩?

100、分布式系统中常⽤的缓存⽅案有哪些

101、缓存过期都有哪些策略?

102、常⻅的缓存淘汰算法

答案解析获取方式:关注+转发后,后台私信我 获取

总结

java只是一个工具;应用必不可少,但是基础知识是安身立命以及决定自己上限的东西,虽然是为了应付面试官,但是最重要的还是看自己技术底层是否巩固,这样才能逐步的提升自己的技术能力。

如果基础知识比较扎实了,可以看看网络上的面试经验,找找自己不会的知识点,查漏补缺。也祝大家都能拿到心仪的offer!

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

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

相关文章

【win11内存占用高优化】未运行程序,系统内存占用50以上

这里写自定义目录标题前言打开控制面板找到电源键功能找到快速启动选项,取消勾选,确定win X以管理员身份打开powershell输入如下命令,回车关闭终端完成前言 windows11在未运行任何其他程序的情况下,内存占用超50%,可…

速度收藏,Fiddler详细使用教程出炉!

目录 01、抓取不同类型接口数据 02、数据模拟以及过滤规则 03、如何模拟接口响应数据 04、使用fiddler进行评论接口测试 绵薄之力【软件测试学习资源分享】 01、抓取不同类型接口数据 查看windows本机的IP 配置fiddler 需要保证要抓取的手机与电脑保持同一网段&#xff0…

转换 FLAC、APE 无损音乐格式为 iTunes 支持导入的 M4A 格式

大家知道常见的无损音乐格式有 FLAC、APE、WAV 等这些格式。其中 FLAC (Free Lossless Audio Codec) 格式因为是免费自由的压缩编码、无损压缩,且受到操作系统、软件及硬件的广泛支持。所以是非常流行常见的无损音乐格式。 自 2005 年 Mac OS X v10.4 开始&#xf…

《垃圾回收算法手册 自动内存管理的艺术》——其他分区策略(笔记)

文章目录十、其他分区策略10.1 大对象空间10.1.1 转轮回收器10.1.2 在操作系统支持下的对象移动10.1.3 不包含指针的对象10.2 基于对象拓扑结构的回收器10.2.1 成熟对象空间的回收10.2.2 基于对象相关性的回收10.2.3 线程本地回收10.2.4 栈上分配10.2.5 区域推断10.3 混合标记—…

磨金石教育摄影技能干货分享|传统民居摄影作品欣赏

我们知道在绘画领域有写实和写意之分,写实多用于人像的描绘,写意多用于山水田园画的创作。尤其是在中国传统绘画艺术中,写意简直就是创作的精髓。 写实和写意的区别在于,前者侧重真实还原,后者在于主管情感表达。 建筑…

哈希表、哈希桶(C++实现)

1. 哈希 1.1 概念 哈希(hash,中文:散列;音译:哈希),是一种算法思想,又称散列算法、哈希函数、散列函数等。哈希函数能指导任何一种数据,构造出一种储存结构&#xff0c…

机器学习笔记之配分函数(二)——随机最大似然

机器学习笔记之配分函数——随机最大似然引言回顾:对数似然梯度关于∇θL(θ)\nabla_{\theta}\mathcal L(\theta)∇θ​L(θ)的简化基于MCMC求解负相关于书中图像的解释引言 上一节介绍了对包含配分函数的概率分布——使用极大似然估计求解模型参数的梯度(对数似然…

5款高效率,但是名气不大的小众软件

今天推荐5款十分小众的软件,但是每个都是非常非常好用的,用完后觉得不好用你找我。 1.多窗口文件整理——Q-Dir Q-Dir 是一款多窗口文件整理工具,特别适合用户频繁在各个文件夹中跳转进行复制粘贴的文件归档操作。如果你的电脑硬盘中文件已经…

MySQL 数据库的增删查改 (2)

文章目录一. 数据库约束1. 约束类型2.NULL 约束3.UNIQUE 约束4.DEFAULT 约束5. PRIMARY KEY 约束6.FOREIGN KEY 约束二.表的设计三.插入四.查询1.聚合查询2.联合查询3.合并查询本篇文章继承与 MySQL 表的增删改查(1) 一. 数据库约束 1. 约束类型 NOT NULL -- 表示某一行不能…

下载安全证书到jdk中的cacerts证书库

最近在公司遇到访问https请求,JDK返回异常信息的问题。返回如下: java.lang.Exception: java.lang.Exception: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: u…

废弃阶段的风险评估

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的,但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段,通过风险评估以确定评估对…

线程安全介绍

线程安全 多线程程序处于一个多变的环境当中,可访问的全局变量和堆数据随时都可能被其他的线程改变。因此多线程程序在并发时数据的一致性变得非常重要。 竞争和原子操作 多个线程同时访问一个共享数据,可能造成很恶劣的后果。下面是一个著名的例子&a…

多数之和问题

文章目录多数求和问题1两数之和(无序)题解2两数之和(有序)题解3两数之和(二叉搜索树)题解4 三数之和题解5四数之和题解多数求和问题 针对给一组用例,和一个目标数target,求用例中多数相加等于target的所有数,且不能重复问题,一般有两种解法: 集合(不要求排序)双指针(要求排序…

万德L2接口代码执行工作的过程分享

在设计万德L2接口时,避免不了要用到 一些代码,今天小编来给各位分享一下万德L2接口代码执行工作的过程分享: 这里只分享部分功能执行的过程: OrderQueueRecord(委托队列) 字段名 类型 备注 stock_ex…

word文档

WORD行与行中间空出一行,怎么办? 这个情况又分两种情况: 第①种情况:行与行之间的空白行都多了一个回车符: Word中,当我们从网络上复制一些文本或者是拿到一些别人的文本,这种文本经常会有大…

自动切换背景的登录页面

自动切换背景的登录页面 有趣的小案例池子: JS实现定时器 JS实现关闭图片窗口 JS实现输入检验 获取焦点后隐藏提示内容的输入框 JS实现获取鼠标在画布中的位置 聊天信息框显示消息 JS点击切换背景图 自动切换背景的登录页面 JS制作跟随鼠标移动的图片 JS实现记…

电脑提示ISDone.dll错误怎么办?

在安装一些大型游戏时,容易出现ISDone.dll错误,那么这时我们该怎么办呢? 出现ISDone.dll错误的原因? ① RAM或硬盘空间不足,或内存和硬盘出现故障。 ② ISDone.dll和Unarc.dll文件损坏或丢失。 ③ 系统文件损坏。 …

JAVA基于局域网的聊天室系统(源代码+论文)

毕业论文 局域网聊天室系统的设计与实现 论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期: 基于局域网的视频聊天室系统的设计与实现 摘 要 视频聊天系统作为一种…

Python 采集77个教学课件PPT模板

源码下载链接:ppt.rar - 蓝奏云 PPT下载链接:https://pan.baidu.com/s/1oOIO76xhSw283aHTDhBcPg?pwddydk 提取码:dydk 采集的参数 page_count 1 # 每个栏目开始业务content"text/html; charsetgb2312"base_url "https:…

6个赚钱法则,后悔知道晚了,赚钱是为了需要时说可以而不是考虑下

2023年也在措不及防的时刻开始了 无论哪年新年愿望清单里赚钱一直都在前三位。 《财富的理想国》中说,钱不是人生的全部,甚至不能保证你一定能过上幸福的生活,但一定的金钱,能为幸福生活打造坚实的基础。 2023全新的一年&#x…