2022-2023-java大厂面试真题

发布时间 2023-06-04 11:06:29作者: 昊男

【美团】面试真题: 
1、SPRING AOP 底层原理 
2、HASHMAP 的底层数据结构是怎样的 ?
3、HASHMAP 的扩容机制是怎样的?
4、CONCURRENTHASHMAP 的存储结构是怎样的?
5、线程池大小如何设置?
6、IO 密集=NCPU*2 是怎么计算出来?
7、G1 收集器有哪些特点?
8、你有哪些手段来排查 OOM 的问题? 
9、请你谈谈 MYSQL 事务隔离级别,MYSQL 的默认隔离级别是什么? 
10、可重复读解决了哪些问题? 
11、对 SQL 慢查询会考虑哪些优化 ? 
12、谈一谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法? 
13、LRU 是什么?如何实现?
14、什么是堆内存?参数如何设置? 
15、栈和队列,举个使用场景例子? 
16、MYSQL 为什么 INNODB 是默认引擎? 
17、MYSQL 索引底层结构为什么使用 B+树? 
18、B+ 树的叶子节点链表是单向还是双向? 
19、MVCC 是什么?它的底层原理是什么? 
20、UNDO LOG 具体怎么回滚事务 ? 
21、如何查询慢 SQL 产生的原因 
22、索引失效的情况有哪些?.
23、一个 REDIS 实例最多能存放多少的 KEYS?LIST、SET、SORTED SET 他们最多能存放多少元素?
24、REDIS 数据结构 压缩列表和跳跃表的区别
25、为什么数据量小的时候用压缩列表 ?
26、REDIS 主从同步是怎么实现的? 
27、REDIS 持久化 RDB 和 AOF 优缺点
28、谈谈自己对于 SPRING AOP 的了解? 
29、 SPRING BEAN 容器的生命周期是什么样的?
30、RABBITMQ 如何保证消息不丢失 ?

 


【阿里】面试真题:
1、TCP 和 UDP 区别?
2、TCP/IP 协议涉及哪几层架构? 
3、描述下 TCP 连接4次挥手的过程?为什么要4次挥手? 
4、计算机插上电源操作系统做了什么?
5、LINUX 操作系统设备文件有哪些?.
6、多线程同步有哪些方法?
7、一个对象的两个方法加 SYNCHRONIZED,一个线程进去 SLEEP,另一个线程可以进入到另一个方法吗?
8、什么是可重入锁(REENTRANTLOCK)?
9、创建线程的三个方法是什么?
10、JAVA 怎么获取多线程的返回值?
11、线程池有哪几种创建方式?
12、线程池参数有哪些?
13、线程池拒绝策略有哪些?
14、你认为对线程池的核心参数实现自定义可配置,三个核心参数是?
15、THREADPOOLEXECUTOR 线程池,COREPOOLSIZE=5, MAXIMUMPOOLSIZE=10,QUEUECAPACITY=10,有20个耗时任务 交给这个线程池执行,线程池会如何执行这20个任务?
16、给用户发消息任务超出队列,你用哪个拒绝策略?有其他方法吗 ?
17、JAVA8 新特性有哪些了解?
18、什么时候用多线程、为什么要设计多线程? 
19、多线程越多效率越高吗?
20、多线程会产生哪些并发问题 ?
21、MYBATIS 如何将对象转换成 SQL? 
22、虚拟内存是什么,虚拟内存的原理是什么? 
23、栈会溢出吗?什么时候溢出?方法区会溢出吗? 
24、JVM 如何加载类的?
25、自己写过 STRING 类能加载吗,之前的 STRING 是什么时候加载进去的? 
26、描述 THREADLOCAL(线程本地变量)的底层实现原理及常用场景? 
27、什么是微服务架构? 
28、微服务有哪些特点? 
29、LAMBDA 表达式是啥?优缺点?
30、讲一下 LAMBDA 的表达式作用域(LAMBDA SCOPES)。 
31、MYSQL 事务的特性有什么,说一下分别是什么意思?


【京东】面试真题:
1、哪些情况下的对象会被垃圾回收机制处理掉?
2、讲一下常见编码方式?
3、UTF-8 编码中的中文占几个字节;INT 型几个字节? 
4、静态代理和动态代理的区别,什么场景使用? 
5、简述下 JAVA 的异常体系。
6、谈谈你对解析与分派的认识。
7、修改对象 A 的 EQUALS 方法的签名,那么使用 HASHMAP 存放这个对象实例的时候,会用哪个 EQUALS 方法?
8、JAVA 中实现多态的机制是什么?
9、如何将一个 JAVA 对象序列化到文件里?
10、说说你对 JAVA 反射的理解。
11、说说你对 JAVA 注解的理解。
12、说一下泛型原理,并举例说明。 
13、谈谈你对 JAVA 中 STRING 的了解。
14、STRING 为什么要设计成不可变的? 
15、REDIS 常见的几种数据结构说一下?各自的使用场景? 
16、谈一谈缓存穿透、缓存击穿和缓存雪崩,以及各自的解决方案? 
17、讲下 KAFKA、RABBITMQ、ROCKETMQ 之间的区别是什么? 
18、KAFKA 的架构说一下? 
19、KAFKA 怎么保证消息是有序的?
20、KAFKA 怎么保证消息不丢失?
21、KAFKA 怎么解决重复消费?
22、介绍下 MYSQL 聚簇索引与非聚簇索引的区别(INNODB 与 MYISAM 引擎)?
23、然后给一个联合索引(A,B)和一个语句,SELECT * FROM TABLE WHERE B = 'XXX',判断是否能命中索引?为什么?
24、JAVA 多线程有哪几种实现方式?
25、用过 CONCURRENTHASHMAP,讲一下他和 HASHTABLE 的不同之处?
26、JAVA 怎么实现线程安全?
27、描述 THREADLOCAL(线程本地变量)的底层实现原理及常用场景。
28、介绍下 SPRING BEAN 都有哪些作用域 ?
29、注解 @AUTOWIRED 和 @RESOURCE 有什么区别?
30、RPC 的实现基础?
31、CMS,G1 垃圾回收器中的三色标记了解吗?


【腾讯】面试真题:
1、KAFKA 是什么?主要应用场景有哪些?
2、KAFKA 为什么有 TOPIC 还要用 PATITION?
3、客户端和服务器之间最多能建立多少个连接 ?
4、HASHMAP 结构,线程不安全举个例子?
5、MYSQL 索引分类?
6、了解线程 & 进程的区别吗?
7、JAVA 进程间的几种通信方式?
8、多台服务器同时对一个数据定时任务,怎么处理 ?
9、常见分布式锁的几种实现方式?
10、REDIS 分布式锁实现原理?
11、REDIS 的数据类型及它们的使用场景?
12、信号量与信号的区别?
13、SELECT 和 EPOLL 的底层结构是什么原理
14、场景题:1 亿个数据取出最大前100个有什么方法?
15、KAFKA 如何保证消息可靠?
16、消息队列的使用场景?
17、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
18、ARRAYLIST 和 LINKEDLIST 的区别在哪里?
19、谈谈你对 SQL 注入式攻击的理解?
20、数据库事务的特性?
21、REDIS 如何做内存优化?
22、缓存穿透,缓存击穿,缓存雪崩都是咋回事?解决办法?
23、数组和链表的区别?当数组内存过大时会出现什么问题?链表增删过多会出现的什么问题? 
24、常见排序算法和分别的复杂度?
25、JDK 1.8的 JVM 内存划分模型 ,堆和栈的区别
26、简单描述 MYSQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)?
27、I/O 模型有哪几种?
28、当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤? 
29、虚拟 DOM 的优劣如何?
30、幻读是什么,用什么隔离级别可以防止幻读?

【百度】面试真题:
1、SPINGBOOT 也有定时任务?是什么注解?
2、请描述线程的生命周期,它们之间如何切换?
3、什么情况线程会进入 WAITING 状态?
4、简述多进程开发中 JOIN 和 DEAMON 的区别?
5、异步和同步、阻塞和非阻塞之间的区别?
6、为什么要分内核态和用户态?
7、说下类加载器与类加载?加载的类信息放在哪个区域?
8、UDP 协议和 TCP 协议的区别?
9、LIMIT 1000000 加载很慢的话,你是怎么解决的呢?
10、MYSQL 的索引分类是什么?
11、什么是散列表? SELECT * 和SELECT 1?
12、MYSQL 的主从复制了解吗?
13、SPRING 框架事务注解用什么注解?使用该注解的失效场景?
14、FINAL、FINALLY、FINALLIZE?FINALLY 是在 RETURN 之前执行还是之后?FINALLY 块里的代码一定会执行吗?
15、I/O 多路复用实现方式有哪些?
16、SELECT、POLL、EPOLL 区别有哪些?
17、哈希算法解决哈希冲突方式有哪些?
18、如何保证 REDIS 中的数据不丢失?
19、如何保证 REDIS 中的数据都是热点数据?
20、REDIS 持久化机制是如何做的?
21、REDIS 为什么在使用 RDB 进行快照时会通过子进程的方式进行实现?
22、介绍下 MYSQL 的主从复制原理?产生主从延迟的原因?
23、父进程如果宕掉,子进程会怎样?
24、孤儿进程和僵尸进程有什么区别?
25、MYSQL 中有哪几种锁?
26、互斥锁(MUTEX)和自旋锁(SPINLOCK)分别在什么场景使用?
27、描述 SYNCHRONIZED、REENTRANTLOCK 的区别 ?
28、HASHMAP 扩容操作是怎么实现的?
29、CONCURRENTHASHMAP 1.7与1.8区别?
30、如何使用 JAVA 的反射?

 【华为】面试真题:
1、JAVA 常用集合及特点?
2、开启一个线程的方法?
3、JAVA 面向对象包括哪些特性,怎么理解的?
4、JAVA 如何保证线程安全?
5、介绍 SPRING MVC 的工作流程 ?
6、SPRING 框架中用到了哪些设计模式?
7、REDIS 的特点是什么?
8、为什么使用 REDIS,有什么好处?
9、REDIS 雪崩和击穿了解吗?
10、什么是面向对象,谈谈你的理解?
11、访问数据库除了 JDBC 还有什么?
12、你知道有哪些设计原则?
13、在生产环境 LINUX服务器上,发现某台运行JAVA服务的服务器的CPU100%,不借助任何可视化工具,怎么进行问题的定位?
14、JDK 里面带的工具你知道哪些?
15、基本数据类型 BIT 长度?
16、CHAR 能不能存中文? .....
17、谈谈你对泛型的理解?
18、JAVA 程序是怎样运行的?
19、GC ROOT 有哪些?
20、栈帧的大小什么时候确定?
21、静态 FILED 声明和构造器哪个先执行?
22、线程创建方式是什么?
23、传统 I/O 跟 NIO 的区别?
24、消息队列的在各种场景下如何选型?
25、JAVA 的安全性体现在哪里?
26、STATIC 方法怎么访问非 STATIC 变量?
27、讲下你理解的 JAVA 多继承?
28、JAVA 基本类型有哪些?
29、线程池如果满了会怎么样?
30、什么是双亲委派机制,它有什么作用?