前言
大厂面试一直是我们程序员小伙伴茶余饭后所津津乐道的话题。能进一线互联网大厂工作,也是每个程序员生涯的梦想,为的不仅仅是大厂的种种福利、工作环境和高薪,更为的是大厂的工作氛围,能加入到大牛的圈子,能跟众多大牛一起交流学习,对技术的提升进阶,也为了从大厂出来后的工作履历,可以给日后的生涯走向提供更多的选择。
可是那么多人都想进大厂,在如此残酷的竞争环境下,怎样才能让自己脱颖而出呢?那便只有不断提高自己的核心竞争力。面试一定要有充分的准备。
一面
(1h)
- 自我介绍
- -自定义View和ViewGroup
(说一下自己定义的组件就行) - new 对象的过程
- 类加载过程
- ClassLoader源码
- final关键字
- 匿名内部类
- 讲下垃圾回收算法
- LinkedList && ArrayList
- hashMap
- 常用注解,spring中的注解
- 锁,synchronized底层原理
- 浏览器输入地址后的过程
- 状态码 303 304
- 你知道的设计模式
- 单例模式 说了双重校验锁,静态内部类 ,不同场景下如何选择
- 双重校验锁为什么要两次判空
- volatile,指令重排
- 如何分析ANR
二面:
(45min~1h) - kHttp原理?
- Retrofit原理?为何用代理?代理的作用是什么?
- ButterKnife原理?用到反射吗?为什么?
- ANR异常如何查找并分析?
- JVM内存模型?性能调优?
- 垃圾搜集算法有哪些?G1算法?
- https && http的区别
- CP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
- 内存优化如何做?CP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
- 内存优化如何做?
- 看过那些源码?
- 会对代码进行review吗?何时review?怎么review?
- 会对代码进行review吗?何时review?怎么review?
- 项目中遇到的让你棘手的问题?多久解决,怎么解决?
(考的是你发现问题和解决问题的个人能力) - 在公司工作中如何学习?何时学习?怎么学习?学习渠道?
(考的是个人的学习能力)三面:
(20~30min) - 前几次面试感觉如何?
- 你现在的APP日活是多少?
- 你现在如何处理崩溃日志?
- 你觉得小团队好还是大团队好?(这个问题不能直接回答好和不好,不然掉坑里了)
- 你的优点和缺点说下?
- 你的发展方向说下?是先讲究宽度还是讲究深度,为什么?
#美团##美团面试##Android#