共计 2842 个字符,预计需要花费 8 分钟才能阅读完成。
前言
自己 2016 年毕业,目前从事 Android 开发工作曾经 3 年啦。
就是尘世间一个迷途小开发,二流程序员,居身于小城市,最终也是思考到发展前景的局限性,趁着本人还年老,于是决然 裸辞 ,用一个月工夫 面试 + 温习 + 总结 ,最终拿到了 抖音 Android 面经,胜利斩获 offe,将本人的面试教训分享给大家,心愿对大家有所帮忙。
面试分享:
一面:
1.activity 和 service 怎么通信
2. 因为扯到了跨过程通信,就让我说一下安卓上有什么跨过程的通信形式
3. 说到了管道,让我说一下在 Android 的时候会用到管道吗
4.Java 两个整型相加怎么晓得有没有溢出
5.Java 怎么进行线程
6. 如果有 4 个线程同步开始,其中第 4 个线程要等后面三个线程执行完进行些统计操作,要怎么操作呢。
7. 如果不通过应用 Java 的并发包的现成类库来实现一个 CountDownLatch,怎么实现?
8. 那么应用你这个 CountDownLatch 的这 3 + 1 个线程,一共须要几个锁呢?
9. 晓得大顶堆和小顶堆吗,一个数组建堆,工夫复杂度是多少呢?
10. 在堆中找指定的一个元素复杂度是多少?
11. 看你简历上也有写网络方面的常识,https 的过程说一下
二面:
1.Unicode 和 ASCII 的区别
2.Unicode 有哪些品种?Java 是哪种?
3.json 这种格局晓得吗,是怎么的,有什么用?
4. 序列化除了 json 还有什么能够应用?
5. 说说 Android 上的序列化?
6.Java 的 serializable 有个 Id,你晓得是有啥用的吗?
7. 深拷贝浅拷贝说说?
8.Object 的 hashcode()用来干嘛,怎么本人实现 hashcode?
9.JNI 讲讲?
10. 一个 a 包里的 B 类的 c 办法,cpp 代码中的办法肯定要 a_B_c()这样吗
11.Java 的泛型讲讲,有啥用?咋实现的
12. 在什么状况下能够在运行时获取泛型参
13. 上界通配符和下界通配符讲讲
14. 两个办法,一个办法的参数是泛型的,一个参数是失常的类(如 String),会怎么样
15. 输出网址到返回 ip 的过程】
16. 假如你你缓存的 ip 地址过期了,怎么办
17. 你认为 DNS 机制是怎么解决这个问题的,你能够尝试参考 http 的缓存机制想想
18. 播送有几种,有序和粘性讲讲
19. 注册播送的形式,你感觉动态注册播送这个是什么时候执行的呢
20. 本地播送
21. 线程过程区别
22. 讲到内存资源,线程有什么数据是公有的
23. 算法:二叉树的右视图
24. 算法:两个栈实现队列
25. 讲讲工作我的项目遇到的问题
26. 有什么想问我的:
三面:
- 自我介绍
- 内核态用户态的区别
- 用户态能够拜访内核态的内存吗,你说的一些有危险的指令,具体是怎么阻止用户态程序去执行有危险的指令的
- 既然用户态不能够拜访内核态的内存,那么在做一些比方网络连接的操作的时候必定须要内核态内存,用户态程序怎么做到应用内核态内存的
- 说到跨过程通信形式,你晓得有什么跨过程通信形式吗?
- 你说到的共享内存,管道,音讯队列,binder 他们之间有什么区别吗?
- 你说到播送、内容提供器也有应用 binder 与 AMS 通信,那他们与 binder 之间有什么区别吗(播送、内容提供器的本质是不是就是 binder)?
- 为什么要写这样一个测速的程序?
- 两个 Activity,一个显示商品列表,一个实现商品详情页,在商品详情页点了关注之后,怎么使得返回商品列表之后也更新了关注状态呢?
- 你说的公布订阅模式,你晓得有什么框架应用了这个设计模式吗?
- 如果两个 Activity 数据量比拟大呢,要更新相当多的货色呢?
- 你把 model 设置为单例的话,那这个列表一直下滑,加载更多内容,最初导致占用相当多的内存怎么办?liveData、ViewModel 你能够理解下 **
- 算法题:www.toutiao.cn 转成 cn.toutiao.www
- 有什么想问我的?(在头条工作的体验?这个你能够问 hr)
四面:
- 你是哪里人?为什么抉择投上海的岗位?除了上海,还有什么动向的城市吗?为什么不喜爱北京?上海也是这样啊?
- 问业余。与程序相干的课程有多少?有学计算机组成原理、计算机网络吗?
- 除了看书以外学习路径?你在安卓的群上个别探讨什么货色?印象粗浅的是什么?
- 你这个在 wifi 的部门不是专门做安卓的吧?有没有安卓方面导师?都是靠你本人摸索的吗?我的项目有几个人在负责,都是你在负责吗?
- 因为什么而接触安卓?你在这个团队里负责什么角色?奉献了多少代码比方有多少页面是你写的?
- 有没有什么社团之类的让你接触安卓?
有什么想问我的?
HR 面:
- 你认为你后面的面试体现怎么样?
- 你感觉抖音(还是字节跳动来着)怎么样?
- 你提到技术驱动型,你认为怎么样才是技术驱动型公司?
- 你提到你是抖音的用户,然而应用频率不高,是因为什么,因为抖音的内容品质不好吗?
- 你提到抖音是音视频相干,你对音视频开发是比拟感兴趣吗?
- 之前工作中有没有遇到什么较大的问题?这个问题是什么起因有没有探索?
- 工作期间有没有遇到什么比拟大的挫折?
- 如果通过了面试,你什么时候能够过去下班?
总结:上海抖音经验 4 面技术面 + hr 面。10.25 发的意向书
简历的制作
- 简历的作用是展现本人的亮点给面试官,让面试官能够在短时间内迅速理解咱们。
- 简历肯定要把本人的亮点写上去,展现本人的能力。说人话就是:通知面试官本人有多牛叉,这不是体现咱们虚心的时候。不论是我的项目亮点、还是集体技能,都统统写上去。
- 技能点形容要精准,不要含糊。
- 写上简历的内容肯定要是本人把握的内容。
例如:
面试倡议
1. 有急躁且被动
面试不要焦急着去问后果,个别在 hr 面的时候,她的态度多少可能猜个七七八八的,如果等上一周还没有告诉,那就能够被动去问了。
2. 刷题是为了晋升本人的运气
运气在面试过程中是十分重要的,刷题的目标很简略,除了坚固咱们所把握的,另一个就是为了能进步在面试中咱们的运气,如果可能问到一样的题是再好不过了,当然这个方法是实用于职级中低岗位。
3. 把握根底,留神深度
大厂面试最喜爱问两类问题,一类是根底,另一类就是深度。根底局部,无非就是咱们所把握的技术根底内容,基本上只有是有筹备的都没有太大的问题。另一部分就是深度问题,大多波及到本人之前的工作、我的项目,面试官所问的问题不仅仅是停留在外表那么简略,背地的原理是什么才是面试官想要问的。
4. 刷面试题
因为文章篇幅无限,文档资料内容较多,本能够提供链接下载,但无奈容易被谐和,所以全副存档,须要这些文档这里的敌人,能够点击我的【Gitee】,心愿可能共同进步,共勉!
最初
这也我在工作、面试中学习并总结到的一些知识点,都是一些比拟典型的、常被问到的问题。如果你平时没有留神去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你晓得怎么回事,然而你平时没有认真总结,你也可能会呈现逻辑凌乱的状况,从而错失工作机会。
其实 Android 开发的知识点就那么多,面试问来问去还是那么点货色。所以面试没有其余的窍门,只看你对这些知识点筹备的充沛水平。so,进来面试时先看看本人温习到了哪个阶段就好。