又到了一年的春天,各大公司的暑期实习也约了起来。为了9月份能够更加从容地面对找工作,大家都纷纷加入到暑期实习的笔试面试当中去。本文旨在记录自己的一些教训,给自己形成一个备忘和努力目标。反正博客的人气也基本没有~我就自娱自乐了:)
一、网易
职位:Java公共技术开发(杭研)
网易的面试一天面了3轮,两轮技术面,最后一轮HR面。目前为止,结果还不清楚。
1. 一面
- 关于异常捕获和处理,try…catch…finally。
- JVM内存管理和垃圾回收算法。
- 讲了一下我做的Android App,问我遇到的最棘手的问题及解决方案。
- 给定100万个文件,文件中存放着很多字符串,用户要搜索某个字符串s,返回哪个文件第几行第几列含有s。设计一套系统,包括存储结构,搜索算法。
- 你了解哪些设计模式
- 手写代码。两个有序链表归并。
对于第四个题,我当时也没有什么很好的思路,就想把文件存到HashMap
关于最后一个手写代码题,就有点不好意思了。我本以为很简单。。。但是各种小细节没处理好。在面试官提示下,花了一些时间才完完全全调整好。感觉表现不是非常好。回来一定要练习手写代码,还要注意防御性判断!
2. 二面
- 讲一下Java中有哪些Map
- 字节流和字符流的区别
- Java同步方式,多线程,有没有使用线程池
- 你了解哪些设计模式
- 讲一下几种排序算法的原理
- 手写代码。二分查找。
二面进行时间比较短,会就问得比较深,不会就过。代码题比较简单,也基本一次就对了,因此应该来说还是比较顺利。
第一题,Java中的Map好像用得比较多的是HashMap,TreeMap,HashTable。
第三题,我回答的Java的同步方式就是synchronized和lock。volatile不知道算不算,当时也忘记说了。后来查了查,应该是Synchronized,volatile,lock和局部变量。
3. HR面
- 为什么想做程序员
- 在平时开发过程中,哪个项目最深刻,为什么
- 为什么投我们部门(Java公共技术开发)
- 有木有投其他实习,如果都过了怎么选择
- 暑期能不能来实习
- 对实习薪资有什么要求
中午在网易吃了午饭,网易食堂竟然不用刷卡,随便吃的。。。HR姐姐也挺和善,其实就是和你聊聊天。
总的来说,网易给我的感觉还是很好的,更加注重的是你在解题过程中,思维发展的过程,如何一步一步进行优化。
总结一下,JVM,GC,设计模式简直是Java面试必问。。。
二、阿里巴巴
职位:客户端开发工程师(杭州)
投了阿里之后,没有收到笔试通知,某天晚上直接就来了电话面试。目前为止,只进行了电面,后续消息还在等。
1. 电面一面
- 先自我介绍一下
- 讲了一下我的Android App,讲了一下RxJava
- Android进程间如何通信
- Android多线程
- 我说我看过源码,就讲了一下view的绘制过程
- 你了解哪些设计模式
- JVM内存管理
- JVM类加载机制
因为一直在写自己的App,对这些部分都很熟悉,基本上都回答出来了,感觉还不错。
2. 电面二面
- HashMap实现原理
- JVM垃圾回收机制
- Activity的启动模式
- 了解哪些设计模式
- 如何从监控用户使用app出现闪退情况的原因
3. 电面HR面
- 开发过程中遇到最大的困难,如何解决
- 说出你自己的三个优点
- 如果你通过面试,你认为自己比别人的优势在哪?
- 如果没有通过面试,你认为原因是什么?
By tjt
2016.04.07