2019年秋招OPPO作业帮网易美团完美世界腾讯面经合集
7月11号 OPPO开始,到9月5号腾讯结束,面了OPPO、作业帮、网易有道、美团、完美世界和腾讯,投的都是Java后台开发
补一下面经,希望对大家有所帮助,也希望后面自己能一切顺利。
OPPO(2+1HR offer)
一面
- 数组链表的区别
- ConcurrentHashMap相关
- SpringBoot启动流程和自动配置的原理
- 介绍IOC
- 为什么要用消息队列
- MySQL优化方式
- 分布式锁的实现方式
- 项目相关
- 区块链相关
二面
- 项目难点及解决方案
- JVM内存模型
- 垃圾回收算法
- 垃圾回收的过程
- FullGC是否停顿用户线程
- Java容器用过哪些
- 8G文件存储可能重复的QQ号,判断某个号码是否出现,限制内存1G
- 接上问,求出出现次数TOP10的号码
HR面
- 为什么选择OPPO
- 家庭情况介绍
- 项目中遇到困难怎么解决
- 对工作地点有没有要求
- 和导师出现分歧会不会很消极或很愤懑
作业帮(2+1HR 意向书)
一面
- 三次握手
- 一个请求经过Tomcat到应用程序到返回的全部流程
- 浏览器输入www.baidu.com后的流程
- GET和POST的区别
- SQL语句的执行过程
- MySQL索引机制
- MySQL存储引擎
- 进程和线程的区别
- 线程的内存是共享的吗
- 你写的代码生成器是只能用于Java吗?为什么要做这个东西?后续你还会继续进行改进吗?
- 手撕:字符串转整数
- 手撕:最长上升子序列长度,并求出所有该长度的子序列
二面
- 给你一个Map,设计扩容机制
- 扩容过程中,如何插入新元素
- 数据库分库后,如何生成全局唯一的ID
- 生成唯一ID用数据库具体怎么实现?数据库存多少个备用ID?
- 有没有更好的方式?答Redis,问Redis怎么存储,引导下答出Redis计数器
- 数据库和缓存的一致性问题
- 25匹马赛跑,找前5
- 8G文件存储用户访问记录(ID,DATETIME),找出当天访问次数top100的用户
- 做过Android是吧,有没有转Android的意愿
- 提问:技术栈,培养体系,转语言相关
HR面
- 家庭情况
- 家里支持到北京发展吗
- 了解过作业帮吗
- HR小姐姐很详细的介绍了作业帮的业务和发展情况
网易有道(3+1HR 意向书)
一面
- 聊一下项目,项目的目标、用到的技术
- 谈一谈对Java服务端常用技术框架和技术组件的了解
- 从上到下说一下Java集合类
- 内部锁和显式锁的区别
- 内部锁的范围
- Java中如何避免死锁
- 项目中为什么用缓存
- Linux常用命令
- 有哪些你听说过但没用过的技术
- 部署过Redis吗
- 讲一下Redis的持久化方式
- 设计模式了解哪些,用过哪些?
- 手写一个你曾经用过的单例
- Spring常用注解有哪些
- IOC和AOP
- Hibernate和Mybatis有啥区别,你觉得哪个好用
- SpringMVC的请求处理流程
- Autowired和Resource的区别
- 手撕:无序数组求中位数
二面
- 聊项目
- 手撕:无序数组,只有0,1,2三种元素,要求遍历一遍进行排序
- 手撕:连续子数组最大和,要求求出最大和以及构成最大和的子数组的前后坐标
三面
- 聊项目
- 项目中为什么用ConcurrentHashMap,为什么不选HashTable
- ConcurrentHashMap和HashTable迭代器在使用时你是怎么抉择的
- 分拆锁是什么,怎么用的,为什么要这样做
- 除了锁,还知道哪些保证线程安全的方法
- 你说的自旋锁在项目中是怎么用的
- 一致性锁定读是什么,为什么又用Redis分布式锁代替了一致性锁定读
- Spring定时任务是怎么用的
- 介绍一下区块链,为什么要用区块链,解决了哪些问题
- 手撕:字符串子串问题,str1=”abc” str2=”bca” ,str1可以按N倍扩展为abcabcabc...,找出str2在str1中出现的位置
HR面
- 有人说本科参加工作能比读研获得更大的成长,你怎么看
- 保研前在百度实习,为什么最后选择读研
- 你觉得读研给你带来了什么
- 有人说互联网是拿命换钱,你怎么看
- 是否看重北京户口
- 你觉得你有什么缺点
- 在实习时和领导出现分歧怎么办
美团(4+1HR 意向书)
一面
- 项目相关
- 垃圾回收算法和流程
- JVM运行时数据区
- MySQL索引机制
- MySQL执行计划
- Java锁相关
- 一些基础知识的问题,前面基本涵盖了
- 线上CPU占用率100%,怎么排查
- 频繁发生FullGC,怎么排查
- 手撕:两个String表示的大正整数,相加
二面
- 项目相关,问了很多
- 区块链相关,也问了很多
- Redis分布式锁是怎么实现的
- Redis和Ehcache分别在什么场景下使用
- 给你一个KV数据集,存储一些不经常改动的数据,用Redis还是Ehcache
- 期间穿插问了一些基础知识
- 表(学生ID,课程ID,分数),求所有课程都大于80的学生ID
- 手撕:Java String类的indexOf
三面
- 依然是项目相关,问了很多
- 科班,都学过哪些专业课
- 哪个你觉得学的最不好
- 数据库理论基础(存储方式?事务?约束?范式等)
- 平时怎么学习的?
- 一些基础知识的问题,前面基本涵盖了
四面
- 项目简单聊一聊
- 研究生上了哪些课?
- 学过人工智能相关课程,想从事开始还是算法?
- 设计模式知道的讲一下,用过的讲一下,说一下为什么考虑用这几个设计模式
- 软件开发过程模型有哪些,具体实现过的说一下
- Java中的常用集合类说一下
- 项目中用到的Java容器有哪些?为什么用ConcurrentHashMap?
- Java哪个集合类是双链表实现的?
- Linux用过吗?常用命令有哪些?
- 能实习吗?毕业时间?
HR面
- 有自己的一套学习方法吗,平时怎么学习
- 家庭情况如何,想在北京发展吗
- 手里有几个offer,相比更倾向于哪个
- 三个词形容一下美团
- 形容一下自己的优点
- 如果项目中遇到困难,如何解决
完美世界(4+1HR offer call)
一面
- 设计模式知道哪些
- 单例模式知道几种实现方式
- 怎么破坏单例模式
- 枚举单例可以被破坏吗
- 创建对象有几种方式
- 反序列化能破坏枚举单例吗
- 反射创建对象用哪个方法
- getMethods和getDeclaredMethods有什么区别
- 反射可以访问私有属性和方法吗?为什么可以,Java API中是如何实现的?
- SpringMVC的流程
- 三个线程1,2,3,想让1,2尽可能多执行,3少执行,有哪些方法
- notify和notifyAll唤醒线程的顺序是怎样的
- 同步队列和等待队列
- 讲一下你的项目
二面
- 项目中为什么用Kafka,了解过其他消息队列吗
- Kafka的相关机制你知道哪些都说一下
- Redis是怎么用的,分布式锁怎么实现的
- Spring多线程定时任务是如何配置的,为什么使用多线程
- 线程池的参数
- 线程池接受一个任务的判断过程
- 手撕:二叉树镜像反转
- 手撕:两个字符串的最长公共子串,要求DP实现
三面
- 学过哪些课程
- 了解过算法的话,对大数据感兴趣吗
- Kafka怎么用的
- 区块链框架中Kafka起到了什么作用
- 区块链相关
- 项目相关
HR面
- 了解过完美吗
- 为什么想在北京,家在哪
- 保研为什么选择了这个学校
- 对大数据库感兴趣吗,最想从事哪个方向
- 后面HR小哥介绍了公司的工作时间、食堂、各种福利、考评等相关信息
腾讯PCG(二面挂)
一二面:
- TCP三次握手
- TCP协议的标志位有哪些,序号表示的是什么
- GET和POST的区别
- TCP和UDP的区别,各自的应用场景
- Linux线程模型是什么样的,或者说Linux线程和进程的关联
- Linux是实时还是分时
- 进程调度算法
- 常见的排序算法有哪些
- 哪些排序算法是稳定的
- 拓扑排序讲一下
- MySQL有哪些存储引擎,区别,应用场景
- MySQL隔离级别以及锁的问题
- 给一个整数,转成大写读法
- 写个快排
- 分布式都了解什么
- RPC知道是什么吗
- 讲一讲区块链
- 讲一讲Kafka