首页 > Java春招实习面经汇总(持续更新)
头像
臣巳水
编辑于 2021-03-22 21:48
+ 关注

Java春招实习面经汇总(持续更新)

本人大概情况

211本,海外硕。软件工程专业。手头基本没项目。过简历关全凭运气。

深信服第一轮

刚睡醒就接到电话,面试40分钟左右。

  1. 在项目和技术上介绍自己
  2. 了解Spring Boot吗? 答:不。。。
  3. Spring中为什么通过一个注释就有相应的功能?答了一个猜想,猜错了所以后续问题就不问框架相关了。。。
  4. 平常使用过哪些集合类?答:List,Set,Map。多了一句嘴:平常Set用的其实很少。
  5. 那HashSet你了解底层吗?(就因为多嘴。。。还好勉强答了上来)
  6. 那HashMap呢?
  7. 刚刚提到了红黑树,红黑树一次查询的时间复杂度?
  8. 讲到了树那就讲讲二叉树,二叉树的一次遍历有没有不通过递归的方式?答:使用栈。
  9. 追问:那有没有不使用额外的空间的方式呢?答:不知道了。。。
  10. 了解JVM类加载吗?答跑题了,大讲特讲类加载器。。。
  11. 追问:类加载的过程(什么时候赋初值,什么时候初始化)?
  12. GC(算法,收集器)
  13. 并行与并发的区别?
  14. 是否可以这样理解:并行就是多个线程竞争多个CPU资源而并发就是多个线程竞争一个CPU资源?(我觉得可以这么理解。)
  15. Java有什么方式保证线程安全?
  16. Spring MVC中的单例Bean是线程安全的吗?答:不是。多个线程持有同一个对象,产生竞争
  17. 那Spring MVC中的原型Bean呢?答:是,多个线程持有的是不同的对象。
  18. 你确定吗?会不会出现某些方法更改这个类的属性从而产生竞争?(我听到这就犹豫了)想了想,答:确实有可能,如果这个bean有个类变量的话。
  19. MySQL优化查询?
  20. 什么是索引?
  21. 你有什么问题?

评价:面试体验极佳,面试官在卡壳的时候会适当引导。可惜二面已凉。

华为见习生第一轮

面试总共1小时20分钟左右

  1. 自我介绍

  2. 针对简历上的经历详细询问,负责哪些职责,用到哪些框架,这方面怎么设计并且为什么这样设计等问题(可能占了40分钟)

  3. 你觉得你与其他人相比,优势是什么

  4. 介绍下JVM G1回收器

  5. 什么时候可以开始实习

  6. 出国觉得不虚此行的地方在哪

  7. 为什么选择回国发展

  8. 不知道你对这样的一个业务有没有兴趣(开始介绍部门的业务)

  9. 手撕代码:

    字符串反转:给定一个含有字母和数字的字符串,实现以下规则的反转:

    1. 字母反转,数字不反转;
    2. 整体的字符串反转
      例子 : 输入 输出
      a12b34de ed34b12a
      a23b34c c34b23a

    当场给出的解是O(n)的时间和空间复杂度。追问觉得哪里还可以优化吗?答:可能空间可以用常数空间和增加特殊情况的处理。

  10. 反问

评价:面试体验佳。祈祷能过。

深信服第二轮面试

面试总共20分钟不到。

  1. 自我介绍
  2. Java运行时数据区
  3. 字符串常量放在哪个区
  4. MySQL InnoDB 索引的发展历史,为什么使用B+树
  5. B+树和哈希作为索引的优劣?
  6. MySQL一条查询语句的执行步骤
  7. Spring IOC容器的理解
  8. 怎样做到自动装配的
  9. Spring Boot的自动装配原理
  10. Spring AOP原理的理解
  11. 有用到过AOP吗
  12. 反问。

评价:面试官背景略有杂音。明显凉了,而且相当快被斩了。

阿里云提前批一面

面试从七点半到十点,两个半小时。面的太久,还有很多听不懂的题目,所以面经不完整。

  1. 自我介绍

  2. 类加载器和类加载机制

  3. 类加载器除了加载类还有什么作用

  4. Spring框架系列问题。实在面的太久,而且本人Spring和Spring MVC真是只会用最基本的东西,可以算一道题都没答出来。可是面试官说是很基础的题,大家可以大致想象一下吧。但是问的问题相当注重实践,很多先是问区别,然后问完区别后问哪些场景会用到。

  5. MyBatis系列问题。都不会。大家可以自己想象下实践中会用到啥吧,这些东西会被问。

  6. Http系列问题

    1. 讲下redirect和forward吧
    2. 你提到了301和302,解释下
    3. 解释得不够底层,能不能具体讲讲浏览器收到301和302的响应会怎么做?(三道题秒杀了我所有网络知识,再见)

面试官至此评价:你简历上写的东西感觉你都不是很熟悉,不如你讲讲你会什么吧?(不会啊!我什么都不会!)

  1. MySQL系列问题
    1. 索引底层和实践
    2. explain关注哪些东西
  2. JVM系列
    1. 线上服务发生OOM宕机,如何排查
    2. 你说要先dump出日志来,你有没有想过可能dump出来几个G,就算从服务器上拉下来了本地也没办法解析,如果是这样你怎么解决?
    3. 能不能说两个你学JVM后对你编程实践上最有帮助的两个例子?(这个问题一出我就知道凉了)

面试官开始给建议准备结束面试了。经过我的积极争取还是问了点Java基础知识。

  1. 详细讲讲volatile关键字
  2. GC

手撕代码:

  1. 并发顺序打印
  2. 数组的均值分割

反问

评价:面试时间相当久,但是面试官人很好,给了我很多学习和技术发展上的意见和建议,只是会问很多我一个字都答不上来的问题。还要补充的就是可以明显感觉到问的问题相当注重实践,背书题基本没有。面试是肯定凉了,就不祈祷我自己了,希望大家都能顺利过吧。

字节电商暑期实习一面

面试时间卡得很准,说一小时就一小时。

  1. 自我介绍
  2. 大致询问了简历上项目的细节
  3. 类加载器和双亲委派
  4. HashMap的线程不安全体现在哪里
  5. ConcurrentHashMap如何保证线程安全的
  6. AQS
  7. MySQL索引的底层数据结构
  8. MySQL的死锁
  9. MySQL查询计划
  10. MySQL的默认隔离级别
  11. LeetCode79 单词搜索

评价:面试官相当友好,着重考察基础知识,卡壳时会引导提示。祈祷能过。

华为见习生第二轮

完成性格测评之后约面试。
主管面,搜了搜之前的面经发现好像有点玄学,甚至特别紧张。

  1. 自我介绍
  2. 详细介绍简历上项目,讲述业务,在项目中担任的职责
  3. 遇到过的问题已经如何解决
  4. 反问

评价:面试官想当和蔼可亲,就是家常聊天的感觉(有一种和长辈介绍自己干什么工作的错觉)。没有之前面经中的手撕代码和智力题。祈祷能过。

字节电商二面

  1. 自我介绍
  2. 介绍完就开始做hard题.... LeetCode 72. 编辑距离
  3. JVM运行时数据区,哪些是线程私有,哪些公有
  4. 如何自然地终止一个Java线程
  5. HTTP状态码 讲讲5XX
  6. HTTP头部有什么
  7. 数据传输肯定是分包的,那么在HTTP保持长连接的状态下,收到一个包,如何判断这个包属于哪个请求或者哪个响应?这道题当时纠结于HTTP这一层会怎么做所以没答出来。但是面试结束一想就是分包这个过程就是TCP负责的事情,面试官的意思应该就是想讲到TCP如何将不同的包区分开来的。
  8. MySQL索引何时会失效
  9. 反问

面试官和蔼可亲,问问题也是围绕简历上展开,没有特别深入。可惜面试发挥相当不好,祈祷能过。
p.s. 面试官好像坐在茶水间附近,所以背景杂音有一点多。

阿里CBU一面

四十分钟左右。

  1. 自我介绍
  2. 详细询问简历上的项目,发现乏善可陈,点评一句实践经验不太丰富
  3. 反问

评价:主要就是问简历上项目的细节,再随着回答追问一些基础知识,不太有共性。面试官热情又幽默。

字节电商实习三面

字节面试时间卡的都太准了,说一个小时就一个小时

  1. 自我介绍

  2. 进程与线程的区别

  3. 什么是原子性

  4. 操作系统中维护原子性的同步机制

  5. 谈谈你对操作系统中内存管理的理解,尽可能详细(这题一出冷汗就冒出来了)

  6. 谈谈操作系统中静态链接与动态链接的区别?(不会。。。强行凭借Java中链接的知识胡扯了几分钟)

  7. TCP四次挥手,细节一点,什么时候TIME-WAIT阶段,什么时候CLOSE-WAIT阶段

  8. TCP拥塞控制

  9. 输入URL后发生的事情

  10. 说说对IPv6的理解,尽可能详细

  11. 笔试题两道

    1. 一个环上有10个点,编号为0-9,

      从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,

      求:经过n步又回到0点有多少种不同的走法?

      举例:

      如果n = 1,则从0出发只能到1或者9,不可能回到0,共0种走法

      如果n = 2,则从0出发有4条路径:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有两条回到了0点,故一共有2种走法。

      之前没做过,现场想思路,经过面试官提醒采用DP,最后磕磕绊绊写出来了

    2. LeetCode 31. 下一个排列

  12. 对Java AQS的理解,尽可能详细

  13. 对Java Synchronized关键字的理解,尽可能详细

  14. 反问

评价:还好没有之前面经上看的智力题,主要还是计算机基础知识和代码能力。面试官人很好,看你答得流利就深挖再问,答得磕磕绊绊的就换方向问了。祈祷能过🙏

阿里淘系技术部提前批一面

时间40分钟左右。

  1. 深挖MySQL
    1. 了解的不同的MySQL的引擎,具体差别,如何选择以及应用场景
    2. 提到了事务,聊聊事务
    3. 还提到了索引,聊聊索引(比较不同引擎的索引的区别)
  2. Linux一些简单的指令
    1. 怎么找到正在运行的Java进程
    2. 性能问题严重,可以通过什么指令查看
  3. Java GC
    1. 聊聊不同的垃圾回收器
    2. 你刚刚了的这些垃圾回收器一些启动参数需要设置,怎么考虑
    3. 有具体地看过垃圾回收器的GC日志吗(🈚️)
  4. 面试官点评:缺乏实践,建议多加实践。

评价:每一个阿里的面试官最后都会给我一个缺乏实践的评价,摊手无奈。

在经过了面了阿里五六场之后一点小小的对阿里面试的印象和经验:如果简历上有一些东西不能保证经得住直达灵魂深处的提问,就千万不要往上面写。目前阶段的面试官都相当注重实践,基本都是一小段背书引出实践上操作相关的问题。在回答后不是又回到原理就是继续追问实践上的细节。总之就是一波接一波,直到本人水平极限。面试的时候心理压力相比于其他公司会大很多,但是面试官都会很真诚地提出对面试的建议和提升的建议。总的来说就是过程不轻松,不过是因为会发现很多很实际的问题,因此收获也不少。

阿里CBU提前批二面

面试时间较短,三十分钟左右。

  1. 你项目中碰到的问题是如何定位?如何提出方案以及最终如何落地解决的?
  2. 除了这个问题你对这个业务还有没有其他思考?
  3. 你提到了冷热数据处理,我这里可以提供给你两个解决方案,你说说你对这两个解决方案实现的思考?(第一个比较简单,另一个面试官提示空间换时间,但还是没想出来,最后给出答案只能赞叹一句学到了)
  4. 聊聊你对Java后端一系列技术栈的理解
  5. 你提到了Spring,Spring哪一块你比较熟?
  6. Spring的源码读过一点吧,你对其中一些设计模式的巧妙应用有没有比较深刻的印象?(讲了个Spring整合MyBatis用到的单例简单工厂,复盘感觉讲一讲AOP的代理模式比较好)
  7. 那你了解代理么,指网络上的代理
  8. 那Java中的静态代理和动态代理呢?
  9. 你在国外用过一些网购软件吧,可以讲下你觉得淘宝与这些软件相比哪些地方做得好或者可以提升?
  10. 你对职业规划有没有个什么打算?
  11. 反问

评价:这是第一次阿里面试官没给缺乏实践的评价。但是可以很明显地感觉在考察所谓的业务的sense,可惜这方面思考不是很足。接下来再好好沉淀,在学习中多加思考而不是简单地解决眼前问题吧。祈祷能过吧🙏

腾讯暑期实习一面

面试时间一小时左右。

  1. 自我介绍

  2. 详问项目

  3. 聊聊Java GC(算法,回收器以及不同JDK版本GC上的不同)

  4. 谈谈计网经典的面试题吧,尽量详细

  5. 写个归并

  6. 你刚刚写的申请了新数组,再写一个不用new新数组的版本

  7. 智力题:甲乙两人轮流往一个圆桌面上放同样大小的硬币。规则是:每人每次只能放一枚,硬币不许重叠,谁放完最后一枚硬币而使对方再也无处可放,谁就获胜。请问会不会有人必赢?是先手会赢还是后手会赢?赢的策略是怎样的?
    读完题就知道肯先手赢,因为根据多年的选择题经验,可以假设桌子就只有一枚硬币那么大,所以先手的必赢了。然后老老实实想了会儿一般情况,想不出。老老实实和面试官说如果这道题是选择题我能拿满分,面试官开心地笑了。

  8. 反问

评价:面试官长得有文质彬彬,儒雅可亲。面试整体不是很难,主要还是考察项目细节。最值得赞叹的一点是面试官的效率!因为我还在总结面经的时候,刷新了一下页面就发现初试已经通过了。祈祷下次面试顺利🙏

腾讯暑期实习二面

面试时间一个多小时,就写了三道题。感觉自己代码能力太弱了。。。

  1. 给一个数组,输出所有连续递增子数组的起点与终点,如果这个子数组只有一个元素,那么只输出一次。

    比如:输入[0, 1, 2, 3, -1, -2, -3, 5, 6, 7]对应的输出为

    0->3
    -1
    -2
    -3
    5->7

  2. 提供了一个递归的快排,改写成非递归形式

  3. 三桶量水。三个桶分别为8L,5L和3L,初始状态8L桶是满的,要求最少的倒水次数量出4L,并输出经过的各个桶的状态。

评价:体验很好,就是自己菜。面试官提示的就差共享屏幕一行行写给我看了。祈祷能过🙏

携程实习一面

面试半小时,主要考基础知识。

  1. 自我介绍
  2. Java基础
    1. synchronzied锁升级的过程
    2. ReentrantLock与synchronized关键字的区别,以及不同应用场景
    3. JVM内存模型
    4. GC:CMS,G1
  3. Redis
    1. 跳表
    2. 为什么性能这么好?
    3. 扩容原理
  4. 三握四挥
  5. 手撕代码:LeetCode 189. 旋转数组
  6. 反问

评价:面试官和蔼可亲。会给出特别中肯且中和的学习建议。祈祷能过🙏

携程实习二面

面试四十分钟,主要深挖技术。

  1. 自我介绍
  2. 详问项目
  3. 数据库分库分表
  4. 三握四挥
  5. Spring
    1. Bean的生命周期
    2. AOP的实现原理
    3. 事务的原理以及注意事项
  6. Redis
    1. 本地缓存和分布式缓存的差别
    2. 缓存击穿、雪崩、穿透
    3. 数据库写写不一致的解决方案
  7. JVM发生OOM如何分析和解决
  8. 双核的设备如何设计线程池中各个参数充分发挥性能
  9. 你是如何学习一门技术的?
  10. 两到三年的职业规划?
  11. 你自己现在处于一个什么阶段?对自己的评价?
  12. 反问

评价:属于考察深度的面试,难度有点大。而且技术面面着面着就问hr面的问题了,有点懵。祈祷能过🙏

阿里CBU笔试加试

因为之前笔试0分,被捞起来加试一轮笔试做两道题。。。

  1. LeetCode 1770

    感觉之前做过,模模糊糊觉得用贪心就好了。结果一开始就跑偏了。还好在写完贪心后立刻发现应该使用DP。

    DP的状态就想了半天应该怎么选,之后明白了可以这样表示:dp[i][j]表示在nums数组左边选i个和右边选j个做乘法得到的最大分。

    状态定义好了状态转移方程就相对来说好推出来了。 dp[i][j] = Math.max(dp[i - 1][j] + nums[i - 1] * multipliers[i + j - 1], dp[i][j - 1] + nums[n - j] * multipliers[i + j - 1]),即在从nums数组左侧取一个做乘法和从右侧取一个元素做乘法更大的那个。最后答案就是从一共做了m个乘法中的值中挑出最大的那个。

  2. 有一个N*M大小的迷宫矩阵,迷宫的每一个格子有一个数值(a[i][j] <10^9)。
    小明在迷宫中只能朝着上下左右四个方向的相邻格子前进,并且只能进入比当前位置数值更小的格子。
    但是小明有个技能,他可以通过使用技能,强行进入到不满足数值大小要求的相邻格子,可惜这个技能只能使用K次。
    请问小明从这个迷宫任选一个格子出发,最多能走多少步(开始位置计入步数,即站在起点是步数为1)。

    这道题平时我应该很难短时间内做出来,但是在第一题的启发下很快想到了要使用DP记录状态并且迷宫这种类型的题很容易想到DFS。定义一个三维的DP状态:dp[i][j][k]表示从i,j这个格子有k个技能能走得最远的距离。

    定义好这个状态就只知道对于每一个位置进行DFS,上下左右四个方向,然后在需要使用技能(目标格子内的值大于目前格子的值)并且可以使用技能 (k>0)时使用技能,然后再以更大值更新当前格子。

阿里CBU三面

面试时间二十分钟,摊手耸肩摇头。

  1. 自我介绍
  2. 项目里有对MySQL查询的优化,详细讲讲?
  3. 分库分表有什么具体的做法?
  4. 如何解决查询老数据的联表?
  5. 聊聊对IoC,AOP的理解?
  6. 除了在框架里还有哪里用到了AOP?
  7. Spring MVC处理一个请求的过程?
  8. 是如何根据一个请求找到对应的控制器?
  9. 当时怎么考虑出国的?
  10. 还面了哪些公司?进展如何?
  11. 反问

评价:从面试开始因为一些原因就知道这次面试不太能过。而且挺长时间没面试了,面试的状态也不是很好。面试官评价学习不够深入,不过说实话过程有点无奈。

全部评论

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

推荐话题

相关热帖

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

近期精华帖

热门推荐