Android 菜鸟 6 年开发面试字节跳动安卓研发岗,被面试官怼的没话说
确认过眼神,我们在初次见面的紧张和局促中正式开始,前戏的部分大同小异,自我介绍,公司职能,项目简介。
小作坊走出来的小猿,项目经验并不出彩,没有高并发,没有分布式,前端后台服务器和数据库部署在同一台机器上。为了不显的太 low 又假装不经意提了提自己在 GitHub 上有自己的开源框架,但是他并不 care。我的花样耍完了,就到了他肆意挥舞小皮鞭的环节。
接下来是我靠着自己的记忆整理出来的这次的面试题:
字节一面 1 小时
面试官一直在摆弄自己超长的浓密头发,可能是变相施压吧在。。
http1.1 和 2.0 区别
序列化,Serializable 和 parceble 区别,分别什么时候用
tcp 三次握手
内存泄露
双亲委派机制
快排
threadlocal 了解吗
handle 你怎么理解的(扯源码),post 方法是怎么工作的(封装 Runnable)
okhttp 讲讲
事件处理机制
Activity 生命周期,给了几个场景问生命周期变化
Fragment 生命周期
Service(具体是啥记得不太清了,都学学没坏处)
GC 回收机制
HashTable 理解,初始带大小,扩容机制,HashMap
还有哪些安全的 map
sychronized 用过吗,sychronized 可以相互嵌套吗
violatile 用过吗
算法:之字形输出二叉树(秒了)
20 分钟后字节二面 1 小时
接口和抽象类区别
设计模式六大原则
handle 内存泄露
进程调度策略
如何保证微信发送消息可以传达到,跳出 TCP 思维想想(结果还是抄了 TCP 思想)
由于网络原因信息发送速度不一,如何使接收端可以确认信息的正确顺序
如果让你管理 APP 中的线程你会怎么做(我也没太懂。。就说了线程池之类的)
okhttp 线程池怎么实现的
事件处理机制
如果添加 onClick 事件怎么处理事件
如何下载一个特别大的图片
如何加载一个特别大的图片
如何在关闭程序之后很快加载特别大的图片
Exception 和 Error 区别以及 Exception 两种类型
算法:求最长递增子序列(原本以为是不连续的讲了半天。。面试官说是连续的,O(n)秒了)
半小时后 hr 打电话约三面(视频面)
字节三面 40 分钟
面试官:那我就看看你安卓了解到什么程度吧。。
布局了解过哪些
广播讲讲,系统广播有哪些
MVP 和 MVVM 讲一下
用过哪些隐式 intent
Fragment 生命周期
touchEvent 和 touchListner
targetSDKVersion,minSDKVersion,compileSDKVersion(得知我没注意过,面试官发出了肆无忌惮的笑声。。对不起这些不会是真的会被嘲笑)
SQLite 用过吗,sharedpreference 用过吗,多进程使用 sharedpreference
聊项目
平时有什么爱好
安卓看了哪些书
中间面试官问了很多底层原理的问题,除了低头委屈说不会,内心的我已经意识到了问题的严重性,平常面试你只要一喊不行,对方就会体贴地换一个方向继续深入,这次我都快被搞哭了,他居然换了个姿势继续往深怼,这谁顶得住啊……到了这一步我的心理防线基本宣布告罄??????
其实面试官的套路大多如此,每个技术都尽可能的深入,深到你不会为止,并不是非得要把你折磨的不能自理,而是为了考察你的技术水平到底如何。但是事到如今我的大脑已经无法给自己完成心理建设了,摧枯拉朽般智商情商性商逆商全线崩盘。
当然这也不能全怪我,上来就是三个大闷棍,就是李云龙来也让旅长打成懵逼了,哪里还能腾出精力开意大利炮。
最后的视频面面试官终于放我走人,长达一个小时的激情视频聊天终于结束,关掉视频的一刹那,随着浑身一阵抽搐,整个人瘫软在椅子上。我是谁?我在哪儿?刚才发生了什么?
哦,刚才发生了那种事情。我之前对那种事情还挺向往的,内心对此充满了激情和憧憬,怎么现在,对这件事情一点兴趣也没了?现在只想这么瘫着什么也不想做。要不要点根烟抽抽?哦对了我不抽烟。原来贤者时间脑子里这么多想法……
飘飘忽忽浑浑噩噩,脑海里一直回荡着周董的音乐:这感觉已经不对我最后才了解,一页页不忍翻阅的情节我好累,你沉默看我掉过几次泪多憔悴,而我心碎你受罪你的 offer,我不配~~~!
面试过程和提到的问题大致如此,为了阅读体验有部分艺术修饰,但是内容全部都是真实的。接下来咱们说点正经的。
面试中需要注意的问题
今天这轮面试,算是被扒了个体无完肤,可以说是程序员面试的反面典型,当然我也不怕说出来,菜就是菜,吹水就是吹水,努力把吹过的水早日兑现,迟早有一天能成真正的大佬!
这次作为 loser 再说说在求职前期准备过程中暴露出的问题,望大家引以为戒。
1、尽量早早做好准备
面试不应该是准备好了才去,而是时刻都准备好了。如果非要说从什么时候开始准备离职跳槽,我的建议是半年。别像我一样,面试了才开始看算法和数据结构。
2、先找小公司面几次进入状态,再投大公司一举拿下。
我蠢到一开始就动用
了我所有的人脉,投了 bat 及其他二线大厂所有的内推。算上字节跳动已经是我黄掉的第三个响当当大厂了,踩着大厂当垫脚石攒面试经,除了觉得自己蠢,我还觉得自己真特么牛逼。
3、你的简历,就是复习大纲
总有人拿网上找到的拿了 bat offer 的人提供的复习大纲复习,结果发现并没啥卵用。我这次字节的面试,他提出的所有的问题全部是基于我简历中的技能清单。
我认为很多人但凡能做到简历中技能清单描述的样子,就已经算了不起了。如果简历中感觉无料可写?我推荐一个好办法:
1.听说过名字,就写了解;2.跟着帖子写过 demo,就写熟悉;3.项目当中用过,就写熟练掌握;4.项目当中经常用,就写精通;
我就是这么写的,结果很显然,出来混,总是要还的,敢装逼,就活该被人凌辱。
4、警惕舒适区
不得不承认我在现公司呆的真的非常舒服,领导非常器重,项目和授课两不耽误,去大学实训总是受到学生的追捧,手里时不时还能接到价格公道的私活儿。
之所以想走,一方面是因为心中对大厂和技术的执念,另一方面是因为现在已经到了给自己规划的时间,碰巧赶上互联网寒冬是没有办法的事,但是我仍然坚信真正牛逼的人是不会被寒冬所阻拦。
评论