常见面试题
一、Java基础
- 1. JVM结构原理、GC工作机制详解
- 2. JMM内存模型
- 3. HashMap原理及与HashTable的区别 怎么解决hash冲突, 通过链表法,生成链表。为什么使用二叉树
- 4. Java常用集合以及区别
- 5. String、StringBulider和StringBuffer的区别
- 常用设计模式 观察者模式怎么快速的通知某个观察者
- Java序列化以及原理
- BIO、NIO、AIO分析
- 动态代理
- TCP通信协议 socket怎么实现实时传输的,通过socket封装的工具有哪些
- Http及Https
二、并发编程
- 1. synchronized与Lock的区别,如何避免死锁
- 2. 简述volatile关键字 什么时候使用
- 3. 实现线程的两种方式
- 4. 线程池的应用以及实现原理
- 5. JUC相关内容
三、数据库
- 数据库引擎:InnoDB和MyIsam的区别 为什么使用btree
参考:https://www.cnblogs.com/sunsky303/p/8274586.html
- Mysql ACID以及事务隔离级别
- Mysql索引类型以及原理
参考:https://blog.csdn.net/iefreer/article/details/15815455
- 如何防止SQL失效
- SQL如何防止攻击
- Explain关键字以及执行计划详解
四、分布式
- Zookeeper原理
(1) zk实现原理与应用场景
(2) zk选举机制
- Dubbo
(1) Dubbo实现原理
(2) Dubbo协议有几种
(3) Dubbo如何注册到zk上
(4) Dubbo负载均衡机制有哪几种
(5) Dubbo 如何实现超时重试。熔断和服务降级
- RabbitMQ、RocketMQ、Kafka (了解以及基本使用)
- Redis
(1) 常见数据类型以及模式
(2) Redis分布式锁实现
(3) Redis队列
(4) Redis的布隆过滤器及常用的数据类型
(5) 如何实现主从复制的,如何保证数据同步的
- 分布式事务实现数据最终一致性
- Shiro安全框架(应该不属于分布式内容)
- 分布式系统如何实现Session共享
- 分布式架构设计
- 单点登录
- Nginx
五、常用框架
1. Spring常见面试题(参考:)
(1) Spring优点
(2) Spring AOP理解
(3) Spring IOC理解
(4) Spring事务传播行为
(5) Spring Bean加载过程
2. MyBatis常见面试题
(1) 优缺点
(2) #{}和${}的区别
3. Spring Boot
(1) Starter包含哪些内容以及工作原理,自动加载过程
(2) Spring Boot优缺点
(3) Spring Boot自动化配置原理
参考:https://blog.csdn.net/panhaigang123/article/details/79587612
六、性能优化
- JVM调优
- MySQL优化
七、微服务架构
- Spring Could如何实现注册与发现
- Ribbon与Fegin的区别
- 服务网格zuul工作原理
- 断路由Hystrix工作原理
以上参考:https://www.cnblogs.com/sessionbest/p/9396728.html
- Spring Cloud与Dubbo比较
- Tomcat的启动和类加载过程
springmvc 底层 单例模式 多线程 redis底层 分布式锁 动态代理 spring aop ioc dubbo底层