系列目录
以下相关最后更新于
2022-03-07
不同于网上被翻烂的八股文或者面试题目,这里是我这几年收集的一些比较有深度的,对标大厂系列的面试题,如果这些题你能答出80%,那么你在面试中将所向披靡。
系列文章的答案会慢慢更新……
- Java基础系列
- Java并发系列
- JVM系列
- MySQL系列
- Spring系列
- SpringBoot系列
- Redis系列
- RocketMQ系列
- Tomcat系列
- 系统设计相关
- 计算机网络系列
- 操作系统系列
- 计算机组成原理系列
Java基础相关
IO篇
- 序列化是什么?为什么要序列化?不序列化可以吗
- Java中的BIO、NIO?具体怎么支持的?
- channel和buffer是什么?
- Reactor 线程模型了解吗?单线程,多线程,主从模型?
- 零拷贝是什么?Java中有用到零拷贝吗?
- Java中的直接内存和mmap有关系吗?
- 为什么要用直接内存?
- 直接内存,或者堆外内存的本质是什么?
- 关于java中直接内存,堆外内存,mmap,零拷贝
- 为什么java不直接把堆内存中的数据地址给内核,让内核直接来操作?
- NIO中提供的FileChannel和mmap区别和使用场景?
- 字节流和字符流?为什么有字节流了还要字符流
- 为什么会有缓冲区?不带缓冲区会有什么问题吗?
- 流为什么打开就必须关闭?不关闭会有什么问题吗?
- socket是什么?socket和tcp/udp有什么区别?
- socket会阻塞吗?哪些情况会发生阻塞呢?
集合篇
- 为什么要用集合,数组链表不行吗
- 项目中怎么选用集合
- 为什么hashmap是线程不安全的,那你在项目中有思考过这个问题吗
- 容量不是2的整数次幂 还用&(length-1) 影响会怎样?
- 扩容、哈希等八股文
- 为什么扩容会出现死循环问题
- 如果让你来做HashMap扩容,如何实现在不阻塞整个Map的情况下扩容?
- 为什么HashMap 不用B+树?
- 为什么hashmap扩容是2倍,而arraylist却是1.5倍呢
- List怎么自定义排序?
- 内部的排序算法是什么?
- ConcurrentHashMap是怎么保证线程安全的
- 为什么1.8取消了segment
- 为什么线程安全的容器key和value不支持null值
- 为什么说set是无序?
- set是怎么保证不重复的
- 如果哈希冲突了呢(equals重写的重要性)
- Queue中add和offer的区别
- Queue中peek,poll,remove的区别
- 快速失败和安全失败原因?
其他篇
- String类型怎么不可变的?为什么要不可变?
- String的hashcode是怎么计算的?其它基础类型呢?
- 为什么String采用31作为乘数?
- final关键字的用处是什么?加在类上,方法上,字段上有什么区别?
- 反射是什么?怎么使用的?为什么要有反射
- java 反射class.forName()加载类和使用classLoader 加载类的区别
- JDK动态代理为什么需要依赖接口?
- 浮点型是什么?为什么会有浮点型?为什么计算机保存的不是准确值?
- 什么是注解?注解如何使用?
- 注解的原理是什么?反射是怎么找到注解信息的?
- 项目中怎么使用的枚举类?枚举类是怎么实现的?怎么保证单例?
- Java定时任务怎么实现的?Timer有什么缺陷?怎么解决?
- Java是引用传递还是值传递?
- 说一下深拷贝和浅拷贝的区别?