前言
从春天辞职到立秋后决定入职某家工作,夏天悄悄溜走了,真的是恍如隔世。作为一个女生,连夏天的裙子都没有好好穿。辞职的日子,一个月就像一个周那么快,而且特别不期待周末,因为那是不可以面试的日子。待业的日子,我并没有疯狂的玩耍,我把这些时间用来了思考职业方向、不断求职、不断读书学习、不断复盘自己。事实证明,我是对的。
人总需要有一段时间需要沉淀,那是一段被别人怀疑的日子,一段自己有些焦躁的日子,但慢慢的,你会发现变得和以前不一样了,更加强大了。
工作5年,换了好几份工作,每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心,而且特别不喜欢请假面试,对自己负责也对公司负责。但是这次没想到市场环境非常不好,一直从春天熬到了秋天,不知不觉4个月过去了。之所以时间这么长,很大部分原因是我希望下份工作是一份稳定的工作,可以让自己好好沉淀,所以必须要满意!包括工作内容+工作薪水!
我辞职的日子,自己交房租(每月3000)社保(自己交带服务费每月1850)还要生活费,毫无收入,生活压力非常大,严重的时候睡不着觉,凌晨醒来会再也睡不着。所以如果承受不来生活的压力的童鞋,也不要轻易裸辞啦。我个人因为家庭原因,生活压力稍大。
但是我庆幸我终于熬过来了!我想说的是,如果你想要什么样的工作,千万不要放弃,尽管压力会很大,但是坚持下去就会有曙光。因为,面包总会有的。
面试了大大小小各种公司,有BAT的,上市的,AB各种轮的,初创的……今天大概列举了下,至少有30家公司。在这里我总结了求职面试需要注意的各种问题,希望可以用我的非常非常真实的面试感受和经验帮助大家少走弯路,明确目标,求职成功!!
面试攻略
一. 简历攻略
简历的投递,可以通过腾讯招聘网站,也可以找腾讯的朋友内推。要说明的是,内推不会增加通过几率,更不会减少面试流程。
简历的基本原则是信息真实,少数求职者可能会动歪心思,比如故意延长或缩短某段工作经历,或是对学历进行美容。真别这样,一旦被发现,不只是尴尬。
简历的内容要展示自己才能,让面试官看到郭靖的厉害之处,要多花点心思来写,突出亮点,吸引面试官。
简历所写内容,必须了如指掌,因为简历上的任何东西,都可能被问到。有些简历上写研究生期间发表了几篇论文,结果面试时被问论文的内容和原理,答不出来,真让人怀疑。
简历要好好写,用心写,真实地写,而且要对简历上的每个内容都了如指掌。自己的经历,怎么能不清楚呢?
如果学校不错,建议简历文件名采用如下格式:XX大学_学历_应聘腾讯安卓开发岗位.pdf,看到这简历名,就有想看看的冲动。
如果有github账号且写得很好,或者有开源作品,也可以放到简历中,让人看到你对技术的热爱和追求,这是加分项。
简历的其他注意点也很多,如下4点,不接受反驳:
-
简历只能是PDF格式。
-
简历不能是压缩文件。
-
简历中不能有错别字。
-
简历最多不超过2页。
总之,自己写完简历后,要好好检查和修改,多站在他人的角度审视自己的简历,也可以让自己信赖的朋友帮修改。
二. 技术面攻略
鸡汤大师说,如果看到地上有纸屑,要去捡起来,然后会被录用。这有点反智。真的,别去捡,没用的!要搞清楚,这是技术面,需要真刀真枪的本领。
电话面、组员面、组长面、总监面、总经理面、面委面,我们不逐一介绍攻略。这些流程,都是以考查技术为主,故统一介绍。
技术面涉及的内容实在太多,无法完全穷尽。所以,本文只聊面试前的准备方向,以及面试现场的注意事项。
还是以社招安卓开发为例,在面试之前,我去腾讯招聘网站看了相关岗位的要求,就知道要准备的技术内容和方向了。要准备的技术内容,纷繁驳杂,大致如下:
-
数据结构和算法。
-
操作系统和Linux.
-
计算机网络和网络编程。
-
C++和STL.
-
存储和数据库。
-
海量数据处理。
-
分布式组件和原理。
-
后台安全原理。
-
设计模式和原则。
-
系统方案设计。
-
项目介绍和讲解。
-
其它相关问题。
在面试现场,基本的事情还是要注意。少数面试者匆匆赶来,满头大汗,一身汗味,显然不好。少数面试者,觉得自己牛气冲天,在现场和面试官争论不休,自然也不可取。
一些面试者在现场遇到难题后,唉声叹气,变得急躁,这是非常不成熟的表现。也有一些面试者遇到困难后,不加思考,非常轻率,直接放弃,这怎么能打动和说服面试官呢?
没有万能人,大家都有知识盲区,遇到困难太正常了。遇到困难还能现场解决,才能体现出自身价值。即便无法解决问题,也可尝试说出自己的思路,而一个人的思路,往往能反映出这个人的心智模式和未来潜力。
总之,技术准备,功在平时。还是应该修炼基本功,有了这份基本功,就不怕变化,毕竟万变不离其宗。至于该怎么提升基本功,建议多学习、多思考、多实践、多总结。
世上没有银弹,也没有万能捷径,不要浮躁地以为,临时抱佛脚,刷几个题目,就能通过腾讯面试,没那么简单的。功夫修炼,千朝万夕。用兵一时,养兵千日。
三. hr面试攻略
hr面试考察的重点是情商,包括性格和沟通能力。掌握三个原则,万问可破:
**原则一:**强调自己是积极进取的人,乐于挑战自己,有更高的追求,不安于现状,对未来有清晰的思考和规划,并在付诸行动。
**原则二:**要以腾讯利益为目标,强调自己能为腾讯产品做出什么贡献,而不是强调自身利益和感受。
**原则三:**面对问题,不要直接用yes或no一棍子打死,而应该从多角度看问题,体现出严谨的逻辑性和条理性,辩证思维。
面试者去面试,本质上是和腾讯做利益交换。面试者是来向腾讯要钱的,自然要多体现自己能给腾讯带来什么利益。在牢记上述三个原则的前提下,我们来看hr常问的20个问题。
问题一:你为什么离职?
错误答案1:现在领导傻逼。
错误答案2:现在加班太多。
错误答案3:现在钱太少了。
错误答案4:现在部门斗争严重。
错误答案5:腾讯的福利待遇好。
错误答案6:在腾讯工作有光环。
错误答案7:想工作生活平衡一下。
错误答案8:师兄在腾讯,说腾讯好。
错误答案9:老婆在腾讯,我也想来。
错误答案10:我是一个孝子,要养父母,需要更多的钱。
点评:这个问题,绝对不是给机会让你吐槽现状或者谈主观感受。离职的原因,要强调自己有进取心,想去更大的平台,表达出看好腾讯的发展,想加入腾讯,共同成长。
问题二:我们为什么要招你?
错误答案1:因为你们缺人。
错误答案2:你们自己都不知道为什么要招我吗?
错误答案3:我之前干过类似工作,一定可以胜任。
错误答案4:因为我很优秀,你们需要我这样优秀的人。
错误答案5:因为你们业务发展很快,要更多的人力投入。
点评:这个问题,部分人读不懂题意。腾讯要招聘你的原因,一定是因为你能给腾讯带来价值。价值怎么体现和证明?不是吹嘘自己有多牛逼,而是要通过以往的事例,来说明自己有价值。
问题三:你怎么看待加班?
错误答案1:我讨厌加班。
错误答案2:我喜欢加班。
错误答案3:看心情来确定。
错误答案3:有加班费吗?
错误答案4:有钱就加,没钱不加。
错误答案5:有事就加,没事不加。
点评:看问题要看到本质,别直接回答yes或no. 也别傻乎乎太强调自己的感受,要牢记腾讯的利益。这个问题很好回答。
问题四:你对腾讯有什么了解?
错误答案1:没了解过。
错误答案2:了解一些。
错误答案3:了解不多。
错误答案4:腾讯挺好的,所以我来面试。
错误答案5:腾讯是个大公司,福利待遇好。
点评:如果对目标公司和产品不了解,那就显得面试动机很不真诚。平时多了解一下腾讯公司和腾讯产品,不至于面试时把天聊死。
问题五:你职业发展规划是怎样的?
错误答案1:嗯,啊,哦…
错误答案2:这个问题我没有考虑过。
错误答案3:我是脚踏实地的人,走一步,看一步。
错误答案4:我不关心这些虚无的问题,我只想把当前的事情做好,一步一个脚印。
错误答案5:我想好了,十年后要做市级专家, 二十年后要做省级专家,三十年后要做国家级专家。
点评:如果没有思考过职业规划,说明不够用心,对自己不够负责。也别跟某某一样,海阔天空,畅想未来三十年。
问题六:最打动你的一件事是什么?
点评:别扯那些潸然泪下的感人故事。可以举一个完成了不可能完成任务的事例,深受打动,从中学到什么,对后续工作有什么帮助。
问题七:你遇到的最大困难是什么?
点评:不要诉苦和煽情,要强调遇到困难,并且千方百计解决了,学到了什么,对后续工作有什么帮助。
问题八:工作中遇到不喜欢的人怎么办?
点评:千万别说不喜欢就远离,还是要以工作和项目为重,合作完成共同目标,时刻考虑腾讯利益。
问题九:你有在应聘其他公司吗?
点评:如实陈述,如果同时在面试阿里、头条,如实说出来,也让腾讯hr知道,你是有很多选择余地的。
问题十:你喜欢怎样的上级?
点评:上级岂要看你喜欢与不喜欢?任何上级都要喜欢。一起工作,共同目的是做好产品,自己要去适应上级。回答时可以说喜欢有责任心、有目标感且为团队着想的上级。
问题十一:你期望在工作中得到什么?
点评:千万别说钱。要说自己期望得到展示能力的平台和提升自己的机会,并和公司一起成长。要牢记自己能给腾讯带来什么利益,别傻乎乎地强调自己要获得什么回报,尤其不要提钱。
问题十二:你觉得腾讯哪个产品有什么可以改进的地方?
点评:别说一切都好无需改进,这显得很没有思考且不认真。也别瞎抱怨一通,只能轻微地说有哪些地方不足,并且一定要想出改进措施。任何没有改进措施的意见,都是添乱。
问题十三:你有什么缺点?
点评:不能说自己没有缺点 ,也不能把自己的缺点无限放大,如果说自己懒惰、有拖延症,这对面试有什么好处?还有人说自己有完美主义情结,这太俗套了。可以考虑说一些人性通病,比如自己工作有时比较着急,但要强调都是为了工作项目考虑,并说自己在逐渐改进。
问题十四:你的短期目标是什么?
点评:千万别说短期目标是为了找一份工作,多么没意思的回答啊。可以说自己短期目标是学习一门新知识,希望尽快学会,并且应用到工作之中。
问题十五:如果成功应聘,你打算在腾讯做多久?
点评:如果回答1年,说明不稳定,何必要招你?如果回答20年,那就是乱扯。可以考虑一种循序渐进的方式来回答。方式多得很,也很好回答。
问题十六:谈一次失败的经历。
点评:别只说失败如何惨痛,要强调从失败中学到什么。而且,在挑选失败案例时,不要是那种损失很大的事例。假如,你让公司损失了1亿美金,也好意思说?可以选择那些损失不大但意义重大的失败经历。
问题十七:说一下你的家庭吧。
点评:别陷入温柔的陷阱,尽说家里几口人并如何和睦恩爱。这对面试没有帮助。可以考虑强调家庭教育,比如从小爸妈就教育自己要正直、积极乐观、团结进取,有责任心。你看,这和腾讯价值观又暗中结合起来了。
问题十八:你最欣赏谁?
点评:别说一些乌七八糟的明星。低俗!也别仅仅说一个名字就结束。要尽量选真正能打动自己的人物,并简要说明为什么欣赏他。
问题十九:你喜欢怎样的工作氛围?
点评:这不是你妈妈问你,所以别随心所欲敞开心扉。这是hr问你,是在面试,容不得你挑选那么多。所以,不要太强调自己的内心喜好。可以说自己喜欢有活力、有目标感、有责任感、有创造力的氛围。这种回答,没人能反驳,况且也和腾讯的氛围吻合呢。
问题二十:你为什要这么高的工资?能不能向下调整?
点评:千万别扯什么家里开支大,或者买房了,所以需要钱。也别说自己之前工资高,跳槽更要涨一波。搞清楚,你是要强调自己有什么能力和价值,配得起这么高的工资,配得起这个涨幅。至于预期工资是否可以向下调整,这是进入了讨价还价的环节。直接说可以就是在自降身价,直接说不可以就是在自断后路。前面点评那么多了,这个问题其实很好作答。
四. 接受电子offer攻略
电子offer,就是正式的书面offer,这还要什么攻略呢?确实不需要,但也还是有些事情需要注意。
郭靖只有收到offer邮件才算数,才能开始跟自己的领导洪七公提离职,所以,这个时间节点要把控好。
收到电子offer,记得低调,千万别在公司炫耀,也别在网上忘乎所以。当然,郭靖这种职场老手,是不会犯这种低级错误的。接下来,就是背景调查了。
五. 背景调查攻略
背景调查,其实谈不上什么攻略,姑且称之为注意事项吧。
首先,基本信息不能造假,这个很好理解,毋庸置疑,无需强调。毕竟,正直是腾讯的最重要价值观。
其次,在找同事帮做背调时,要尽量选择关系好且会说话的。
最后,在提离职后,进行工作交接务必尽心尽力,不能跟领导和同事把关系闹僵,背景调查会问这些东西。基本的职业道德,还是要有。
背景调查公司会通过很多方式,调查求职者的基本信息。然后,也会打电话给求职者的直接领导、同事和所在部门的hr。
那么,背景调查公司打电话一般都会问一些什么问题呢?其实,无非就是问基本情况和表现,比如问求职者所在部门、入职时间和离职时间,比如问人品、平时表现和工作交接等问题。
背景调查公司拿到了真实信息,很满意,并把调查结果反馈给腾讯。还是那句话,身正不怕影子歪,对求职者而言,背景调查无非就是个流程。
有的朋友可能觉得,自己平时跟领导的关系不好,怕领导说坏话,想提供一个假领导的电话供背调,行不行呢?
我的个人看法是,不建议。很容易穿帮,而且也确实不够诚实和正直。即使跟领导关系不好,也要想办法。
大家都是打工的,平时就要跟同事和领导进行良好合作,为了共同的目标而合作,弄僵关系只能说明情商不高。
切记保持低调,不要跟无关人透漏即将离职,更不要透露去腾讯后的福利待遇,免得人心浮动,惹怒领导。有时,做孙子,甚至是装孙子,是一门学问。互联网圈子很小,口碑和人品很重要。
万事留一线,江湖好相见。轻轻地离开,不带走一片云彩。
面试题总结
Java基础
(1).什么情况下会发生栈内存溢出?
(2).如果让你写一段栈溢出的代码你会什么写,一个栈大概有多大,为什么?每个线程都有这样大小的一个栈吗? (美团)
(3).JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?
(4).介绍下GC回收机制与分代回收策略。
(5).Java中有几种引用关系,它们的区别是什么?
(6).GC收集算法有哪些?它们的特点是什么?
(7).如何判断一个对象是否被回收,有哪些GC算法,实际虚拟机使用最多的是什么GC算法?(美团) (8).Jvm内存 结构说一下。 a.描述JVM内存模型。(东方头条)
(9).JVM DVM ART的区别(360)
(10).描述GC机制。Class会不会回收?用不到的Class怎么回收?(东方头条)
(11).StackOverFlow与OOM的区别?分别发生在什么时候,JVM栈中存储的是什么,堆存储的是什么?(美团)
(12).Java虚拟机和Dalvik虚拟机的区别?
(13).请描述new一个对象的流程。
(14).Java对象会不会分配到栈中?
(15).String, Stringbuffer, StringBuilder 的区别是什么?(东方头条)
a.String StringBuffer StringBuilder在进行字符串操作时的效率;这里主要考察String在内存中是如何创建的。(字节跳动)
(16).String为什么是不可变的?(字节跳动)
a.String为什么设计成final的?
(17)final 、finally、finalize 区别。
(18)抽象类和接口的区别。
(19)重载和重写的区别 (京东)
(20)什么是值传递和引用传递,Java 是值传递还是引用传递?
(21)String s = new String(“”);创建了几个对象?
(22)java里 equals和== 区别。
(23)try-catch-finally,try里有return,finally还执行么?
(24)Excption与Error区别。
(25)Static class 与non static class的区别。
(26)PathClassLoader与DexClassLoader的区别是什么?
(27)什么是双亲委托机制,为什么需要双亲委托机制?
(28)描述JVM类加载过程。
(29)动态代理是什么?如何实现?
(30)动态代理的方法怎么初始化的?(字节跳动)
(31)CGLIB动态代理(字节跳动)
(32)说说反射的应用场景,哪些框架,原理是什么?
(33)Java泛型的特点与优缺点,泛型擦除是怎么回事?
(34)List能否转为List。
(35)泛型super和extends的区别。
a.说法2:Java 的泛型,<? super T> 和 <? extends T> 的区别。
(36)为什么IO是耗时操作?
并发编程
(1)假如只有一个cpu,单核,多线程还有用吗 ?(美团)
(2)sychronied修饰普通方法和静态方法的区别?什么是可见性?
(3)锁分哪几类?
(4)CAS无锁编程的原理。(字节跳动)
(5)ReentrantLock的实现原理。
(6)AQS原理 (小米 京东)
(7)Synchronized的原理以及与ReentrantLock的区别。(360)
(8)Synchronized在JDK1.8之后做了哪些优化 (京东)
(9)Synchronized static与非static锁的区别和范围(小米)
(10)volatile关键字干了什么?(什么叫指令重排) (字节跳动)
(11)volatile 能否保证线程安全?在DCL上的作用是什么?
(12)volatile和synchronize有什么区别?(B站 小米 京东)
(13)两个线程用不同的对象,怎么样?(字节跳动)
(14)什么是守护线程?你是如何退出一个线程的?
(15)sleep 、wait、yield 的区别,wait 的线程如何唤醒它?(东方头条、字节跳动)
(16)sleep是可中断的么?(小米)
(17)实现非阻塞式生产者消费者(字节跳动)
(18)如何开启一个线程,开启大量线程会有什么问题,如何优化?(美团)
(19)线程生命周期。
(20)ThreadLocal是什么?
(21)AyncTask的原理。
(22)AsyncTask中的任务是串行的还是并行的?
(23)线程池管理线程原理。
(24)线程池的相关参数,有哪些类型的线程池,线程池任务如何调度,任务队列只是先进先出的队列吗,任务有优先级怎么办,知道优先级反转吗? (美团)
(25)有三个线程T1,T2,T3,怎么确保它们按顺序执行?
(26)Android中操作多线程的方式有哪些?
(27)怎样获取当前线程是否是主线程 (字节跳动)
(28)HandlerThread是什么?
(29)线程间如何通信?
(30)RxJava线程切换原理,RxJava1和RxJava2的区别有哪些?
网络编程
(1)描述TCP三次握手与四次挥手的过程与意义。
a.TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
b.三次握手为什么不是两次一次 五次六次(美团)
(2)TCP与UDP的区别是什么?(腾讯)
(3)Http与Https的关系是什么?
(4)SSL握手的过程。
(5)Http的post与get请求的区别是什么?
(6)输入一个URL到浏览器发生了什么?(美团)
二、Android体系
(1)Acitvity的生命周期是什么样的?
a. Acitvity的生命周期,如何摧毁一个Activity? (美团)
(2)Activity的4大启动模式,与开发中需要注意的问题,如onNewIntent() 的调用;
a. Activity的启动模式,区别 (美团)
b. singleInstance如果不指定栈名,是怎么分配的?(字节跳动)
(3).Intent显示跳转与隐式跳转,如何使用?(美团)
(4)Activity A跳转B,B跳转C,A不能直接跳转到C,A如何传递消息给C?(美团)
(5)Activity如何保存状态的?
(6)请描诉Activity的启动流程,从点击图标开始。(B站) a. APP是怎么启动的?
b. 启动一个Activity的流程分析
(7)Service的生命周期是什么样的?
a. Service两种生命周期以及区别
(8)你会在什么情况下使用Service?
(9)startServer和bindServier的区别?(美团)
(10)Service和Thread的区别?
(11) IntentService与Service的区别?
(12)ContentProvider如何自定义与使用场景是什么?
(13)BroadcastReciver的静态注册与动态注册的区别?
(14)广播的分类与工作原理
(15)可以再onReceive中开启线程么,会有什么问题?
(16)什么是有序广播?
(17)Application、Activity、Service中context的区别?能否启动一个activity、dialog?
(18)Fragment的生命周期? (美团)
(19)Fragment的构造函数为啥不让传参?(B站)
(20)Fragment add与replace的区别,分别对Fragment的生命周期影响(美团)
三、View System
(1)View绘制流程与自定义View注意点。(东方头条、美团)
Android中的每一个UI控件都是集成自View,然后这些View都具有相同的绘制流程,必须经过measure,layout和draw. view的绘制流程是在Window添加过程中,ViewRootImpl类的setView方法开始的
(2)在onResume中可以测量宽高么
(3)事件分发机制是什么过程?(东方头条) (***冲突怎么解决?(东方头条)
(5)View分发反向制约的方法?(字节跳动)
(6)自定义Behavior,NestScroll,NestChild。(东方头条)
(7)View.inflater过程与异步inflater(东方头条)
(8)inflater为什么比自定义View慢?(东方头条)
(9)onTouchListener onTouchEvent onClick的执行顺序。(58 京东)
(10)怎么拦截事件 onTouchEvent如果返回false onClick还会执行么?(58 京东)
(11)事件的分发机制,责任链模式的优缺点 (美团)
(12)动画的分类以及区别(车和家)
(13)属性动画与普通的动画有什么区别?(车和家)
(14)插值器 估值器的区别(车和家)
(15)RecyclerView与ListView的对比,缓存策略,优缺点。(美团)
(16)WebView如何做资源缓存?(字节跳动)
(17)WebView和JS交互的几种方式与拦截方法。(字节跳动)
(18)自定义view与viewgroup的区别
(19)View的绘制原理
(20)View中onTouch,onTouchEvent和onClick的执行顺序
(21)View的滑动方式
(22)invalidate() 和 postInvalicate() 区别
(23)View的绘制流程是从Activity的哪个生命周期方法开始执行的
(24)Activity,Window,View三者的联系和区别
(25)如何实现Activity窗口快速变暗
(26)ListView卡顿的原因以及优化策略
(27)ViewHolder为什么要被声明成静态内部类
(28)Android中的动画有哪些? 动画占用大量内存,如何优化
(29)自定义View执行invalidate()方法,为什么有时候不会回调onDraw()
(30)DecorView, ViewRootImpl,View之间的关系,ViewGroup.add()会多添加一个ViewrootImpl吗
(31)如何通过WindowManager添加Window(代码实现)?
(32)为什么Dialog不能用Application的Context?
(33)WindowMangerService中token到底是什么?有什么区别
(34)RecyclerView是什么?如何使用?如何返回不一样的Item
(35)RecyclerView的回收复用机制
(36)如何给ListView & RecyclerView加上拉刷新 & 下拉加载更多机制
(37)如何对ListView & RecycleView进行局部刷新的?
(38)ScrollView下嵌套一个RecycleView通常会出现什么问题?
(39)一个ListView或者一个RecyclerView在显示新闻数据的时候,出现图片错位,可能的原因有哪些 & 如何解决?
(40)Requestlayout,onlayout,onDraw,DrawChild区别与联系
(41)如何优化自定义View
(42)Android属性动画实现原理,补间动画实现原理
四、Android FrameWork
1.Android中多进程通信的方式有哪些?
a.进程通信你用过哪些?原理是什么?(字节跳动、小米)
2.描述下Binder机制原理?(东方头条)
3.Binder线程池的工作过程是什么样?(东方头条)
4.Handler怎么进行线程通信,原理是什么?(东方头条)
5.Handler如果没有消息处理是阻塞的还是非阻塞的?(字节跳动、小米)
6.handler.post(Runnable) runnable是如何执行的?(字节跳动、小米)
7.handler的Callback和handlemessage都存在,但callback返回true handleMessage还会执行么?(字节跳动、小米)
8.Handler的sendMessage和postDelay的区别?(字节跳动)
9.IdleHandler是什么?怎么使用,能解决什么问题?
10.为什么Looper.loop不阻塞主线程?
a.Looper无限循环为啥没有ANR(B站)
11.Looper如何在子线程中创建?(字节跳动、小米)
12.Looper、handler、线程间的关系。例如一个线程可以有几个Looper可以对应几个Handler?(字节跳动、小米)
13.如何更新UI,为什么子线程不能更新UI?(美团)
14.ThreadLocal的原理,以及在Looper是如何应用的?(字节跳动、小米)
15.Android 有哪些存储数据的方式?
16.SharedPreference原理,commit与apply的区别是什么?使用时需要有哪些注意?
17.如何判断一个 APP 在前台还是后台?
18.如何做应用保活?
19.一张图片100x100在内存中的大小?(字节跳动)
20.Intent的原理,作用,可以传递哪些类型的参数?
21.如果需要在Activity间传递大量的数据怎么办?
22.打开多个页面,如何实现一键退出?
23.LiveData的生命周期如何监听的?(B站)
五、性能优化专题
1.App稳定性优化
2.App启动速度优化
3.App内存优化
4.App绘制优化
5.App瘦身
6.网络优化
7.App电量优化
8.安卓的安全优化
9.为什么WebView加载会慢呢?
10.如何优化自定义View
11.FC(Force Close)什么时候会出现?
12.Java多线程引发的性能问题,怎么解决?
13.TraceView的实现原理,分析数据误差来源。
14.是否使用过SysTrace,原理的了解?
15.mmap + native 日志优化?
六、三方源码理解
1.Glide :加载、缓存、LRU 算法 (如何自己设计一个大图加载框架) (LRUCache 原理)
2.EventBus
3.LeakCanary
4.ARouter
5.插件化(不同插件化机制原理与流派,优缺点。局限性)
6.热修复
7.RXJava (RxJava 的线程切换原理)
8.Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)
9.OkHttp
总结
最后,对于我们程序员而言,面试就是将自己所学的技术与面试官表达出来。以前上学准备找工作的时候,发现最先找到工作的不是技术最好的而是善于沟通活跃度高的人,而我之后听的最多的抱怨是 “为什么我明明知道这个东西,面试的时候却不知从何说起”,其实从我自己待过的公司再到面试技巧的分享,我就是想谈一谈自己对于面试的看法想和大家多多沟通,希望自己这点经验能够让你在面试中更进一步,那我就心满意足了,我加入了一个学习交流群:345+659+112,群里有开发大佬技术交流,大家没事的时候可以来这里交流学习当下最新技术和经验。
最后上图面试资料免费分享给大家,需要的朋友,可以扫描下方二维码,备注【8】我免费分享给大家
祝愿大家都能拿到自己心仪的offer