2021年眼看已经结束了,马上就要进入的金三银四面试季,不知道你收获到心仪的offer了吗?
今天为大家总结下大家在各个大厂遇到的面试题,并在文章末尾为大家准备好了面试学习资料
阿里面试题总结
HashMap底层如何实现?
Hash一致算法?
说说HashMap和ConcurrentHashMap的区别?treemap和HashMap的区别?
java的内存分区?
java对象的回收方式,回收算法?
CMS和G1了解吗?
CMS解决什么问题,说一下回收的过程?
CMS回收停顿了几次?
java栈什么时候会内存溢出,java堆呢,说一种场景?
集合类如何解决这个问题(软引用和弱引用),讲下这个两个引用的区别?
java里的锁了解哪些?
synchronized锁升级的过程(偏向锁到轻量锁再到重量级锁),分别如何实现的,解决的是哪些问题?
Tomcat的基本架构是什么?
什么是类加载器?
说说双亲委派模型机制?
GC的机制是什么?GC算法和回收策略?
线程池由哪些组件组成?
有哪些线程池,分别怎么使用?拒绝策略有哪些?
什么时候多线程会发生死锁,写一个例子?
Redis的数据结构是什么? 线程模型说一下?
讲讲Redis的数据淘汰机制?
说说Redis的数据一致性问题?
Redis的分布式怎么做?
RPC讲一下?
三次握手和四次挥手?如果没有三次握手有问题吗?
Http请求过程,DNS解析的过程?
InnoDB支持的四种事务隔离级别名称是什么?有什么区别?说说MySQL隔离级别?
事务的特性及慢查询?
BTree机制说一下?
京东面试题总结
事务的ACID,其中把事务的隔离性详细解释一遍
脏读、幻影读、不可重复读
红黑树、二叉树的算法
平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁?
jdk1.8中,对hashMap和concurrentHashMap做了哪些优化
如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值
synchronized 和 ReentranLock的区别?
ThreadLocal?应用场景?
Java GC机制?GC Roots有哪些?
MySQL行锁是否会有死锁的情况?
乐观锁和悲观锁了解吗?JDK中涉及到乐观锁和悲观锁的内容?
Nginx负载均衡策略?
Nginx和其他负载均衡框架对比过吗?
Redis是单线程?
Redis高并发快的原因?
如何利用Redis处理热点数据
谈谈Redis哨兵、复制、集群
工作中技术优化过哪些?JVM、MySQL、代码等都谈谈
Spring Cloud用到什么东西?如何实现负载均衡?服务挂了注册中心怎么判断?
网络编程nio和netty相关,netty的线程模型,零拷贝实现
分布式锁的实现你知道的有哪些?具体详细谈一种实现方式
高并发的应用场景,技术需要涉及到哪些?怎样来架构设计?
接着高并发的问题,谈到了秒杀等的技术应用:kafka、redis、mycat等
美团面试题总结
Zookeeper在项目中的使用及原理;
Springcloud的一些组件介绍;
多线程的创建方式
服务器CPU数量及线程池数量的关系?
说说Mysql的sql优化
Redis持久化方式:rdb、aof;redis中哪个版本开始可以对分布式使用;
Nginx的使用场景;
Dubbo超时重试;Dubbo超时时间设置
如何保障请求执行顺序
分布式事物与分布式锁(扣款不要出现负数)
分布式session设置
JVM内存模型
数据库垂直和水平拆分
MyBatis如何分页;如何设置缓存;MySQL分页
熟悉IO么?与NIO的区别,阻塞与非阻塞的区别
分布式session一致性
分布式接口的幂等性设计「不能重复扣款」
网易面试题总结
如何保证服务幂等性?
kafka数据分区和消费者的关系,kafka的数据offset读取流程,kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序
cms垃圾回收机制
springcloud各个组件功能,内部细节,与dubbo区别,dubbo架构,dubbo负载策略
mapreduce原理
nio,bio,sellector/epoll,aio,netty⾃带编解码器,netty优势,java内存模型
akka模型
java arraylist,linkedlist区分及实现原理,hashmap和concurrenthashmap区分及实现原理,concurrenthashmap 1.7和1.8区分, 实现细节,linkedhashmap排序原理,应⽤如何保证数据幂等
web.xml listener,filter,servlet加载顺序。如何不再web,xml中配置来加载filter
⽆穷数就topK问题,提供多个⽅案
CourrentHashMap JDK1.7和JDK1.8有什么区别?
线程a,b,c,d运⾏任务,怎么保证当a,b,c线程执⾏完再执⾏d线程?
.分布式系统中如何保证数据的⼀致性?
.拆分微服务应该注意哪些地⽅,如何拆分?
SpringCloud全家桶包含哪些组件?
有没了解Docker,Docker和虚拟机有什么区别?
同⼀个宿主机中多个Docker容器之间如何通信?多个宿主机中Docker容器之间如何通信?
⾼并发系统如何做性能优化?如何防⽌库存超卖?
最后总结
看了这么多面试发现大厂会被问到最多的知识点就是:JVM原理、多线程、数据结构和算法、高并发、设计模式等内容,都说面试造火箭,大环境如此,那你也要把火箭造好,不然连拧螺丝的机会都没有,以下是为大家整理的大厂学习路线梳理以及学习资料:
筑基必备技能:并发编程,JVM,网络编程与高效IO,Mysql,Tomcat
设计思想与开源框架:SSM(Spring+SpringMVC+MyBatis)
性能直线提升架构技术:ZK,Nginx,RabbitMQ,RocketMQ,Kafka,elastic
高效存储让项目性能起飞:Redis,MongoDB,MySQL,Mycat
分布式扩展到微服务架构:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S
以下资料适合工作1-3年中高级程序员领取
说明:本文限于篇幅,故而只展示部分的面试内容,完整的 Java面试学习文档小编已经帮你整理好了,有需要的朋友点赞+关注我后,点击此处领取Java、大厂面试学习资料哦