一份oppo后端Java社招面试经历和总结

一面(技术面)

1、自我介绍+项目经历介绍

2、重点聊了下自己最熟悉的项目,架构,组网,性能,瓶颈

3、Java常见集合的实现方式,说下常用的设计模式,并举例使用到的场景,手写懒加载线程安全的单例模式

4、Redis中的常见数据结构类型,Redis实现持久化的方式,优缺点以及使用场景

5、大数据和高可用在项目中涉及的点

6、MySQL主备同步的原理,怎么实现高可用?

7、client调用A服务,A服务依赖于B服务,在不知道B是否高可用的情况下,怎么保证A的高可用?

8、jvm的内存模型,jvm的运行时数据区,有没有jvm的线上调优经历?

9、回到项目的性能数据上,有没有仔细去调研过这个接口的时延的分布是怎么样的,按照28法则,肯定是某个方法耗时比较多,有没有针对这种场景的分析?

项目接口的性能时延是30+ms


二面(项目经理面+技术面)

1、有没有带人的经历,对于不上道的人,一般怎么带?

2、为什么你能胜任这份工作?

3、你说你优秀,你的优秀体现在项目的什么地方?

4、怎么在字符串池中查找给定的字符串?

5、B树有没有了解?MySQL索引的数据结构是什么?MySQL的数据存储机制是什么?如何处理数据中的脏页?

6、解释下分布式系统中的cap理论,怎么保证ca


总结

1、项目经历一定要准备好,目前市面上招聘基本上要求都是高并发,大数据,高可用。所以在你的项目中有哪些体现一定要提前准备好,并适当挖坑。也就是说目前还有哪些优化点可以做但是目前没有做。

2、Java的基本功一定要扎实,不是说数据结构和算法要多么精通,但是至少Java中常见的集合的原理要知道,源码要过一遍,使用场景要了如指掌

3、Java多线程,线程池的实现,并发包下面涉及到的经典工具,AQSCAS,两种锁的实现,常用的并发工具,阻塞队列

4、jvm的内存模型,HP原则,内存可见性;jvm类加载机制,类的加载过程;jvm的运行时数据区;Java gc的实现

5、ssm框架的实现原理

6、redis等中间件的数据结构,使用场景

7、高并发场景的常见处理手段

8、高可用系统的设计

9、分布式系统的设计,cap理论,分布式系统在实际场景中的运用;

#OPPO##Java工程师##面经#
全部评论
楼主是几年工作经验的?
点赞 回复 分享
发布于 2020-07-21 12:42

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
3 34 评论
分享
牛客网
牛客企业服务