首页 > 【阿里、腾讯、美团、字节、快手】一些Java暑期实习的面经
头像
leapAhead
编辑于 2020-06-17 13:40
+ 关注

【阿里、腾讯、美团、字节、快手】一些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

return http://ab.com/a/b/c?a=b&c=d&e=f&y=d#swwda=x

美团(二面结束)

一面

  • 项目相关

    • 为什么不用 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
  • 编程题
    • 最大连续子序列和
    • 找下一个排列

全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐