【阿里、腾讯、美团、字节、快手】一些Java暑期实习的面经
打个广告:字节跳动 21 届提前批开始了,提前批投递结果不影响秋招,相当于有2次校招投递机会!提前批简历投递时间:2020年6月16日-7月16日,如果有对上海抖音团队感兴趣的,欢迎投递。
字节跳动校招内推码: YM2ZSN4
投递链接: https://job.toutiao.com/s/JRNCWcw
从三月就开始陆续投简历,到现在也面试了一些公司,不过尴尬的是一个 Offer 都没有!
发一些面经给大家参考一下,希望能给我带来一点好运,0 offer 选手真的太难了
CVTE(HR 面结束后没消息)
一面
-
个人介绍
-
项目
- 定时任务 Spring Task 的底层
- 权限控制
-
MySQL
-
存储引擎有哪些(除了myisam 和 innodb)
-
MyISAM 和 InnoDB
- 区别
- 具体哪些场景可以用这两种存储引擎
-
事务的特性(ACID),结合项目举个例子
-
事务的隔离级别,可重复读可能会产生的问题
-
索引有哪几种
主键索引 唯一索引 普通索引(单列、复合) 全文索引
-
联合索引,最左前缀匹配
- 索引(A,B),where b = ? and a = ?是否会用到索引
- 为什么要最左前缀匹配
-
-
Redis
- 用过 redis 的哪些功能
- redis 集群有哪些
- 单机 redis 有办法保证高可用吗
- redis 线程模型
- redis 是单线程还是多线程,单线程为什么吞吐量可以这么大
-
Spring
- 请求和转发这两种的区别,还有重定向
- aop 的原理
- 两种动态代理的区别
- 分别适用于什么场景
- ioc
-
java 集合
- hashset 内部工作原理,是否线程安全,如何使其线程安全或者替代类
- 变量的可见性如何保证 volatile
- 并发类用过哪些 concurrenthashmap,用的是什么方式加锁,加的是什么锁
- 可重入锁和 synchronized 的区别
- 公平锁和非公平锁的区别
二面
- 讲一讲让你比较有成就感的一个业务问题(交大图书馆项目)
- 实习期间还有什么其它的项目(海关项目)
- WebVOWL 图的节点有多少个
- 假设数据量增加一千倍,有哪些地方需要修改
- 近期的项目
- 有没有遇到一些数据对不上的问题(数据质量问题)
- 写 SQL:有一张图书借阅次数表,三个字段 category bookname count(借阅次数),找到每个类别借阅次数最多的图书,如果有并列第一返回图书名字按字典序排列的第一个
- 自己的工作运行ok,但上游的工作出现了问题,你会怎么做
- 数据核对的压力很大,可能经常会有错误数据,这个问题要如何改善
- 可能会遇到一些当前能力解决不了的问题,要怎么样去提前做一些储备
- 近期印象比较深的一些博客,之前呢
HR面
一些奇奇怪怪的问题,面完就没后话了
腾讯(复试凉)
复试凉,感觉腾讯对我来说是真爱了(?,总共捞了我四次,自己投的是后台开发,中间被前端开发捞过,正写面经的时候又接到了腾讯的电话,结果这回变成了测开?做 java 的和腾讯确实是有点相性不合,两次后台面试经历还都是用 c++ 做算法落地的
CSIG 初试(两次初试) 图像算法落地
- 第一次:聊项目,做题
- 一个数量为 n 的整数数组,其中一个数字出现次数超过 n/2,找出该数字
- ***赌,左***,有6个子弹巢,有2颗子弹放入相邻的弹巢,随机拨动转轮,然后朝我开一枪,但我还活着,现在轮到你开枪了。假如你还不想死,你有2个选择,第一是随机拨动转轮然后朝自己开一枪,第二是直接朝自己开一枪,你会如何选择?为什么?
- 给一张用户活跃模型表,字段包括日期,用户id,新用户标识,一条记录表示该用户当日登录。写 SQL 语句,计算每日 DAU(活跃用户量,即有登录的用户量)
- 未来的发展城市
- 短期和长期的目标,侧重在哪一方面
- 自己的优缺点
- 跟上司意见不一致的话会怎么处理
- 最近在看些什么书,或者有些什么个人项目
- 如何定位内存泄露
- 最近比较有挑战的一个项目
- 几个人做,自己负责哪些模块
- 项目的瓶颈在哪里,比如数据量增长
- 项目有哪些地方可以优化
- 如果让你来实习的话,你准备怎样去开展工作
复试
- 如何体现自己的学习能力
- 介绍项目,自己负责的部分
- 正则表达式,可能遇到的问题
- tcp 是如何保证可靠性传输的
- 为什么是三次握手,而不是两次或四次
- 一个函数随机生成1-5,如何用另一个函数随机生成1-7
- 赛马问题
PCG 初试(推荐算法落地)
- 有接触过机器学习,大数据处理相关的东西吗
- 非关系型数据库用过哪些
- MySQL 搞过的比较大的数据有多少
- MySQL中的连接,如 left join,和全连接有什么区别
- 有10亿个整数,其中存在重复的,要如何找到哪些数字重复了
- 解释一下 LRU cache,get、put 操作的时间复杂度
- c++ 中虚函数的实现机制
- Linux 有经验吗
- 分布式有搞过一些吗
- 进程 线程 协程
- 程序用多线程来实现的话,开多少个线程比较合适
- 有用过 Hadoop 吗,讲讲 MapReduce
阿里(一面凉)
我只能说,我被针对了,简历面问出这问题就不想让我过啊(给大家提个醒,最好不要在自我介绍的时候说自己认为业务比技术重要,反正有偏向性的话都别说,你不知道你会遇到什么样的面试官,血的教训)
搜索推荐 提前批 一面
- 自我介绍
- ElasticSearch,基本的搜索引擎包括哪些模块
- HashMap 的实现原理,是否线程安全
- maven 遇到包的冲突问题要如何解决
- Java 内存泄漏 使用哪些工具判断
- JVM 运行时数据区,Java 内存分配机制
- Cookie 和 Session 的区别
- 浏览器从输入地址到页面渲染出来有哪些流程
- 两道算法题
- 圆圈中最后剩下的数字
- 左旋转字符串
钉钉 简历面
- 如果某个资源是新增的,没有历史数据,要怎么计算环比同比
- 如果手动生成会涉及到多个数据源的汇总,耗时比较长,要如何处理,是要等待吗
- 如果每个数据源中都有上亿的数据,要如何统计一年的数据。会遇到哪些性能问题,该在哪些方面优化
- 如果数据量比较大,并且有十几个数据源,要如何处理能给用户尽快反馈(提高速度)
- 如果是一个服务器集群,这套系统要如何去使用
- 这个项目中的技术亮点或技术瓶颈
- 数据量很大,每台手机只负责一个区域的数据查询,那么有哪些地方可以做优化
- 数据存储上,查询上
- 数据做汇总的时候,数据量太大,导致内存崩掉了,该怎么优化 JVM
快手(一面凉)
一面凉,没话说,写完代码的基本功能20分钟已经过去了,没顾上处理异常情况。问面试官为什么不问基础知识,面试官说前面面了几个人感觉大家都差不多,没什么好问的,所以你就做题吧。我:?
一面
一道编程题(20分钟写完),要求尽可能考虑到所有的 corner case
完成函数 String process(String url, Map params) {}
函数的参数:url 表示一个网址,params 表示一个参数列表
函数的功能:如果 param 中的参数在 url 中存在,则什么也不做,如果不存在,添加到 url 中
举例: url http://ab.com/a/b/c?a=b&c=d&e=f#swwda=x params c: h a: b y: d
美团(二面结束)
一面
-
项目相关
- 为什么不用 Django 而用 Flask
- redis 用到了哪些数据类型
-
数据库4种事务隔离级别
-
输入网址到页面显示经历了哪些过程
-
场景题:
假设有一套业务系统,服务于最多1000万用户。每个用户通过唯一的用户名标识,用户名可以包含数字、字母、下划线,不超过16个字符。用户需要通过“注册”的动作,将自己的用户名注册到业务系统上,注册成功后业务系统随机为其分配一个[0,31]的数字。用户可以注销自己的用户名。注销时,用户需要输入自己的用户名,业务系统删除保存的用户名和与之对应的数字。用户也可以通过自己的用户名查找或修改业务系统为其分配的数字。
- 请设计一种算法实现上述需求。操作速度优先。方便起见,用户名以及对应的数字都保存在内存中。
- 如果用户名限制为中国大陆的手机号码(假设目前共130、131等20个号段),为追求上述操作速度最快,请问你有何建议?(数组)
-
编程题:冒泡排序
二面
- 编程题:合并两个有序链表
- 讲一下思路
- 如果是两个无序链表会怎么做
- TCP 的可靠性是如何保证的
- 拥塞控制的三种解决办法
- TCP 为什么要三次握手,两次可不可以
- Linux 修改文件的权限命令
- Linux 实时跟踪日志命令
- Linux 日志文件中检索一些关键字
- I/O 多路复用,select 的容量限制大概多大
- 有用过哪些常见的中间件
- 项目里为啥要用 mq,为什么不用 rpc 呢
- 了解 mq 的一些特性吗
- 用过什么缓存,redis 用过吗
- celery 进程一般都怎么起,进程数
- 了解过分布式锁吗
- 讲一个做过的项目
- 将来的职业规划
字节(二面结束)
一面
- http https http2.0 之间的关系
- https 的流程
- 浏览器请求某个接口,但是超时卡住,一般如何排查这个问题
- tcp 和 udp 的区别,包头分别是多少个字节
- 数据库的四种隔离级别
- 什么是幻读,数据库如何解决幻读
- 编程题
- 求根号n的值,精确到小数点后5位,不调用任何系统函数
- 降序合并2个升序链表
二面
- SQL
- 编程题
- 最大连续子序列和
- 找下一个排列