面试质量非常高。。。。非常高。。。高。。。
一面
自我介绍
看过hotspot哪些模块,模板解释器工作说一下,生成的native code放在哪,怎么处理safepoint的
说项目,实现了哪些字节码指令;monitorenter monitorexit怎么实现的;GC;new Thread怎么实现的;synchronized怎么实现的,对象锁是每个对象都有吗,怎么确定是否给对象分配对锁;怎么进行对象分配的,STW之后用户线程还能继续吗so on
算法题,无向图的复制;不消耗额外空间重写一个;如果多线程怎么做,说一下
lookupswitch和tableswitch区别
学校开过哪些课,编译原理自己学的吗
Collections.sort(),归并快排区别,为什么jawa老版本用归并不用快排
HashMap说一下,cpp的map和jawa的HashMap区别,hash冲突有哪些解决方法,unordered_map怎么解决hash冲突的
GC新生代复制怎么解决对象指针改变(移动)的问题的,CMS写屏障,三色标记
调试方法有哪些,条件断点打过吗
有什么要问的
二面
C 和jawa区别,确定性gc非确定性gc区别
JMM 看过哪些,volatile重排序,sfence lfence mfence
X86/x64 加不加volatile原子性与否,如果用jawa你会怎么做
口述引用计数智能指针实现
C RAII, jawa能实现RAII吗
C 怎么做一个内存检测,那种可以看内存分布情况的
C 怎么做一个内存泄漏检测工具,类似valgrind
如果让你给C 加一个gc怎么做
参加过哪些开源社区,提交的请求为什么没有merge;成绩怎么样,实习满分是什么概念,英语怎么样,翻译的effective modern cpp是帮老师翻译的吗etc
标量替换,逃逸分析,标量是什么
你的JVM怎么处理safepoint,这种实现有什么问题,如果for循环很久到不了safe point就内存溢出怎么办,回边有了解吗
有什么要问的
三面
三面问了一个宇宙。。。
HotSpot的oop是什么,简单说一下
JVM的偏向锁,轻量级锁,重量级锁。偏向锁怎么做的,轻量级怎么膨胀到重量级。
JVM新生代划分,TLAB
CMS详细阶段以及做的事情
C 的RAII,lock_guard,有什么好处
C 的shared_ptr和unique_ptr
Full GC是什么,在什么时候发生,这个正常吗,解决方案
Safepoint知道吗,如果在JNI方法里面走到JNI的safepoint,hotspot大概是怎么实现safepoint的
G1GC用过吗,用户能控制吞吐量吗,CMS和G1GC各有什么好处,什么场景用什么
一个程序的编译流程,词法分析语法分析,中间IR,代码生成
MySQL分库分表,思路就行 (!)
分布式锁怎么实现 (!)
如果一个问题你实在解决不了怎么办,就是gdb coredump,文档都搞不定的情况
如果项目很急,另一个同事非常不给力,你怎么办
SpringBoot用过吗,相对于传统spring有什么好处 (!)
MVC是什么,分别说一下,你觉得VUE做MVC和后端做有什么不同 (!)
Go语言用过吗,协程说一下,和线程比较一下
Maven可以做什么,能自动管理依赖吗,自动下载的jars大概放在哪个目录,git rebase,git merge区别
持续集成用过吗,是什么东西,为什么要用它,交叉编译不也是可以吗
CAS在底层做了,lock cmpxchg怎么做的
SIMD知道吗,说一下 (!)
JVMTI说一下 (!)
算法,二叉树的分层遍历
四面
自我介绍
创建线程的方式有哪些,Java线程模型;1:1和N:M优缺点
线程死锁怎么排查;jps jmap分别用于什么,如果上述方案排查不到怎么办
怎么查看Java线程对应的OS线程PID
synchronized和ReentrantLock
线程池工作原理,怎么处理IDLE线程的,代码上说一下
ConcurrentHashmap和JDK8之前有什么区别;size是怎么求的
对象的hashCode底层有哪几种方法;
快排原理,非递归怎么实现;堆排序原理
MySQL隔离级别,脏读幻读是什么,会在哪一级发生
索引的底层在InnoDB和MyISAM上的不同
参加过什么开源社区;生活学习比赛etc;
有什么要问的
HR面
人生境遇追求