0.前言
因为换城市、换工作的缘故,差不多三个月没写博客了,其实一直想写一写高质量的日志,奈何文采有限、知识有限。所以还是以量变引起质变的方式来提升自己,多写多写多写。。。
之前做过差不多一年的Android面试官,这一篇就谈谈面试相关的。
1.个人觉得很重要的软知识
a.面试前多做准备,这个是必须的
b.不知道的不要瞎说,或者让面试官换个问题(切记这一点很重要)
c.对面试官保持应有的尊敬和适当的恭维,但是不要太过
d.要表现出对生活和工作充满激情,不要一副要死不活无所谓的样子
e.不要打断面试官的任何话,无论你是否觉得有用
2.一份简洁而明朗的简历
十要:
①. 明确的内容模块划分且每个模块内容精炼
②. 重点突出工作经历及项目经验
③. 用数字证明自己的能力
④. 格式整齐,段落有序
⑤. PDF 版
⑥. 明确写好在校及各公司的起始年限
⑦. 正确书写名词
⑧. 简历保持在两三页左右
⑨. 邮件标题及简单问候
⑩. 简历常更新,常删除
十不要:
①. 不要用任何招聘网站的模板、不要 Word 版
②. 不要随便用“精通”二字
③. 不要写关注、每日浏览 xx 公众号
④. 不要写任何国内培训经历、软件证书
⑤. 不要自我评价
⑥. 不要突出自己的软肋
⑦. 项目经验中不要写软件环境、硬件环境、开发工具之类的
⑧. 个人博客、GitHub 如果没有什么内容就别放太显眼位置了
⑨. 头像不用,实在貌美如花、形象气质均佳除外
⑩. 民族、政治面貌、线下联系地址一般情况都不用
3.几个用来装逼的面试题
*List<String> list = new ArrayList<String>( ),如何把 Activity 对象放进 list 集合里去?
由于泛型擦除,在运行时添加 Activity 对象
*runOnUiThread 、Handler.post、View.post 有什么区别?
runOnUiThread如果在主线程会直接执行;Handler.post将Runnable放到消息队列中去;View.post API24及之后版本需要View加到界面上,然后将Runnable放到消息队列中才会执行。
*Android 上为啥会有65536的限制,解释下原因
invoke-kind (调用各类方法)指令中,方法引用索引数是 16 位的,也就是最多调用 2^16 = 65536 个方法
*Android 是怎么解决65536的问题的?MultiDex在编译时做了什么?
需要在 gradle 中将 multiDexEnable 设为 true,将 application 继承 MultiDexApplication 或者在自己 application#attachBaseContext 调用 MultiDex.install。
1、执行完 MultiDexTransform 后会生成了一个在 mainDex 中出现的 classes 列表
2、执行 DexTransform 是将 mainDex 和其他 dex 的生成落实
*如何找出项目中存在的内存泄漏问题?
Leakcannary
*MultiDex在运行时做了什么?
*如何将已经上线的 App 某个 UI 界面实时刷新的帧率数据统计出来并上报?
*Art 、Davilk 虚拟机的区别
*如何统计 App 的启动时间?
*Android 为什么引入 Parcelable?
*使用 Handler.postDelay 做定时操作是否准确?
*AndroidManifest 的作用与理解
*BBinder 和 BPBinder 的具体含义和区别?
*在多进程中,Application 会启动几次?
*Gradle 中 buildToolsVersion 和 TargetSdkVersion 的区别是什么?
*Android 是如何进行资源管理的?
*Android中进程的级别,以及各自的区别
好吧,这些确实太装逼了
还是看这个吧:http://www.wanandroid.com/blog/show/2109
4.一些干货
满满的干货:http://www.wanandroid.com
学习相关:
链接:https://pan.baidu.com/s/1PmchSQbsoWTxkzdTQeADHQ 密码:u9qg
链接:https://pan.baidu.com/s/16SDKR6IZCVttSmwJNYZKWQ 密码:nnrb
链接:https://pan.baidu.com/s/1ciBTMLIqClHSXT5ma9v3Jw 密码:weqg