一轮面试
形式:电话面试。
内容:Java基本数据类型,Redis基本数据类型和底层数据结构以及自己的使用,HashMap底层实现,谈谈SpringBoot的优势以及特点。
用时:二十分钟。
二轮面试
形式:现场面试。
内容:非常广泛,先说一个项目经验,讲讲自己做的工作,然后开始提问,涵盖了JVM内存分配,多线程,锁Synchronized和Lock的区别,CAS的原理,SpringBean的生命周期,SpringCloud的工作原理,Redis的使用场景,MQ的使用场景,分布式锁的使用场景,Mysql索引的区别和底层数据结构以及联合索引和单列索引的区别,Linux命令(查询某个进程,文件数字排序),Git命令(合并两个分支,怎样区分两个分支之间的差异),C语言手写两个小算法(统计一串英文每个字母出现次数,反转一个字符串),函数式编程(List转Map)以及底层实现,JS函数式编程,更多的不记得了,大概这些。
用时:一个小时。
三轮面试
形式:现场面试。
内容:谈谈项目经验(自己的工作,项目的目的及解决的问题,项目本身有没有更好的解决方案,数据如果丢失怎样处理),谈谈HashMap的底层实现(为什么是非线程安全的),谈谈ConcurrentHashMap的实现机制,为什么HashTable要被废弃掉了,Java8的新增特性,平时的学习习惯(知识来源,有没看什么技术书籍),JVM内存分配,sql语句性能优化及联合索引和单列索引的区别,Synchronized底层实现(怎样实现同步),大概这样,更多不记得了。
用时:二十分钟。