先说一下关于我本人的一些情况吧,我是一个目前大四在读,双非的普通本科二本的学生,由于对本方向的软件(游戏)开发实在是不感兴趣于是开始自学了 JAVA 与安卓开发,因为没有系统的指导于是自己在学习期间还是走了很多弯路的吧哈哈~(不过自学的确可以很扎实地了解到很多相关的知识)然后在暑期的一个初创型公司实习了近两个月把,可能是因为公司人力不足把感觉学习还是和自学一样,恰又正好碰到秋招这个人才流动高峰期,于是就先边投了几个大厂边开始准备理论笔试和面试(自学起来的理论真的是超级差。。),那于是在不久同花顺的 HR通过 Boss 联系上了我,那么接下来就是正式开始面试的环节了。
一、笔试
简单了解了简历上和我自己的一些方面的情况后,HR小姐姐发了一封笔试的邮件给我,印象里记得好像有10道题目吧。具体也记不太清了只记得几个,不过电话里说的因为是社招的题目所以会有点难但是实际做起来好像还。。。可以??努力回忆一下好像这几个是比较有印象的,不是一字不落的题不过大概是这个意思(实在抱歉真的想不起来所有的。。。)
1.自己封装一个StringBuffer类,要求实现 append()方法;
2.实现在应用程序退出后依然可以在10分钟后在 Log 里面打印一段信息
3.看了一段代码,具体是啥忘了反正是在主线程中等待了一段时间然后更新了 UI,让指出有什么错误
4.一段代码查错
5. 怎么让指定的 Receiver 接受到该广播并且阻止其他广播接收器接收
6.LinearLayout 和 Button都设置点击事件,问 Up 和 Down 的时候View 的事件分发是怎样的。
7.Fragment 的性能优化
8.如何绘制一个 View(过程)
反正我记得一共10道题目吧,一个20分的我应该是没答对还一个5分的应该有一两个点没答上其他的应该都是稳得(嘻嘻~),那然后考完就等消息呗,那个时候估摸着应该有机会面试于是就开始看面试题了。
那之后第二天下午,接到 HR小姐姐的电话说笔试通过了问什么时候能到现场面试,因为家里不在杭州嘛于是就问问能不能电话面试,他说希望还是现场面试吧(意思就是不行呗。。),那好赶紧定高铁票(真贵。。),第四天大清早就踏上了去杭州的路。。。
二、面试
大概10点多到的火车站吧(怎么好像在写旅游日记??!?),然后地铁转啊转啊转(还真有点远说实话)12点到了余杭区公司那边吃了个饭然后登记,坐沙发等,公司的大厅真的挺大的挺豪华的,然后就像个没见过世面的孩子一样到处拍(没错我就是来旅游的哈哈哈),等了半小时吧大概,就给叫上去了。
1.技术面
首先是技术面试,在面试快结束的时候我的提问了解到这个技术主管小哥哥还挺年轻的,并且已经在公司待了7年了,面试气氛有点压抑吧不管我怎么笑着谈话气氛都提不起来(这就是强者的世界吗.jpg)咳咳,那开始正式面试吧。
1.首先是跑不了的自我介绍
2.我看你简历上是有项目的,能大概说一下吗?
3.你项目采用的是怎样的架构呢?能大概讲一下 MVC,MVP,MVVM 吗?,如果要用 XXX 模式的话,哪些控件或者说哪些类属于那一部分呢?(教科书般的问题基本每个帖子都有所以早就准备好了哈哈哈)
4.讲一下安卓的 View 事件分发吧
5.Activity 的启动模式有哪几种,讲一下区别呗,什么情况下用哪种启动模式
6.怎么处理 Scrollview 和 ListView 的滑动冲突?我现在实现了高版本的 ScrollView 和 Listview 嵌套,怎么在低版本实现呢?
7.ArrayList 和 Map 的区别有哪些,Map 底层是怎样实现的有了解过吗?
8.怎么实现子线程与主线程进行通信呢?能把 message相关类及message的处理流程讲一下吗?handler 可以在线程中实现吗?
9.什么情况下会导致内存泄露,有哪些处理方式呢?
10.导致ANR 的常见情况有哪些
11.http 和 https 的区别有哪些,ssl 加密的原理是怎样的呢?
12.提到加密,Base64编码用过吧,AES 加密算法和 RSA 加密算法的原理能讲一下吗?哪个是采用对称密钥哪个是采用公私钥?
13.讲一下 Http 请求的分类和组成吧
14.解析 XML 通常有哪几种方式,json 和XML的利弊有哪些
15.看过 volley 框架的源码吗?能讲一下 Volley 框架是怎么实现的吗
16.你用过哪些框架?看过哪些源码?讲一下Glide 框架的源码吧(这里懵了。。平常源码看的不细,基本等于没看)
17.现在我有 n 个随机数,你给我一个算法,找出三个数乘积的最大值;(这里想了一下后问:有负数和0吗?需要我排序吗?然后就说好了我知道你的思路了你的思路是对的我:???)
18.问了几个基本排序算法的原理,我知道原理但不太会讲就大概拿手边比边讲,他应该是听懂了
19.你在平时写项目遇到最大的困难是什么,怎么解决的?
20.你有什么想问我的吗?
听到最后一个问题我就知道应该结束了,期间还有几个问题我不太记得了但是都答出来了,9,14,16没有答好面试官点拨了一下几个点也差不多答上来了,不过第一次面试气氛又太僵硬发挥可能不太好后面想着还有东西应该一块说出来的。技术面是的考官应该是经验很丰富的,面试问题顺序行云流水,围绕项目的点一点点往深了问,从布局到优化,从数据结构到算法,然后就通知去另一个办公室找 HR 小改改 HR 面。(技术面大概面了一个小时了)
2.HR面
HR面气氛就很轻松了,HR 小姐姐也很年轻,说话也很好听,长的也很漂亮,咳咳..扯远了,那HR 面就开始了问题不多吧感觉上和聊天差不多。
也大概概括一些点吧
1.家庭情况
2.父母对来这边工作的意见,自己怎么看的
3.自己以后打算怎么发展
4.为什么想要从事移动开发
5.最近一次感受到压力大是什么时候,因为什么
6.加班的一些情况
7.工资待遇
8.公司及当前主要业务介绍(到这里就感觉 offer 稳了不知道为什么会有这种感觉,可能是后面一直在说什么我来了之后要干啥之类的)
后面好像也没啥了。。。就疯狂聊天也忘了在聊啥
然后面试结束。。。
后面在回去的路上接到了 offer,但是由于家里的意见和我自己的想法我还是放弃了这份offer,现在想想也有点后悔吧,不过绝大部分还是想通了这次就当做一次证明自己能力的经历,能拿到 offer 结果也是好的,还是得多加强理论方面的东西吧,希望秋招能找到更好更适合自己的地方!
加油吧,也希望各位看到帖子的小伙伴能得到一些帮助和经验!