部门:两轮车时长:1小时1、进程和线程区别2、用户态和内核态,为什么要分两种状态?3、计算机有什么技术可以减少用户态和内核态的切换(零拷贝)4、零拷贝的原理,文件映射、内存映射5、什么分布式中间件用到零拷贝(RocketMQ)6、tcp,如何保证可靠,粘包问题。7、http、https区别,两者握手流程8、Java线程安全的数据结构,ConcurrentHashMap的原理9、synchronized、ReentrantLock10、hashmap扩容时机,拉链法之类、什么时候转红黑树,红黑树比链表好的地方。11、不说hashmap,单单说哈希冲突,除了拉链法,还有什么(开放地址法、再哈希)12、线程池相关,需要调用多个接口,并且需要等待这些接口都执行完毕之后再继续处理。13、submit和execute区别,submit可以获取返回值14、JVM垃圾回收,简单说说15、除了大对象直接进入老年代,还有什么机制(计数)16、Redis数据结构,数据结构底层了解什么,string底层如何存储(字节数组),有序表的底层跳表,应用场景?17、Redis引入多线程的原因?18、Redis的hash类型,出题:三个表 a主表 b是a的子表 c是b子表 三个表构成数据集存储到redis,用什么类型来关联19、MySQL索引类型20、MySQL字符集区分大小写21、InnoDB的锁22、Elasticsearch的使用场景,如何同步数据?分布式部署,数据写入Elasticsearch的短时间内是无法读到的,如何解决?1、通过es的refresh,设置较低的 refresh 间隔进行数据的刷新。2、用get直接取读,不依赖index的刷新。3、写入时强制刷新23、RocketMQ延迟消息,消息幂等,如果RocketMQ成功返回,但MySQL数据没有插入成功,幂等应该加在哪里?面试官引导应该加在队列上。24、代码规范题:输入年份判断是否为闰年。没写代码,主要看输入条件的判断,边界条件。