2019阿里巴巴高质量JVM组实习面经(已拿offer)

阿里的面试质量是真的非常高。

  1. 自我介绍
  2. 看过hotspot哪些模块,模板解释器工作说一下,生成的native code放在哪,怎么处理safepoint的
  3. 说项目,实现了哪些字节码指令;monitorenter monitorexit怎么实现的;GC;new Thread怎么实现的;synchronized怎么实现的,对象锁是每个对象都有吗,怎么确定是否给对象分配对锁;怎么进行对象分配的,STW之后用户线程还能继续吗so on
  4. 算法题,无向图的复制;不消耗额外空间重写一个;如果多线程怎么做,说一下
  5. lookupswitch和tableswitch区别
  6. 学校开过哪些课,编译原理自己学的吗
  7. Collections.sort(),归并快排区别,为什么jawa老版本用归并不用快排
  8. HashMap说一下,cpp的map和jawa的HashMap区别,hash冲突有哪些解决方法,unordered_map怎么解决hash冲突的
  9. GC新生代复制怎么解决对象指针改变(移动)的问题的,CMS写屏障,三色标记
  10. 调试方法有哪些,条件断点打过吗
  11. 有什么要问的

二面

  1. C 和jawa区别,确定性gc非确定性gc区别
  2. JMM 看过哪些,volatile重排序,sfence lfence mfence
  3. X86/x64 加不加volatile原子性与否,如果用jawa你会怎么做
  4. 口述引用计数智能指针实现
  5. C RAII, jawa能实现RAII吗
  6. C 怎么做一个内存检测,那种可以看内存分布情况的
  7. C 怎么做一个内存泄漏检测工具,类似valgrind
  8. 如果让你给C 加一个gc怎么做
  9. 参加过哪些开源社区,提交的请求为什么没有merge;成绩怎么样,实习满分是什么概念,英语怎么样,翻译的effective modern cpp是帮老师翻译的吗etc
  10. 标量替换,逃逸分析,标量是什么
  11. 你的JVM怎么处理safepoint,这种实现有什么问题,如果for循环很久到不了safe point就内存溢出怎么办,回边有了解吗
  12. 有什么要问的

三面

三面问了一个宇宙。。。

  1. HotSpot的oop是什么,简单说一下
  2. JVM的偏向锁,轻量级锁,重量级锁。偏向锁怎么做的,轻量级怎么膨胀到重量级。
  3. JVM新生代划分,TLAB
  4. CMS详细阶段以及做的事情
  5. C 的RAII,lock_guard,有什么好处
  6. C 的shared_ptr和unique_ptr
  7. Full GC是什么,在什么时候发生,这个正常吗,解决方案
  8. Safepoint知道吗,如果在JNI方法里面走到JNI的safepoint,hotspot大概是怎么实现safepoint的
  9. G1GC用过吗,用户能控制吞吐量吗,CMS和G1GC各有什么好处,什么场景用什么
  10. 一个程序的编译流程,词法分析语法分析,中间IR,代码生成
  11. MySQL分库分表,思路就行 (!)
  12. 分布式锁怎么实现 (!)
  13. 如果一个问题你实在解决不了怎么办,就是gdb coredump,文档都搞不定的情况
  14. 如果项目很急,另一个同事非常不给力,你怎么办
  15. SpringBoot用过吗,相对于传统spring有什么好处 (!)
  16. MVC是什么,分别说一下,你觉得VUE做MVC和后端做有什么不同 (!)
  17. Go语言用过吗,协程说一下,和线程比较一下
  18. Maven可以做什么,能自动管理依赖吗,自动下载的jars大概放在哪个目录,git rebase,git merge区别
  19. 持续集成用过吗,是什么东西,为什么要用它,交叉编译不也是可以吗
  20. CAS在底层做了,lock cmpxchg怎么做的
  21. SIMD知道吗,说一下 (!)
  22. JVMTI说一下 (!)
  23. 算法,二叉树的分层遍历

四面

  1. 自我介绍
  2. 创建线程的方式有哪些,Java线程模型;1:1和N:M优缺点
  3. 线程死锁怎么排查;jps jmap分别用于什么,如果上述方案排查不到怎么办
  4. 怎么查看Java线程对应的OS线程PID
  5. synchronized和ReentrantLock
  6. 线程池工作原理,怎么处理IDLE线程的,代码上说一下
  7. ConcurrentHashmap和JDK8之前有什么区别;size是怎么求的
  8. 对象的hashCode底层有哪几种方法;
  9. 快排原理,非递归怎么实现;堆排序原理
  10. MySQL隔离级别,脏读幻读是什么,会在哪一级发生
  11. 索引的底层在InnoDB和MyISAM上的不同
  12. 参加过什么开源社区;生活学习比赛etc;
  13. 有什么要问的

你可能感兴趣的:(java)