![image.png](https://static.studygolang.com/190127/18ab4dc55f86698e6a79416522a18772.png)
阿里一面:
1.osi七层网络模型,五层网络模型,每次层分别有哪些协议?
2.死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决?
3.如何判断链表有环?
4.虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型?
5.虚拟机调优参数?
6.拆箱装箱的原理?
7.JVM垃圾回收算法?
8.CMS G1?
9.hashset和hashmap的区别,haspmap的底层实现put操作,扩容机制,currenthashmap如何解决线程安全,1.7版本以及1.8版本的不同?
10.md5加密的原理?
11.有多少种方法可以让线程阻塞,能说多少说多少?
12.synchronized和reetrantlock锁?
13.AQS同步器框架,countdowmlatch,cyclebarrier,semaphore,读写锁?
阿里二面:
1.B-Tree索引,myisam和innodb中索引的区别?
2.BIO和NIO的应用场景?
3.讲讲threadlocal?
4.数据库隔离级别,每层级别分别用什么方法实现,三级封锁协议,共享锁排它锁,mvcc多版本并发控制协议,间隙锁?
5.数据库索引?B+树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考虑什么?索引会不会使插入、删除作效率变低,怎么解决?
6.数据库表怎么设计的?数据库范式?设计的过程中需要注意什么?
7.共享锁与非共享锁、一个事务锁住了一条数据,另一个事务能查吗?
8.Spring bean的生命周期?默认创建的模式是什么?不想单例怎么办?
阿里三面:
1.高并发时怎么限流?
2.线程池的拒接任务策略?
3.HashMap和Hashtable的区别?
4.实现一个保证迭代顺序的HashMap?
5.说一说排序算法,稳定性,复杂度?
6.说一说GC?
7.JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
8.TCP如何保证可靠传输?三次握手过程?
9.springboot的启动流程
10.集群、负载均衡、分布式、数据一致性的区别与关系?
11.数据库如果让你来垂直和水平拆分,谁先拆分,拆分的原则有哪些(单表数据量多大拆)?
12.最后谈谈Redis、Kafka、 Dubbo,各自的设计原理和应用场景?
四面(HR)
聊聊未来的规划,平时生活的爱好,主要还是在看沟通和交流能力!
面试总结:
通过这次面试题和之前发的阿里面试题来看,可以总结出目前互联网公司面试考点为:
性能调优、算法数据机构
高并发下数据安全、接口冪等性、原子性等
分布式下协同、已经锁的处理
数据库的分库分表、项目之间的垂直拆分
详细技术点为:
HashMap,JVM 【必问】,Dubbo,Mybatis,Zookeeper,http tcp/ip
最后
针对于上面的面试题我总结出了互联网公司java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
资料领取方式:加QQ群930254941,进群既领取资料!
点击链接加入群聊【java架构交流群】:https://jq.qq.com/?_wv=1027&k=57qP2qp
![image.png](https://static.studygolang.com/190127/0a205fae62cfe53b789a471304dd1b77.png)