2021春招常见面试题

这几天一直在准备面试,所以整理了一些面试题,希望对要找工作朋友的能有个参考和学习的方向,以下有一些是我自己实际遇到的面试题,还有一些是别人的面试题,我都整理出来了!

Java并发相关

这个是问我问的最多的一类面试题了,可能面试官真的很喜欢问并发把,废话不多说,看题:

  1. 为什么要有并发

  2. 引入多线程有什么问题

  3. 什么是共享变量,内存模型了解吗

  4. 怎么保证线程安全

  5. 乐观锁和悲观锁了解吗,什么时候用,为什么要这么用

  6. volitle关键字什么作用,一般什么时候用,用了就线程安全嘛?

  7. 让hashmap线程安全有几种方式,你更推荐用哪种方式,为什么更好?

  8. 用的是什么线程池

  9. 阻塞队列的底层源码

  10. 如果你自己实现一个阻塞队列,你会怎么设计,为什么

  11. 线程和进程区别

  12. Linux系统,运行Java程序是一个进程还是一个线程

  13. 锁升级的过程

  14. ReentrantLock和Synchronized有什么区别

  15. 看过源码吗?讲一下可重入锁的原理

  16. 什么是死锁?怎样解决死锁?死锁和饥饿有什么区别?

数据库MySQL相关

  1. InnoDB和MyISAM两个存储引擎的优缺点,MySQL用的是哪种存储引擎?
  2. MySQL索引优化知道多少?
  3. MySQL三大范式知道吗?
  4. mySQL普通索引,唯一索引,主键索引的区别
  5. MySQL分库分表了解过吗?
  6. MySQL底层的数据结构是什么?
  7. InnoDB存储引擎和MyISAM存储引擎的索引查询以及索引存储有何异同?
  8. 为什么MySQL的底层用的是B+树而不是B树,这两者有什么区别?

数据结构相关

  1. ArrayList和LinkedList的异同?
  2. HashMap的底层数据结构?
  3. HashMap的扩容是怎么做的
  4. HashMap底层为什么使用红黑树而不是其他的平衡树
  5. HashMap的红黑树的阈值为什么是8?
  6. 二叉树的插入、删除操作都是怎样的?
  7. 自己实现一个队列,会打算如何实现?为什么?
  8. HashMap和TreeMap有什么区别?什么场景下使用treemap?

redis相关

  1. redis是单线程的还是多线程的?
  2. redis单线程为什么这么快?
  3. redis的缓存穿透,缓存击穿,缓存雪崩都有什么区别?如果发生了这类问题有什么针对性的解决办法吗?
  4. 用redis做过什么?
  5. redis的持久化是如何实现的?
  6. redis集群是如何搭建的?他的高可用性是由什么来保证的?
  7. redis有什么分布式锁吗?在实际的项目中有用过redis锁吗?
  8. redis五大数据结构
  9. 看过redis底层源码吗? redis底层的数据结构是什么?
  10. redis的IO复用技术可以说一下吗?
  11. redis的订阅-发布模式有什么特点?

计算机网络相关

  1. 计算机网络的五层协议是什么?
  2. TCP和UDP有什么区别?
  3. Https和Http协议有什么区别?
  4. 请求方式get和post有什么区别?
  5. TCP是如何实现可靠传输的?TCP协议就不会发生丢包之类的问题吗?
  6. TCP的拥塞控制,滑动窗口了解吗?
  7. IPV4地址和IPV6地址有什么区别?

由于我在面试过程中都没有被问到过与一些框架相关的,比如springboot,SSM之类的,所以这里就不整理这部分的面试题了。希望能帮到大家!

还有,因为篇幅有限,一个问题展开聊的话要写很多,不如大家去网上找资源来的快哦,所以这里就不给出答案啦!后续如果有时间的话会针对这其中的某一些面试题展开聊。不过可能一篇博客真的只能说一题。

你可能感兴趣的:(面试,java,redis,mysql)