HTTP、TCP、UDP、IP、ICMP、DNS、FTP等协议分别处于哪层?
TCP和UDP的区别?
TCP为什么要三次握手?
TCP为什么要四次挥手?
time_wait的作用是什么?
GET 和 POST的区别?
HTTP状态码?(1开头到5开头的各种典型状态码)
ping指令用的什么协议?在哪一层?
ARP协议的作用?
路由器和交换机的区别?
B+树和B树在数据结构上有什么区别?
为什么用的B+树而不是B树做索引?
什么是聚簇索引?
非常重要:联合索引最左匹配原则。一定要弄懂。
如果碰到一个慢查询,优化的思路是什么?
说一下数据库的事务?
怎么理解其中的一致性?
隔离的四个级别?它们分别能解决什么样的并发问题?
脏读、不可重读、幻读,分别是什么意思?怎么解决的?
可重复读的隔离级别实现的方式有哪些?
三重加锁协议说一下?
MVCC的实现原理?
各种join语句有什么区别?(inner、right、left等)
很重要:要会写sql语句|要会写sql语句|要会写sql语句
线程和进程的区别?很常问到***
进程间同步的方式?
死锁发生的条件?
死锁发生的四个条件对应的预防死锁的四个方式?
分页、分段和段页式?
常见的几种分页置换算法?(FIFO、LRU、NRU等)
Java的Object类有哪些方法?分别有啥作用?
equals和hashcode有什么关系?
Java基本数据类型的缓存池(这个我被头条的面试官问到过)
反射的作用和优缺点
对待程序抛出的异常应该怎么处理?
什么是泛型?写一个简单的泛型程序。(58二面问到了,记住泛型的泛类标志的位置即可)
说一下运行时内存区域?
垃圾怎么被标记的?
说一下常见的垃圾回收算法?(整理、复制、清除等)
垃圾分代回收的过程?
CMS的四个阶段?CMS有什么优缺点?
G1的的垃圾回收过程?
类加载的过程?双亲委派模型能解决什么问题?
创建新线程的几种方式?
线程的状态?它们怎么相互变化的?
synchronized关键字有什么作用?
可重入锁ReentrantLock的作用?和synchronized的区别?
volatile关键字的作用?(两个)能保证原子操作吗?
线程池的创建方式?有哪些剧啊定义好的线程池?
创建线程池的有哪些参数?分别啥作用?(ThreadPoolExecutor)
ConcurrentHashMap的数据结构和同步方式?7和8有啥区别?
ioc是什么?resource 和 autowired的区别?
aop是什么?一般在什么地方用?
springboot和springmvc相比,优点在哪?原理上有什么变化?
redis的数据结构有哪些?
redis的持久化方式:RDB和AOF
消息队列用list
类似排行榜的需求用zset
缓存雪崩、缓存击穿知道就行
缓存击穿的解决方案?(布隆过滤器)