面试总结

总结一下最近面试主要的问题:

Java 基础
  1. HashMap的实现原理,死链问题,非线程安全问题,链表转红黑色以及红黑树转链表
  2. ConcurrentHashMap 的实现原理
  3. LinkedHashMap 原理
  4. String 和 StringBuilder 的区别是什么
设计模式
  1. 单例都有哪些实现方式,写一下懒加载的双重检验锁模式(为什么要加 volatile)
  2. 都了解哪些设计模式,常用的设计模式是哪些
  3. 模本设计模式的优缺点,为什么使用模板设计模式
Spring
  1. Spring 如何处理 Bean 的循环依赖问题
  2. BeanFactory 和 FactoryBean
  3. Spring Bean 的生命周期
  4. Spring Bean 的加载顺序
  5. 谈谈你对于 Spring 的理解
  6. Spring MVC 原理
  7. Spring AOP 的原理,是怎么使用的 AOP
  8. 谈谈对于 SpringBoot 的理解
  9. Spring 的声明式事务的实现原理了解吗?
  10. Spring Cloud 的限流算法了解吗
并发编程
  1. 线程池都是这么配置的
  2. 线程池中各个参数的含义
  3. Future 的 get 方法,有超时时间限制吗
  4. 线程池的拒绝策略,默认采用的那个拒绝策略
  5. 死锁示例
  6. 如何设置你的线程数
  7. 线程都有哪些实现方式
  8. 锁的机制
  9. 什么是偏向锁、轻量锁、锁粗化、锁消除等
  10. 线程的生命周期,画一下各个状态之间的流程图
  11. 关于 ThreadLocal 是怎么使用的,ThreadLocal 原理
  12. 知道 CAS 吗,讲一下 CAS
  13. synchronized 和 ReentrantLock 的区别
  14. synchronized 原理了解吗?都用在什么场景中
分布式锁
  1. Redis 实现分布式锁的原理
  2. Zookeeper 实现分布式锁的原理
Zookeeper
  1. Zookeeper 的原理
  2. Zookeeper 的应用场景
  3. Zookeeper 如何保证一致性(CP原则)
  4. Zookeeper 包含哪些类型的节点
  5. 讲一下 Paxos 算法
Kafka
  1. Kafka 原理
  2. Kafka 应用场景,为什么要使用 Kafka
  3. Kafka 为什么速度那么快
  4. Kafka 如何保证数据只消费一次和至少消费一次
  5. Kafka 为什么不通过扩展 Partition 来增加吞吐量
  6. Kafka 0.8 分支至少发送一次和最多发送一次,默认是什么
Redis
  1. 说一下 Redis 都支持哪些数据结构,你常用的都有哪些
  2. 为什么 Redis 这么快
  3. Redis 的持久化怎么做的
  4. Redis 实现分布式锁的细节
  5. Redis 雪崩、击穿、穿透了解吗?都有什么解决方案
Storm
  1. Storm 架构图
  2. 为什么要使用 Storm
JVM
  1. JVM 内存模型
  2. 常用的哪些 Java 命令
  3. 讲一下 CMS 垃圾收集器
  4. 类的加载机制和类的加载流程
  5. 如果你要实现自己的类加载器,需要实现那个类,重写那个方法
  6. Full GC 什么时候发生
  7. 如何排查 OOM 的情况
Elasticsearch
  1. es 的原理了解吗
  2. 使用es存储什么,为什么要用es
  3. es 如何做切表
Docker
  1. docker 常用的命令都有哪些
MySQL
  1. MySQL 引擎都有哪些,他们之间的区别是什么
  2. 索引的存储结构是什么
  3. B+树和B树的区别
  4. 如何优化你的 SQL
  5. left join 和 right join 的区别
  6. 什么是幻读,能举个例子吗
  7. 事务的隔离特性都有哪些,都解决了什么样的问题
  8. 了解当前读吗
  9. MySQL 都有哪些锁
  10. MySQL出现死锁怎么办,怎么排查
  11. 如何无感知的进行数据库切换
  12. 分库分表了解吗,什么是水平拆分,什么是垂直拆分
Linux
  1. 常用的 Linux 命令
  2. Linux 文件目录结构,每个文件夹都是干什么的
算法
  1. 快排
  2. 二叉树查找
  3. 给两个有序数组,找出其中相同的元素
  4. 使用数组实现一个双端栈
  5. 两个数组,元素排列顺序一样,但是其中一个数组比另一个数组多一个元素,找出这个元素
  6. 红包的随机算法(最大概率不能超过90%)
  7. 二叉树前中后序遍历,递归以及非递归(问了两次)
  8. 翻转链表(问了两次)
  9. lru 实现(问了两次)
  10. 多线程打印 1~100(问了三次)
maven
  1. maven 的生命周期
  2. maven 如何解决jar包的依赖冲突问题
git
  1. 常用的 git 命令有哪些
  2. git merge 和 git rebase 的区别是什么
Tomcat
  1. Tomcat 做过什么优化
Nginx
  1. nginx 都有哪些负载均衡算法
  2. nginx 原理了解吗
MonogoDB
  1. 为什么要使用 MongoDb
  2. mongo 如何加索引
  3. mongo的分片了解吗
应用场景
  1. 高并发的情况下,如何保证服务的稳定
  2. 如果业务方给你一个大概的需求,你接下来该干什么
其他
  1. 用过 Netty 吗
  2. 微服务怎么做的
  3. 讲一下你最熟悉的项目的架构,画一下架构图
  4. 你遇到最难的问题是什么,怎么解决的
  5. 当你使用多线程时,一定会操作IO,比如数据库,有没有做过最数据库的压测
  6. 分布式ID了解吗
  7. 微博的长链接转短连接算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值