1.自我介绍
2.介绍项目
3.你的项目中提到用过滤器去判断用户是否登录,你的用户账号鉴权是怎么去做的?怎么通过过滤器去判断他登录了?
4.HTTP是面向无连接的,他的每一次请求都是单独的,怎么去判断他是否登录?
5.你对java集合框架的了解?
6.对HashMap了解哪些?
7.你知道HashMap的查询效率是多少?O(1)
8.1.8之后引入了红黑树,红黑树相较于单向链表的优点是什么?为什么红黑树比链表快?
9.HashMap是线程安全还是不安全?不安全
10.那如果需要线程安全应该用什么结构?ConcurrentHashMap或hashTable,前者效率更高
11.你对多线程了解过多少?
12.Java创建线程用哪些方式?继承Thread类,实现collabal接口,实现runnable接口
13.他们有什么区别?
14.数据库中索引是什么?对我们有什么帮助?
15.索引存储在什么位置?内存还是硬盘?硬盘中
16.索引以什么结构存储在硬盘中?B+树
17.B+树相较于哈希,一般的排序树,还有链表,相较于这些数据结构B+树有什么优点?为什么更常用的是B+树而不是其他的?
18.MySQL中同样提供对哈希索引的支持,而且哈希查询效率非常快,为什么不用哈希而用B+树?想想哈希很难支持的场景,B+树更容易支持?哈希是散列的,无序的,范围查询时很难实现,B+树数据存在叶子节点上而且叶子节点有链的指向,他会很支持范围查询。
19.SpringBoot在spring家族中充当什么角色,他有什么优点?
20.简单讲讲IOC?
21.将创建对象的控制权交给spring去管理,这有什么优点?
22.在项目中怎么使用Spring框架?
23.你是spring用的多一些还是springBoot多一些?使用springboot后还会经常在spring的xml中配置吗?
24.用spring的哪些注解去代替XML?
25.你对redis了解多少?他有什么优点?
26.为什么缓存会比数据库快?
27.缓存在什么地方?缓存在内存里,数据库慢是存在硬盘里
28.滥用缓存会出现什么问题?缓存击穿,缓存穿透,缓存雪崩。
29.说一下缓存穿透
30.布隆过滤器是什么数据结构?有什么特点?他是一个比较高效的判断一个数据不存在的数据结构
31.算法一:加入给一个单向链表,找到