一个没参加秋招的java开发面经(春招)
背景
我是一名广东末流985软件工程的大四学生,在春招期间投了腾讯、阿里巴巴、CVTE、网易、欢聚时代、华为,并拿到了前三家的实习offer。最终我选择了腾讯,并且通过考核转正,所以没参加秋招23333。感谢牛客网对我春招的帮助,现在分享一下自己的面经,希望对后面的同学有些帮助。
复习
本人在大二下学期差不多结束的时候决定走java后台开发的方向,大概是2017年1月开始复习,内容大致如下:
- java基础知识:集合类,JVM内存结构等
- java框架:Spring、Mybatis等
- 数据结构+算法,主要是刷牛客网和leetcode上的算法题。
- web开发:http/https协议,cookie,session等
- 数据库:MySQL、Redis
- 操作系统:主要是进程,线程
- 计算机网络:5层结构、7层结构,每层常用协议
- 其他工具:git、maven
- 笔试题:主要是刷牛客网的选择题
简历
简历也是很重要的一环,建议在一个简洁、不花哨的的模版上设计。建议简历上最好至少有以下内容:
- 个人基本信息: 姓名、联系方式、学校、专业
- 岗位,这个可以根据不同公司的岗位写不同的
- 成绩:主要是排名
- 专业技能:技能+熟练程度
- 项目:简要介绍、使用的技术、自己的角色
还有一些校内担任的职务、个人博客等也可以写上。
面试
以问答的形式,主要写一下技术面。
腾讯
一面(现场面试 技术面 50分钟左右)
1. 介绍项目
问了一下我简历上的项目
2. JVM内存模型
比较常见的问题,我直接在纸上写了。
3. 对网络编程的了解
懂得不多,大概写了一下socket的那些东西,还有IO复用也勉强说了一下。
4. SpringMVC相关问题
- 一个请求是怎么到Controller的方法上的
- 同一个Controller方法能否返回不同格式的数据,例如json、xml
5. 如何实现MySQL批量操作
先问了下有没有用过批量操作,然后再问如何在MyBatis中使用批量曹操作
6. 最近看的技术书,平时在哪学习
正常回答就好
二面(现场面试 总监面 30分钟左右)
1.介绍自己
这里我主要是展开简历上的内容,这一段建议大家尽早准备并熟练背诵23333,时间不宜过长
2.项目相关问题
- 项目的成员分工
- 我相对与其他成员的优缺点
3.坚持的比较久的事情
正常回答就好
4.与研究生相比,我的优势在哪
这个似乎没回答好,当时就说遇到问题会努力去解决
三面(现场面试 HR面 15分钟左右)
1.简历上的一些细节提问
2.项目中还有什么可以优化的地方
3.目前的offer有哪些,会选择腾讯还是XXX
阿里巴巴
一面 (电话面试 技术面 1小时左右)
1. 介绍自己
同上
2. 编码、解码
由于我的介绍里提到了这个,面试官就让详细的说一下我对编码的认识,他还问了我一次请求中会在那些地方发生编码解码。
3. java类加载
比较常见的问题了,让我介绍java的类加载机制,涉及到双亲委派模型。
4. 进程死锁
什么是死锁以及死锁的条件
5. 对中间件、分布式的认识
一脸懵逼,当时确实不清楚。
二面 (电话面试 技术面 40分钟左右)
1. 数据表设计
问我项目中的数据表是怎么设计的
2. 数据库
- 两种常见的MySQL存储引擎:InnoDB、MyIASM
- 表具体是怎么存的,一脸懵逼
- 索引的底层实现
3. java集合类
先让我介绍java的集合类,我从接口一直往下将讲到具体的实现类,然后面试官又详细的问了一下HashMap,ConcurrentHashMap的底层实现。
4. 线程池
由于项目中用到了多线程,就让我讲一下线程池的知识。
5. 操作系统
问我有没有用过linux,然后问了下ps,fork,pthread这些。
6. 算法
如何查找一个链表的倒数第k的节点,用快慢指针可破。
三面(电话面试 hr面 15分钟左右)
1.介绍自己
2.最崇拜的一个人
3.兴趣爱好
CVTE
一面 (现场面试 技术面 30分钟左右)
1. 介绍自己
同上
2. 写算法
让我在纸上写了个快速排序,并且让我讲了一下其他排序。
3. 同步机制
写了两个方法问我执行过程,跟synchronized的机制有关。
4. Redis
问了项目中怎么使用Redis,以及对缓存替换算法的了解。
二面 (现场面试 技术面 25分钟左右)
1. 介绍自己
同上
2. 写算法
出了个场景题(具体是什么忘了),最后用归并排序解决。
3. 项目架构
让我在纸上画出简历上的项目架构图,然后又问了下MVC模式。
三面 (现场面试 hr面(2个hr面3个人) 25分钟左右)
1. 介绍自己
2. 理想
3. 如果CVTE给offer,会不会来
欢聚时代
一面(现场面试 技术面 25分钟左右)
1. 介绍自己
同上
2. 考试成绩
主要问了数据结构,计网
2. java同步机制
介绍了synchronized,Lock类
3. 实际应用
让我在纸上实现一个队列,然后又问如何保证它是线程安全,怎么优化
二面(现场面试 技术面 20分钟左右)
1. 介绍自己
同上
2. 学校上的课程
正常说就好
3. 数据库的索引
问了下索引的底层实现
4. 如何在MySQL存放地理信息位置
这个想了半天也没说出个啥,估计就是这样挂的。