剑指BAT-备战金三银四——年底最全Java面试题汇总

Java

Java 基础这部分一些简单的问题就直接没有放上来。

基础:

Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?

谈谈对 Java 注解的理解,解决了什么问题?

内部类了解吗?匿名内部类了解吗?

BIO和NIO区别,4核cpu,100个http连接,用BIO和NIO分别需要多少个线程

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 面试题解析

推荐

手写实现Spring核心功能: github.com/jinzzzzz/sp…

权限认证

认证 (Authentication) 和授权 (Authorization)的区别是什么?

什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?

Cookie 和 Session 有什么区别?如何使用Session进行身份验证?

如果没有Cookie的话Session还能用吗?

为什么Cookie 无法防止CSRF攻击,而token可以?

什么是 Token?什么是 JWT?如何基于Token进行身份验证?

什么是OAuth 2.0?

什么是SSO(单点登录)

有需要的朋友点我即可免费获取!

微服务/分布式

为什么要网关?

限流的算法有哪些?

为什么要分布式 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 虽然可能会迟到,但是只要不放弃,就一定不会缺席。

答案获取

这些面试题的答案,我已经整理成为一份Java面试文档中了

点我即可免费获取!

Java面试文档

Java面试文档

每个章节下面都有一个详细的知识点

你可能感兴趣的:(剑指BAT-备战金三银四——年底最全Java面试题汇总)