首页 > 2020春招java实习面经(阿里美团唯品会华为)附学习资料
头像
小猪z佩奇
编辑于 2020-05-12 23:35
+ 关注

2020春招java实习面经(阿里美团唯品会华为)附学习资料

春招实习算是告一段落了,从二月中旬开始复习,四月份开始投简历,一直到现在,简单记录一下,回馈牛客,感谢这段时间牛客的面经陪我度过的日日夜夜。
基本情况:本人菜鸡一枚,没啥项目,烂大街的秒杀,刷了剑指offer,leetcode 250题左右,倒是背了不少面经
推荐书籍:深入理解java虚拟机,mysql技术内幕Innodb存储引擎,redis深度历险,剑指offer,java并发编程之美(强烈推荐),实战java高并发程序设计
推荐面经总结博客:https://thinkwon.blog.csdn.net/article/details/104390612 (强烈推荐)
图片说明
推荐视频: bobo老师的算法视频(慕课网),腾讯课堂的一些架构师视频(还挺不错的)需要的话留言

资源发在了评论区 8,9楼,自取哦!

  1. bobo老师的算法视频刷完加上课后布置题目独立完成,剑指offer各种优化题解,一般大厂都是没问题的
  2. TX课堂的视频可以有个大方向吧,自学不错

最后入职美团


java开发实习,主要考察:

  1. 做过的项目
  2. java基础
  3. 并发编程,juc下的一些组件
  4. jvm虚拟机
  5. 数据库
  6. 手撕算法
  7. 计算机网络,操作系统基础知识

美团

美团一面(80分钟左右)

  1. 自我介绍,介绍项目
  2. 问一些项目情况,redis为什么要设置过期时间,redis数据达到多少是阈值,过期时间是怎么设置的,商品信息有哪些,怎么实现redis,mysql数据一致性,为什么不采取更新数据库,再更新缓存?这样做有什么不好?怎么改进呢?等等
  3. final finaly finalize的区别?final可以修饰方法嘛?final修饰基础类型与引用的区别?
  4. 介绍一下常用的集合,arrayslist与linkedlist的区别(这里我深入分析了源码)
  5. 介绍一下hashmap(源码角度分析,还说了put流程,如何resize,最后细节到是否覆盖旧值的参数)
  6. 操作系统中线程与进程的区别
  7. 线程池的7大参数(例举了一下,最后详细介绍了几种拒绝策略),为什么有core,max线程数?(分析了一下整个线程流程)
  8. jvm中的内存区域(重点介绍了读论文时的JNI接口,本地方法栈,栈内分配,TLAB)
  9. 写算法:树的镜像交换,比较简单,写了递归,又写了基于层序遍历的非递归版本
  10. 反问:先夸一波面试官,您问的问题真的很棒,很多我在学习时忽略到的,虽然基础但是很深入,学习到了很多,没人能经受的了拍马屁吧!!!然后问了一些学技术的建议,企业希望大学生可以处于什么样的水平?

美团二面(50分钟)

第二天就接到了电话,约了面

  1. 自我介绍
  2. 读过redis源码嘛?redis的数据结构(除了基本五种,还说了超级日志,地理空间),Z-Set基于什么?介绍一下跳表?jdk中的跳表?
  3. 分布式session(介绍背景,流程,操作),session,cookie区别
  4. md5加密的流程?怎么应对彩虹表?
  5. rabbitmq一些知识(我说不怎么深入,就没问了)
  6. http请求头中的信息(基本都说出来)
  7. 输入 www.baidu.com 时的内部流程,dns基于udp还是tcp
  8. tcp/udp的区别
  9. 设计LRU (基于map,linkedlist)分析时间复杂度,要求优化,说了优先级队列将查找降为对数级别,不满意,叫我回去看linkedhashmap源码
  10. 算法:leetcode 197题,数组元素组合为最大的数,没想出来,提示是排序,代码写了半截,说了思路,面试官给了邮箱,写好了发给他
  11. 平时看的书籍:我把之前的书单一本一本摆在他面前(并说了日常怎么看书学习:就是吹牛)

美团hr面

二面后一个小时,收到了hr面
谈了入职时间,待遇
阿里,字节,美团选择哪个?(这里我没说阿里,感觉美团我也说不上来比阿里好在哪,强答有点舔的意思)
委屈字节了,什么美团底蕴好,字节只是短视频的风口,字节迷别骂我,说辞罢了


唯品会

唯品会是在实习僧上面投的,base 广州,上海

写在前面:

  1. 唯品会实习还是比较简单的,基本就是聊人生(我的强项)
  2. 一天230,包三餐,另外唯品会是公认的美女如云(理工男诱惑很大)
  3. 希望大家积极投递,打个广告

唯品会一面(35分钟)

  1. 自我介绍,介绍项目
  2. 数据一致性,分布式session,session,cookie区别?
  3. 读过spring,mybatis源码嘛?
  4. 数据库掌握的怎么样?说说你知道的(这个问题我很迷,还是介绍了索引,索引结构,使用场景,expalin关键字,说了自己改sql的一些心得)
  5. 写代码:无序数组中找中位数(这题我朋友面阿里也遇到过),快排patition解决
  6. 聊人生:你是怎么样的人,你的职业规划(吹了一波,然后还说了如何回报家乡社会,慷慨激昂,热血沸腾)

唯品会HR面

技术只有一面

  1. 对于实习地点的选择
  2. 待遇啥的
  3. 未来规划,基本的情况

ps:广东妹说话的语气好逗,特别 o~k 这个词说出来差点笑场

阿里

当时投阿里木的底气,笔试也不好,测评瞎写的,那些智力题随便勾的(阿里很看重这个),后来非常后悔
学校的原因还是给了面试

阿里一(60分钟)二(70分钟)三面(35分钟左右)

记不太清了,放在一起


一面:速度问的很快,基本涵盖了所有常考点

  • 项目的情况,redis,消息中间件,数据一致性,分布式session,实现分布式session的方式(除了redis第三方),登录的过程
  • redis 作用,删除策略,集群,缓存击穿
  • spring的循环依赖,spring bean的生命周期,事务传播级别
  • 介绍常见的集合,Arrayslist,hashmap,hashset等
  • 常见的并发包类
  • 常见的排序有哪些,说说希尔排序,为什么快?
  • 介绍红黑树,红黑树的特性,红黑树如何进行旋转
  • mysql,索引结构B+树,hash索引,怎么解决慢查询,什么情况使用不到索引,sql语句的执行流程,覆盖索引的实现
  • 虚拟机,类加载机制,垃圾回收器,cms,ps使用场景
  • int integer区别(内存位置)
  • 计算机网络三次握手,四次挥手,ddos攻击在哪一阶段

当天晚上加了笔试:1.给定一个字符串,请将字符串里的字符按照出现的频率降序排列。2.最长无重复字符串
很简单半个小时都写出来了


二面:和面试官聊的挺开心的,特别是最后聊学习方式,人生,我太能侃了

  • 计算机网络的五层,七层协议
  • udp/tcp的区别,微信使用的是哪种
  • 介绍快速排序
  • 完了记不清了(都是基础知识,全部都回答出来了)很简单
  • 平时怎么学习的?(这里说一下,遇到这种大的问题,不要简单的回答,而是塑造一种类似英雄故事,你之前是什么样的,然后遇到什么困难很痛苦,寻求改变,最终升华,所以现在是这样,要说的绘声绘色,面试官好比在听一部英雄故事,让面试官也能感同身受,心想确实是这样,这种英雄故事的方法可以应用在项目介绍中,针对某一个技术点,说(bian)一段英雄故事,之前使用什么技术,后来遇到什么问题,寻求改变,改进过后达到什么效果等等,面试官不会在意你的项目深度,更多的是你怎么解决问题,怎么思考?不知道你们能不能get到我的点)

三面:随便聊了聊,当场就给过,叫我好好准备后续面试

  • 自我介绍,项目介绍
  • 分布式session,redis怎么提高访问速率
  • 安全性md5加密流程
  • 说说redis(介绍了单线程,多路复用,主从模式,哨兵模式,集群模式,rdb,aof持久化流程)
  • 介绍快速排序,分析时间复杂度,如何改进?

阿里四面(40分钟)(挂)

这面翻车了

  • 职业规划
  • 你对java后续版本有什么建议?
  • 如果是你,你怎么设计一款垃圾回收器,怎么减少fullGC时间
  • 一段文章,我要将其hash到一段空间,可以使用指纹什么保存解密,你怎么设计?

全程黑人懵逼问号脸,答非所问,思维混乱,面试官很不开心,哎~


阿里被捞一面(25分钟)

  1. 自我介绍
  2. 怎么解决超卖?怎么解决高并发?怎么解决用户重复下单?
  3. 说说hashmap,resize流程,负载因子过大,过小会怎么样?
  4. 两个链表找公共节点:我说的是浪漫相遇法,他没听懂,电话面,然后叫我分析时间,空间复杂度
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
         /**
          定义两个指针, 第一轮让两个到达末尾的节点指向另一个链表的头部, 最后如果相遇则为交点(在第一轮移动中恰好抹除了长度差)
          两个指针等于移动了相同的距离, 有交点就返回, 无交点就是各走了两条指针的长度
          **/
         if(headA == null || headB == null) return null;
         ListNode pA = headA, pB = headB;
         // 在这里第一轮体现在pA和pB第一次到达尾部会移向另一链表的表头, 而第二轮体现在如果pA或pB相交就返回交点, 不相交最后就是null==null
         while(pA != pB) {
             pA = pA == null ? headB : pA.next;
             pB = pB == null ? headA : pB.next;
         }
         return pA;
     }
  5. 了解过用户推荐嘛?
  6. 技术发展的规划,想往哪个方向发展?
    然后,直接说到这里,拜拜!(我怀疑你是不是刷kpa的)

阿里被捞二面(30分钟)

写在前面:面试官小哥十分匆忙的样子,主要考察了算法方面的知识,前面几位面试官对我的基本表示肯定,但是对算法部分比较担心(哎 ~ 当初智力测评瞎写,笔试没认真)

  1. 自我介绍
  2. 两个栈模拟队列?
  3. 两个队列模拟栈,一个队列怎么做?
  4. 在十万的数字中找出前100?说了快排patition+二分,堆
  5. 10亿的数字找前10万,空间给1亿(分治法加堆),分析时间复杂度
  6. 100亿数字找前10亿,空间1亿(没怎么说好,bitmap)

小哥表示挺满意,并希望我能成功来阿里,经过团队的锻炼,实际项目的上手,我会有非常大的提高
明天约了面(哎~阿里的第七面)

各位看官还是强调一下:不要觉得题目简单,面试官主要不是让你做题,还是考察你的逻辑思维能力与言语表达能力

华为南研所一面

写在前面:问的非常简单,而且感觉有一种他就怕我答不好的错觉,我每次说了一半,等他追问,他直接换问题了,一脸蒙蔽

  1. 自我介绍,问我的导师是谁,专硕和学硕的区别
  2. 序列化与反序列化
  3. final与finalize区别
  4. 你如何理解并发包?
  5. 常用的集合有哪些?
  6. 如何理解GC?(这里我从c++引入,java有gc的好处,介绍垃圾回收算法,优缺点及适用场景)
    回答这个问题时装了一下逼:介绍了人月神话中的没有银弹,一项技术的产生就是基于解决旧技术所带来的问题,而随着业务场景的变化及新问题的出现,该项技术也会被新技术所取代,然后结合gc的回收算法说了自己的见解,面试官很认可。装逼成功!!!
  7. 写二叉树的深度及中序遍历递归非递归
  8. 华为测评显示焦虑,问了我情况
  9. 当场说过了,等业务主管面

更多模拟面试

全部评论

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

相关热帖

近期热帖

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

近期精华帖

热门推荐