前言
接触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.一个语言的编译过程
......
因为本套笔记干货内容过多,没有方法一 一展现,须要这份残缺版面试题集的敌人能够点击这里收费获取!心愿这套笔记能够帮忙到大家,让大家在面试的路线上畅通无阻!
总结
大厂对计算机的基础知识的考查真的很深刻,前面想了想的确,计算机的根底把握可靠了,在接触新的常识真的很快,计算机方面的常识又是更新特地快的,须要一直的学习。