前言
- 本人双非本科,投递阿里巴巴(CTO)国际贸易部门春招JAVA实习生岗位,一面记录
- 本次面试总时长:两个半小时!!!
- 电话面试
面试内容
- 自我介绍 – 几分钟
- 项目介绍(中间穿插各种问题,例如如何设计,如何解决,如何提升该项目等等) – 二三十分钟
- JVM minor GC和 Full GC 区别和理解
- 关于年轻代和老年代GC调优 (不会,从自己的理解上回答了可以从年轻代过渡到老年代的调优方案)
- 垃圾收集器有哪些,分别是做什么的?
- 对多态底层的理解? (没接触过,面试官说这是编译原理的知识,我说我才开始学编译原理,就回答了下JVM跨平台的知识,虽然不沾边)
- 静态多态和动态多态的知识
- 模板模式讲一下, 里氏替换原则讲一下
- 问题:10个日志文件,必须全部读取完毕后才能进行信息分析。问怎么实现? (面试官提示是concurrent包下面的几个类,不了解)
- concurrent包下面有哪些重要的类和原理? (不会)
- synchronized的原理
- hashmap数据结构
- 红黑树结构和树转换的实现(不了解具体的树转换代码细节)
- 数据库四种隔离级别
- MySQL的索引有哪些并比较这几个索引 (B+树问的比较深和多,感觉都答上了的)
- 组合索引的使用(最左前缀),最左前缀匹配原则的源码解析(不会)
- 以后毕业论文想做哪个方向 (我说的分布式微服务方向)
- 数据结构,计算机网络,Java学科成绩
以上已经电话面74分钟。 - 在线算法: (60分钟,题目如下:)
- 一个留言本的增加和显示,如果留言超过5条,自主删除最老的那一条留言,显示返回的HMTL,每个消息的偶数行背景为灰色 – (我站在后台的角度写了留言板类和留言信息类,方法调用API类,采用队列进行存储,使用synchronized进行加锁)
- 面试官再次通电话,让我讲思路,他评价:思想是对了的,后续多深入学习锁相关知识再对此进行优化)
总耗时:两个半小时。
总结
- 面试官人很好,指出实习生的重点是对于技术学习的积极性和个人对技术开发的思想这两点。下来时间充裕的情况下多研究研究JVM,并发相关源码吧,肯定很有帮助的!!!
- 加油,冲冲冲!这是我的第一次面试经历,很舒服,加油加油加油!!!