前言

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

......

因为本套笔记干货内容过多,没有方法一 一展现,须要这份残缺版面试题集的敌人能够点击这里收费获取!心愿这套笔记能够帮忙到大家,让大家在面试的路线上畅通无阻!

总结

大厂对计算机的基础知识的考查真的很深刻,前面想了想的确,计算机的根底把握可靠了,在接触新的常识真的很快,计算机方面的常识又是更新特地快的,须要一直的学习。