1、mysql数据库索引的结构
2、InnerDB行级锁是基于什么样的机制实现的,具体加的什么锁,会不会产生死锁,什么样的场景会发生死锁
3、InnerDB在什么情况下启动这个行级锁,通过索引,还是不通过索引
4、间隙锁、范围锁
5、Mysql的默认隔离级别,解释一下
6、解释下幻读,可重复读会产生幻读吗
7、怎么去避免幻读现象?(间隙锁)
8、怎么去实现可重复读?
9、哪些算法平时涉猎比较多(排序)
10、快排是否是稳定的算法?为什么?是因为相同的数字导致的不稳定吗?
11、快排最坏的时间复杂度?什么情况下是最坏的?
12、归并排序最坏的时间复杂度?
13、这么多排序算法,空间复杂度最坏的是哪一个?为什么?
14、冒泡排序最好情况?最坏的情况?分别在什么情况下
15、HashMap底层的数据结构是怎么样的?
16、如果向HashMap放一些数字,哪些是存在链表里面的,哪些是存在红黑树里面的?
(面视官解答:先有个数组,然后通过hash向数组里面放元素,如果hash值冲突了,就可能产生冲突,在这个时候用的红黑树,在8之前是单链表,8之后是红黑树,红黑树主要是解决冲突的问题),解释完然后问 怎么去设计这个数组的大小?回答2的幂,为什么要设计成2的幂次方?数组不够用应该怎么去扩容,底层是自动扩容,应该怎么去保证这个扩容?
17、Jvm的垃圾回收机制 gc的算法
18、Jvm的内存的分布
19、平时用到了什么设计模式吗
20、像mybaties、spring等框架底层用的什么样的设计模式
21、多线程平时有用到吗?实现方法?
22、线程池有哪些常用线程池?有什么区别?在什么场景下进行使用
23、设计一个线程池需要哪些数据结构?需要哪些元素定义?
我回答了set,然后接着问set去取的话,是单线程还是并发的去取?
24、Cache线程池是否一个单独的线程去分配这些工作,需不需要什么这个角色
25、如果让你设计这个线程池,怎么优雅的去shutdown、wait、notify、notifyAll等运行?怎么去处理一个任务队列?并发线程的主次?怎么样去协作的
26、介绍一下Java的反射机制
27、在使用反射中,private方法可以被执行吗
28、反射在项目中有用过吗?
29、Java先编译成class文件再运行,反射是通过动态加载某些类,这些类之前并没有在jvm中,反射可以动态加载这些类,反射调用其属性方法。正常的类加载的过程了解吗?什么样的类用什么样的类加载吗还是一个统一的类加载器?
30、统计字符串的一个连续不重复的最长子串
31、给你10w个单词,怎么找出重复次数最多的十个
32、框架的底层有理解吗
33、缓存有用过吗
全部评论
(8) 回帖