大家在面试的时候不同程度会被问到JVM的垃圾回收,看面试官水平,有些就背个书就行,比如GC的工作原理,有哪些GC算法和回收器,分别优点和缺点等等,有些面试官估计自己也就背书水平,都没个追问;有些面试官就能追问,一追问就歇菜,比如低延迟的垃圾回收器有哪些以及其原理,跨代引用及解决方案,三色标记及漏标问题处理,等等。
还是那句话,虽然都是些理论的问题,但是在实际开发过程中真的能遇到这些问题来解决实际问题,所以多多了解JVM的实现原理总没有错,既能抗极限面试,又能在适时的时候帮忙解决实际问题,得到领导和同事的赞赏,何乐不为?
下面进入正题,先来个开胃菜,热热身。GC的工作原理就不说了,要准备面试的同学必须倒背如流,不然面试官要说出门右转了…
拼多多一面
首先自我介绍
参加过哪些项目
并发编程三要素?
实现可见性的方法有哪些?
多线程的价值?
创建线程的三种方式的对比?
画出线程的状态流转图
常用的并发工具类有哪些?
CyclicBarrier 和 CountDownLatch 的区别
CAS 的问题:1、CAS 容易造成 ABA 问题2、不能保证代码块的原子性3、CAS 造成 CPU 利用率增加
ReadWriteLock 是什么
一面面试题答案:
拼多多二面
自我介绍
什么是工厂模式?
如何实现单链表的增删操作?
让我说意思JVM的分为哪几块?
由于提及到了内存溢出,面试官问我内存溢出和内存泄漏的区别?
这里问完我就去问了数据库,4大特性是啥,举个例子?
数据的隔离级别有啥,每个隔离级别举个例子?
分布式锁的实现知道到哪些?
你更推荐哪一种锁?Redis的持久化操作有哪些?
如何利用redis处理热点数据
sleep 方法和 wait 方法有什么区别?
synchronized 和 ReentrantLock 的区别
线程 B 怎么知道线程 A 修改了变量
如果你提交任务时,线程池队列已满,这时会发生什么
线程类的构造方法、静态块是被哪个线程调用的
二面面试题答案:
拼多多三面
照例自我介绍和项目介绍;
上来就让我手撕一个单例模式
让我讲了讲代码是啥啥意思?
由于我的项目中提及到JVM,所以给我出了一个场景题,垃圾会收器中,标记清除多次后,由于采用的是标记清除算法,那么你觉得可能会出现什么问题?
这里提及到了full gc,问我,哪些情况会产生full GC,哪些情况产生minor GC?
除了你项目中的内存溢出问题,你还知道哪些关于内存溢出内存泄漏的?
然后给我出了一个动态规划的手写代码题,说来写个代码吧。
三面面试答案:
拼多多HR面
自我介绍一下吧
你为什么选择拼多多?
你最大的优点和缺点是什么
谈谈你对公司加班的看法
谈谈你的朋友对你的评价是什么
平时怎么去学习的?
你遇到的比较难应付的事情?
你感觉做的比较成功的事情?
想象一下你几十年后是怎样的生活?
觉得最痛苦的一段时间
工作节奏你觉得可以接受吗?
你有什么想问的?
以上就是我拼多多面试的题目 基本上我都清晰的记录了。
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
50603439798)]
还有更多面试复习笔记分享如下
[外链图片转存中…(img-XX5Y8FQt-1650603439799)]