硬核干货!2020最新Java最常见面试题汇总。Guide哥倾心整理!
大家好,我是Guide哥!这篇文章最开始是在我的知识星球分享过,分享之后里面的题目引起了大家的共鸣,所以拿出来分享一下,希望对大家有帮助!觉得不错的话,一定要看到最后,还要给个在看!
内容来自 Guide 哥的朋友一起读者的真实面试经历,Guide哥整理!希望通过这些问题,能够让大家学习更有方向,而不是单纯把这些问题都背会了!
另外,内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!
由于自己也没抽出时间去回答这么多问题,但是大部分问题大家都应该可以通过搜索解决,不过还是推荐配合我的 JavaGuide:https://github.com/Snailclimb/JavaGuide 食用更佳(ps:其他不懂的问题建议Google,还不懂的话可以在评论区问我,我会在下班之后抽时间回答)。
Java
“Java 基础这部分一些简单的问题就直接没有放上来。
”
基础:
-
Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)? -
谈谈对 Java 注解的理解,解决了什么问题? -
内部类了解吗?匿名内部类了解吗? -
BIO和NIO区别,4核cpu,100个http连接,用BIO和NIO分别需要多少个线程 -
假如我们需要存500个数需要多大的HashMap? -
HashMap的负载因子。
jvm:
-
jvm 内存结构 -
jvm 调优参数 -
什么是类加载? -
何时类加载? -
java的类加载流程? -
知道哪些类加载器。类加载器之间的关系? -
类加载器之间的关系? -
类加载器的双亲委派 (结合tomcat说一下双亲委派) -
为什么需要双亲委派 -
Java内存模型 -
栈中存放什么数据,堆中呢? -
大对象放在哪个内存区域 -
堆区如何分类 -
垃圾回收有哪些算法 -
GC的全流程 -
GC中老年代用什么回收方法?
多线程:
-
Java线程池有哪些参数?阻塞队列有几种?拒绝策略有几种? -
死锁
设计模式:
-
阅读Spring源码的时候什么设计模式最让你影响深刻?如何使用? -
单例模式,单例模式的使用场景 -
观察者模式,观察者模式的使用场景
Spring
-
spring boot和spring的区别 -
ioc 和 aop(ioc流程、aop实现原理)、spring aop异常处理、当一段代码被try catch后再发生异常时,aop的异常通知是否执行,为什么? -
spring bean的生命周期说一下 -
spring data jpa底层是什么? -
hibernate和mybatis区别 -
spring boot 过滤器 -
spring boot 拦截器 -
Spring动态代理默认用哪一种 -
写出spring jdk动态代理的实现。 -
画出spring boot处理一个http请求的全过程
推荐
-
手写实现Spring核心功能:https://github.com/jinzzzzz/spring-demo
微服务/分布式
-
为什么要网关? -
限流的算法有哪些? -
为什么要分布式 id ?分布式 id 生成策略有哪些? -
了解RPC吗?有哪些常见的 RPC 框架? -
如果让你自己设计 RPC 框架你会如何设计? -
Dubbo 了解吗?Spring Cloud 了解吗?
数据库
-
非关系型数据库和关系型数据库的区别? -
事务的四大特性 -
MySQL 事务隔离级别?默认是什么级别? -
乐观锁与悲观锁的区别 -
数据库两种存储引擎的区别 -
最左前缀匹配原则及它的原因 -
大表优化的思路 -
where和having的区别 -
分库分表 -
explain 命令
索引
-
如何加快数据库查询速度 -
聚集索引和非聚集索引的区别 -
什么时候不该使用索引? -
索引底层的数据结构? -
B+树做索引比红黑树好在哪里? -
Redis:
-
项目中 redis 是怎么用的?解决了什么问题? -
说一下有缓存情况下查询的流程以及有缓存情况下修改的流程。 -
redis有哪些数据结构 -
redis内存满了怎么办 -
redis内存淘汰算法除了lru还有哪些 -
分布式缓存可能出现的问题 -
缓存穿透问题
网络
-
计算机网络的一些常见状态码 -
ping 所使用的协议 -
TCP的三次握手与四次挥手的内容 -
TCP为什么连接是三次握手而断开是四次握手 -
TCP与UDP的区别及使用场景 -
一次完整的HTTP请求所经的步骤 -
http 如何保存登录信息(没太搞懂意思) -
Cookie 和 Session的关系
算法和数据结构
算法
-
LRU 算法了解吗?你能实现一个吗? -
写排序算法(快排、堆排)
数据结构
-
布隆过滤器了解吗?
设计题
-
假如有10亿个数,只有一个重复,内存只能放下5亿个数,怎么找到这个重复的数字? -
如何设计一个秒杀系统(服务端、数据库、分布式)?分布式系统的设计? -
有一个服务器专门接收大量请求,怎么设计? -
如果让你自己设计 RPC 框架你会如何设计? -
怎么快速出现一个stackoverflow错误?
其他问题
-
自我介绍。 -
说说你的项目中的亮点有哪些。 -
画一下你的项目的架构图。 -
Restful 了解吗?简单说一下自己对它的认识,如果我要返回一个 boolean 类型的数据怎么办?
经验总结
-
多面试,不要害怕失败,多总结经验。 -
尽早准备,不论是找工作前、面试前还是面试后。 -
熟悉自己的简历。 -
电话和视频面试很平常,面试前提前准备一下。 -
坚持!offer 虽然可能会迟到,但是只要不放弃,就一定不会缺席。
文末推荐
点击下方阅读原文,直达华为云!