最新Android面试题集—答案+解析,助你直通大厂

前言

接触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.一个语言的编译过程

......

由于本套笔记干货内容过多,没有办法一 一展示,需要这份完整版面试题集的朋友可以点击这里免费获取!希望这套笔记可以帮助到大家,让大家在面试的道路上畅通无阻!

总结

大厂对计算机的基础知识的考察真的很深入,后面想了想确实,计算机的基础掌握牢靠了,在接触新的知识真的很快,计算机方面的知识又是更新特别快的,需要不断的学习。

你可能感兴趣的:(最新Android面试题集—答案+解析,助你直通大厂)