110分钟,全程无项目和算法,全是八股深挖,被拷打惨了
1、谈一谈你对java面向对象的理解,什么时候用接口,什么时候用抽象类,从本质上讲一下区别?
2、都有了解过哪些设计模式?创建对象的设计模式有哪些?工厂模式和建造者模式分别在什么场景下使用,举一个具体的例子
3、java的hashmap在1.8之前链表中采用的头插法的方式,为什么1.8之后改成尾插法?头插法的方式可能会极限情况连成一个环,举一个具体的例子。
4、对于hashmap而言,应该如何设计hash函数,jdk1.8设计哈希函数源码有了解过吗,使用的什么算法?hashmap的扩容为什么要采取2的整数次幂?
5、java中double一共有多少位?为什么采用64位来存储,每一位都分别存储什么?
6、java中两个integer类型比较,为什么使用equals(),不使用==?
8、分别讲一讲jvm中的垃圾回收算法,为什么老年代要使用标记-整理算法而不是标记-复制算法?
9、jvm中都有哪些结构,哪些是线程独立的,哪些是线程共享的?
10、一个数据从磁盘到网络中,如果经过jvm,一共发生了多少次拷贝,为什么比传统拷贝多了一次?
11、如果让你设计一个垃圾回收器,你会从哪些方面考虑?
12、讲一讲内核态和用户态的区别,用户态可以直接访问内核态吗,如何想访问怎么办?
13、linux操作系统中传统的文件从磁盘发送到网络中一共需要几次拷贝,分别是哪些拷贝,涉及到几次用户态到内核态的转换?
14、零拷贝是怎么实现的?用什么函数实现的,零拷贝真的是一次拷贝也没有吗?
15、hdfs的三副本机制是如何实现的?如果现在需要存储三个副本,这三个副本安排到几个机架上合适?
16、kafka3.0采用了新的选举机制有了解过吗?是什么选举算法?KRaft算法有了解吗?
17、mysql的acid是什么,分别是如何实现的?
18、 mvcc的实现原理?可以解决幻度吗?间隙锁的实现原理?会产生死锁吗?
19、讲一下索引的结果,b+树的叶子结点之间是单链表还是双链表,为什么使用双链表?
20、索引覆盖和索引下推分别是什么?什么情况下索引会失效?
21、在使用explan的时候你最关心的是什么?
22、举一个mysql死锁的例子?
23、在数据开发过程中,如何解决数据占很大内存问题,如何解决数据杂乱无章的问题?