2022 年,阿里内推 Java 后端面试题,文末附面试福利
阿里一面题目:
osi 七层网络模型,五层网络模型,每次层分别有哪些协议
死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决
如何判断链表有环
虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型
虚拟机调优参数
拆箱装箱的原理
JVM 垃圾回收算法
CMS G1
hashset 和 hashmap 的区别,haspmap 的底层实现 put 操作,扩容机制,currenthashmap 如何解决线程安全,1.7 版本以及 1.8 版本的不同
md5 加密的原理
有多少种方法可以让线程阻塞,能说多少说多少
synchronized 和 reetrantlock 锁
AQS 同步器框架,countdowmlatch,cyclebarrier,semaphore,读写锁
阿里二面题目:
B-Tree 索引,myisam 和 innodb 中索引的区别
BIO 和 NIO 的应用场景
讲讲 threadlocal
数据库隔离级别,每层级别分别用什么方法实现,三级封锁协议,共享锁排它锁,mvcc 多版本并发控制协议,间隙锁
数据库索引?B + 树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考虑什么?索引会不会使插入、删除作效率变低,怎么解决?
数据库表怎么设计的?数据库范式?设计的过程中需要注意什么?
共享锁与非共享锁、一个事务锁住了一条数据,另一个事务能查吗?
Spring bean 的生命周期?默认创建的模式是什么?不想单例怎么办?
阿里三面题:
高并发时怎么限流
线程池的拒接任务策略
HashMap 和 Hashtable 的区别
实现一个保证迭代顺序的 HashMap
说一说排序算法,稳定性,复杂度
说一说 GC
JVM 如何加载一个类的过程,双亲委派模型中有哪些方法?
TCP 如何保证可靠传输?三次握手过程?
springboot 的启动流程
集群、负载均衡、分布式、数据一致性的区别与关系
数据库如果让你来垂直和水平拆分,谁先拆分,拆分的原则有哪些 (单表数据量多大拆)
最后谈谈 Redis、Kafka、 Dubbo,各自的设计原理和应用场景
面试总结:
通过这次面试题和之前发的阿里面试题来看,可以总结出目前互联网公司面试考点为:
性能调优、算法数据机构
高并发下数据安全、接口冪等性、原子性等
分布式下协同、已经锁的处理
数据库的分库分表、项目之间的垂直拆分
详细技术点为:
HashMap
JVM 【必问】
Dubbo
Mybatis
Zookeeper
http tcp/ip
文末福利
完整版获取:
《Java 高级面试》
《Java 高级架构知识》
《算法知识》
笔者整理的面试题包含但不限于 Kafka、Mysql、Tomcat、Docker、Spring、MyBatis、Nginx、Netty、Dubbo、Redis、Netty、Spring cloud、分布式、高并发、性能调优、微服务等架构技术
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java 的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓