前言
接触 Android 曾经 3 年,在工作中遇到疑难问题总是在网上搜寻答案,各位大牛大神总是把本人的教训分享进去,帮忙咱们这些须要帮忙的人,由此示意衷心感谢!然而当初本人细想了一下,本人也是时候把遇到的问题并把解决方案分享进去,心愿能帮忙到有须要的人。
随着工夫的流逝,很多人说互联网这一块曾经越来越不好干了,因为烧钱时代曾经过来,剩下的都是根基牢固的大公司,独角兽曾经不复存在。这就间接导致了互联网岗位的降落,自己亲测,也的确如此。
2021.05 月,自己到职(此时 3 年工作教训,深圳就任),开始试水安卓市场,寻求一份适合本人,稳固的中大型公司。投了很多公司,面试机会并不是我设想中的那么多,即时面试过程顺利,也没有取得 offer(候选人太多太多)。不过借此机会,前前后后我面了 10 家公司,当初就把我遇到的面试题,并且提供一些面试技巧给各位行将面试的同志们。
一面(~45min)
- 介绍我的项目,讲述一下实习的工作内容和感想(~10min)
- 什么是内存透露,Android 里有哪些内存透露的场景,起因是什么
- JVM 的 GC 过程,GC 的算法都有哪些
- 过程和线程的概念,Android 里怎么实现多线程?(Thread Handler AsyncTask IntentService 等等)
- Handler 的原理和应用
- Handler 是怎么和线程绑定的(Looper),为什么 Looper.loop()要设计成死循环
- Java 的几种外部类,区别是什么
- Activity 的生命周期和启动模式
- 写题:二叉树的右视图(层序遍历即可)
- 一面比拟短,问的问题也比拟根底,大略 30 分钟后开始二面
二面(~1h30min)
- 自我介绍
- 介绍我的项目,为什么要自学安卓(~5min)
- Android 如何实现多过程,利用场景是什么(答的不好)
- Android 的 IPC 机制(Binder)是否理解(答的也不好)
- 如何用两个队列(FIFO)实现栈(FILO)
- HashMap 和 HashTable 区别,HashMap 原理和实现,hash()的算法
- 如果本人设计 hash 算 * 怎么设计,为什么(答的素数取余)
- String 的 hashCode()和 Object 的 hashCode()
- 虚拟内存和物理内存的概念和关系,内存分页的调度算法
- 怎么实现 LRU 缓存(参考 leetcode T146)
- 能够本人写一个 java.lang.Object 类吗,零碎会加载哪一个
- Java 里泛型的实现
- 理解常见排序算法吗,手写一下快排
- Java 里加锁的形式,synchornized 关键字的原理,乐观锁和乐观锁都有哪些实现
- 死锁的条件和解决办法,讲讲银行家算法
- TCP 的三次握手四次挥手,为什么要四次挥手
- TCP 的流量控制算法(滑动窗口),拥塞控制算法
- 怎么解决用户高频点击关上新 Activity 导致的多实例问题(Activity 启动模式)
- 怎么判断两个无环单链表是否相交
反诘
二面问题量十分的大,集中在 Java/OS/ 算法,但并没有特地难以答复的问题,认真筹备的话大部分都能答出来。面试官也十分敌对,给了很多疏导和提醒。
因为三面面试官的工夫问题,约了两天后的三面
三面(~45min)
- 自我介绍
- 介绍一下实习做的工作,是本人实现的吗,遇到什么艰难,成绩怎么样
- RecyclerView 怎么实现的 item 缓存,跟 ListView 有什么区别(因为我的项目用到了所以被问了)
设计题:微信的联系人列表性能
(1)设计增加联系人的 API(从可能的形式,数据模式,接口参数方面答复)
(2)怎么实现联系人列表的 UI(答的 RecyclerView)
(3)怎么实现 A - Z 首字母的疾速定位性能
是自学的 Android 吗,为什么抉择这个方向,有没有什么教训给同样想自学的学弟学妹
是哪里人,为什么想到上海来待业
反诘
三面的问题不多,不过因为少数问题没有标准答案,难度其实高于一二面
刷过的面试题:
笔记内容全副收费分享,有须要残缺版面试题集的小伙伴能够点击这里收费获取!
Java 根底
1. 动态外部类和非动态外部类的比拟
2. 多态的了解与利用
3.java 办法的多态性了解
4.java 中接口和继承的区别
5. 线程池的益处,详解,单例(相对好记)
6. 线程池的长处及其原理
7. 线程池的长处(重点)
8. 为什么不举荐通过 Executors 间接创立线程池
9. 不怕难之 BlockingQueue 及其实现
Android 根底
1.Activity 知识点(必问)
2.Fragment 知识点
3.Service 知识点
4.Intent 知识点
性能优化篇
1. 启动优化
2. 内存优化
3. 绘制优化
4. 安装包优化
源码流程篇
1. 开源库源码剖析
2.Glide 源码剖析
3.Android 面试题:Glide
4.day 20 面试题:Glide 面试题
5. 聊一聊对于 Glide 在面试中的那些事
6. 面试官:简历上如果写 Glide,请留神以下几点 …
7.Glide OOM 问题解决办法汇总
8.OkHttp 源码解析
9.okhttp 连接池复用机制
10.okhttp 流程和优化的实现
11. 一篇让你受用的 okhttp 剖析
12.OkHttp 面试之 –OkHttp 的整个异步申请流
……
最新面试题合集
1.android 事件散发机制,请具体说下整个流程
2.android view 绘制机制和加载过程,请具体说下整个流程
3.android 四大组件的加载过程,请具体介绍下
4.Activity 的启动模式
5.A、B、C、D 别离是四种 Activity 的启动模式,那么 A ->B->C->D->A->B->C->D 别离启动,最初的 activity 栈是怎么样的
6.Activity 缓存办法
7.Service 的生命周期,两种启动办法,有什么区别
8. 怎么保障 service 不被杀死
9. 动态的 Broadcast 和动静的有什么区别
10.Intent 能够传递哪些数据类型
11.Json 有什么优劣势、解析的原理
12. 一个语言的编译过程
……
因为本套笔记干货内容过多,没有方法一 一展现,须要这份残缺版面试题集的敌人能够点击这里收费获取!心愿这套笔记能够帮忙到大家,让大家在面试的路线上畅通无阻!
总结
大厂对计算机的基础知识的考查真的很深刻,前面想了想的确,计算机的根底把握可靠了,在接触新的常识真的很快,计算机方面的常识又是更新特地快的,须要一直的学习。