作为去年裁员大军中的一员,为了准备年初的面试真的是勤勤恳恳诚惶诚恐啊。简单介绍一下,目前5年半开发经验,工作地点在上海,面的是Android高级岗,有一个认识前辈内推的。面试之前对华为做了大量的了解,而且反复刷了不下300道面试专题,面试的时候才发现这些题真是没白刷!
华为的面试基本就是群面,技术面,综合面,不同的是华为最后还有英语面
1.群面
群面是分两组讨论汇报。汇报时面试官不会只让一个人说,会指派其他1~2位同学汇报。然后就是补充发言了,这时候要主动说,被面试官叫到回答问题的一般是比较危险的。还有就是挑人评价组内表现情况,被评价表现不好的求生欲一定要强。群面主要是筛差的过程,只要对小组有贡献就行,不能不说话。
2.技术面
第一轮面试大概一个半小时。我们过了一面的一起去吃了个必胜客
做开发的最重要的就是技术面这一关!技术面是与面试官一对一的聊。首先会有3~5分钟的自我介绍,大家在自我介绍的时候一定要挑自己简历以及简历外的亮点说,做过哪些项目,带过团队经历等。重点是!敲黑板!在最后一定要说自己为什么要进入华为,以及对华为的看法!
问过的面试题;
自定义 View!(重点!)
View 的绘制流程。
自定义View的步骤。PhoneWindow 实例是在哪个类哪个方法中实例化的?Selector 是怎么实现的?View的事件分发机制
为什么移动后点击事件还在原来的位置?
这是我之前收集的很多面试相关的专题资料,确实很多都问到了。不过这次面试遇到的问题我并没有单独整理出答案来,一方面是时间精力有限,一方面是每次面试都不会是同样的几个问题。不过技术面肯定是一样的,所以梳理出来给大家一个参考,希望对在找工作的朋友能有帮助。
Android 系统源码方面
事件拦截和分发进程间的通信方式应用的创建启动流程Handler 是怎么导致内存泄露的第三方库的源码,Glide、OkHttp 和 Retrofit MVC,MVP和 MVVM 开发模式优缺点常用设计模式理解Binder 驱动和虚拟机
数据结构和算法,Java 的常用集合和实现原理
ArrayListLinkedHashMap 的实现原理缓存淘汰策略红黑树和二叉树最短路径规划海量数据筛选手写算法!
性能优化
如何检测一段代码的执行时间?界面卡顿如何修复?滑动不流畅怎么处理?50fps 有什么办法可以提高到 60fps?内存泄露怎么检测?leakcanay 的原理?
线程和线程池
wait() 和 sleep() 的区别?同步锁线程池的参数详解?AsyncTask 源码参数详解?
.......
我能记得的大概就这些了。再啰嗦一下,简历写的好很重要!多写点干货。面试官根据简历提问,面试官会死抠简历!超级细致!
这些都是我在腾讯一个Android官方QQ群里收藏保存下来的面试题。包含了BAT各种大厂的高级源码面试题,也有java,数据结构这些基础的面试题。最近在找工作面试需要这些面试专题,和了解行业情况的朋友,可以加一下试试;830344345。里面有各种免费学习和面试资料分享,还能跟大佬一起交流。
对于我们做技术的来说,往往接触越深,就越感觉自身的不足。每一天都小心翼翼就怕哪天学不动跟不上发展了
综合面和英语面
综合面可以理解为是技术面的plus版本,还是会死抠简历,只是抠的更细了,也会问一些与工作岗位相关的问题,比如你对这个岗位有什么看法什么的,所以提前要做一些功课了。
还有些朋友会遇到boss面,这个就是聊聊天,比如“你最近遇到什么挫折?”“用英语聊一下今天的面试经历”。
英语面:这个很多普通研发类岗位的面试应该是没有的,但层级高一点的一些岗位就会有了。英语测试分为3部分,测试完需要20min。
(1)句子跟读5个,每个就15个词吧,20秒的时间,时间很充裕。
(2)听力单选测试15个,英语4级水平吧。
(3)话题讲述。
整体的难度偏低。虽然我英语口语很蹩脚,但是对方也没怎么在意这块,毕竟又不是面的客户经理之类需要沟通的岗位。后面蛮开心的收到通知顺利通过了面试考核,等下一步录用签约!