2021 春招通关 BAT 最新 Android 常用面试真题

风斗 等级 366 0 0

前言

金三银四招聘旺季已经开启,如果有面试准备的,临阵磨枪,不快也光。 如果没面试想法的,也可以看看这些问题以及它们的解析,对提升技术也是很有帮助的。

内容涵盖五大部分:Java基础部分、Android部分、数据结构与算法部分、常用的开源库部分、计算机网络认识部分。

Java基础部分

内容主要包括操作系统相关、 JDK&JVM&JRE、面向过程 & 面向对象、八大基本数据类型&引用类型、数组、Java异常、NIO/BIO/AIO、集合(容器)、线程、 泛型、反射、注解、Socket编程、设计模式、JVM相关等。

1.JDK & JVM & JRE分别是什么以及它们的区别?
2.给我说说Java面向对象的特征以及讲讲你代码中凸显这些特征的经验。
3.Java中HashMap如何解决哈希碰撞的。
4.静态属性和静态方法能被继承吗?静态方法又是否能被重写呢?
5.volatile关键字是如何使用的?原理是什么?
6.知道float和double类型为什么会出现精度丢失的情况吗?
7.你对数组二次封装过吗?说说封装了什么
8.return在try{}catch{}finally{}中执行具有哪些规则?
9.try{}catch{}finally{}可以没有finally吗?
10.能给我说说NIO有什么特点?平常开发中使用过吗?
11.Map的遍历方式有哪些?
12.你觉得HashMap的元素顺序和什么有关?
13.说说有哪些集合能加入null,哪些不能加入null,为什么?
14.你觉得Lock和Synchronized的区别是什么?
15.Synchronized放在静态方法和非静态方法上的锁对象分别是什么?

Android部分

内容主要包括四大组件相关、Handler、AsyncTask、Fragment、序列化、IPC、文件储存、ListView & RecyclerView、图片编程、WebView、ViewPager、View事件分发机制、View绘制机制、布局、Binder、动画机制、JNI、Window & Appliction & Context等。

1.从Activity A跳转到Activity B之后,然后再点击back建之后,它们的生命周期调用流程是什么?
2.如何在任意位置关掉应用所有Activity & 如何在任意位置关掉指定的Activity?
3.a->b->c界面,其中b是SingleInstance的,那么c界面点back返回a界面,为什么?
4.有两个应用注册了一样的广播,一个是静态,一个是动态,连优先级也一样,那么当广播从系统发出来后,哪个应用先接收到广播?
5.ContentProvider,ContentResolver,ContentObserver之间的关系?
6.创建一个独立进程的Service应该怎样做?
7.在Activtiy中创建一个Thread和在一个Service中创建一个Thread的区别?
8.Handler导致的内存泄露你是如何解决的?
9.一个线程能否创建多个Handler,Handler和Looper之间的对应关系?
11.Looper死循环为什么不会导致应用卡死?
12.Message对象创建的方式有哪些 & 区别?
13.给我说说AsyncTask的原理
14.ViewPager + Fragment结合使用会出现内存泄漏吗 & 如何解决?
15.Fragment如何实现类似Activity栈的压栈和出栈效果的?

数据结构与算法部分

主要内容包括复杂度分析、数组、链表、堆、栈、队列、散列表、树、排序、查找、递归&回溯算法、贪心算法、其它有关算法与数据结构等。

1.什么是时间复杂度 & 什么是空间复杂度?
2.时间复杂度和空间复杂度之间存在什么联系?
3.谈谈你对数组的理解。
4.数组和其它数据结构进行对比 & 使用场景。
5.反转一个链表有哪些方式?
6.如何判断链表有环?
7.用Java语言设计一个LinkedList。
8.什么是栈 & 栈的特点是什么?
9.什么是顺序栈 & 链式栈?
10.你有没有基于栈封装的业务类?
11.你能用栈实现队列吗?
12.如何实现浏览器前进和后退功能?
13.什么是队列 & 队列的特点是什么?
14.什么是优先队列?
15.什么是双端队列 & 阻塞队列?
16.你能用队列实现栈吗?
17.什么是红黑树?
......

2021 春招通关 BAT 最新 Android 常用面试真题

数据结构与算法面试题

Android常用的开源库部分

内容主要包括异步通信、网络、依赖注入、图片加载、数据库等。

1.RxJava用法 & RxJava2用法 & 原理 &用到的设计模式?
2.EventBus用法 & 原理。
3.OkHttp用法 & 源码分析。
4.Retrofit用法 & 源码分析。
5.Volley用法 & 缺点。
6.ButterKnife用法 & 原理。
7.Dagger2用法 & 原理。
8.Glide用法 & 原理。
9.Picasso用法 & 原理。
10.Fresco用法 & 原理。
11.分享你觉得比较好用的开源库。
12.自己有封装库吗?给我说说你是如何设计的?
13.你是如何设计一个网络请求框架的?

收藏
评论区

相关推荐

Android Handler消息机制源码解析
好记性不如烂笔头,今天来分析一下Handler的源码实现 Handler机制是Android系统的基础,是多线程之间切换的基础。下面我们分析一下Handler的源码实现。 Handler消息机制有4个类合作完成,分别是Handler,MessageQueue,Looper,Message Handler : 获取消息,发送消息,以及处理消息的类 Mes
Android HandlerThread源码解析
在上一章Handler源码解析文章中,我们知道App的主线程通过Handler机制完成了一个线程的消息循环。那么我们自己也可以新建一个线程,在线程里面创建一个Looper,完成消息循环,可以做一些定时的任务或者写日志的功能。这就是HandlerThread的作用 Android Handler消息机制源码解析(https://www.cnblogs.co
Android面试回忆录:Serializable 都这么牛逼了,还要Parcelable有何用?
话说最近公司在招聘一批至少 5 年开发经验的 Android 开发工程师,我也是忙开了花,激动得不行呀。虽说我面试过的技术开发至少 50 人以上,但这还是第一次开始面试 Android,此时犹如大姑娘上轿,还真是头一回呀! 所以非常非常非常用心地准备了良久,然后满怀激动地开始了我的 Android 面试官角色。 无奈,面试后的感觉,均是开发效率听起来很牛
还怕问源码?Github上神级Android三方源码解析手册,已有7.6 KStar
或许对于许多Android开发者来说,所谓的Android工程师的工作“不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上”就好了,源码什么的,看也好不看也罢,反正应用层的开发用不上,再加上现在优秀的轮子越来越多,拿来主义泛滥,能用就是,反正老板也不关心是不是你自己写的,用我现在老大的话来说,阅读源码似乎只是一种“锦上添花”
Android开发你必须了解的几个原理
随着互联网的迅速发展,Android技术也是发生很大的变化,要求也是越来高了,在11,12年只要会基本的Android组件,会listview,分享就感觉很牛了,智能手机的发展,及用户普通追求高效率,用户体验的提升,要求开发人员必须会懂实现原理及优化APP程序;不管是面试他人还是被面试目前都经常问到原理性的问题,handler实现原理,activity启动原
AT大牛带你深度剖析Android 10大开源框架
做了几年的Android开发,也面试过不少公司,被面试过,也面试过不少人,其实Android的技术真的是无边界,不管你做过多牛的项目,不管你多久的经验在Android开发中不可能是停滞不前的,需要不断的学习及总结,否则难以解公关技术问题,下面把我压箱底的视频资料贡献给大家; 一,android视频教程 Android视频教程: 1,Android入门
【前端100问】Q68:如何解决移动端 Retina 屏 1px 像素问题
写在前面 此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我(https://links.jianshu.com/go?tohttps%3A%2F%2Fgithub.com%2Fyygmind%2Fblog%2Fissues%2F43) 为了备战 2021 春招 每天一题,督促自己 从多方面多角度总结答案,丰富知
Android开发 常见异常和解决办法(一)
Android Studio是Android开发的理想工具,但是由于版本的更新和配置的差异,会出现很多问题,下面是以《第一行代码 第二版》为基础进行开发学习可能遇见的一些问题及其解决办法。 1.Android Studio 3.0及以上版本找不到Android Device Monitor: 解决办法: (1)在Android Studio中打开终端,如下
Android 自学必备网站
一,Android 自学网站给 Android 自学者朋友推荐几个自学网站:1. Android Developers作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。网站:https://developer.android.com/2. Android专业中文社区Android专业
Android 面试官精心整理:"五年面试经验
作者:面试官首先呢!做为一个面试官,这几年面过的中高级 Android 开发工程师已经突破了上百人,Failed 的不敢说,但是 Pass 掉的基本是没有看走眼的;眼看年后春招即将来袭,特此赶在年轻整理完毕,谈谈我对 Android 中高级面试的一些看法和体会。 如果,你有更好的看法,希望能在评论区留言,我们一起讨论。一般来说,大部分面试官在面
2021 春招通关 BAT 最新 Android 常用面试真题
前言金三银四招聘旺季已经开启,如果有面试准备的,临阵磨枪,不快也光。如果没面试想法的,也可以看看这些问题以及它们的解析,对提升技术也是很有帮助的。内容涵盖五大部分:Java基础部分、Android部分、数据结构与算法部分、常用的开源库部分、计算机网络认识部分。 Java基础部分内容主要包括操作系统相关、 JDK&JVM&JRE、面向
2021年春招Android面试题,详细解说
来,发车了!1. 战略定位:Android面试都会问些什么?要打败敌人首先需要摸清敌人。Android面试有它固有的套路。一般大厂的面试包括 技术面 3 + HR面 1。技术面中一面考察基础知识,这一面相对容易,只要你把我下面给出的武林秘籍背熟就易如反掌。这一面大约占40%;二面侧重项目经历/应对问题能力,这一面要求普遍较高,需要学会应用知识,更注重于优
全靠这份Android知识点PDF大全,月薪30K
第一阶段:Android 基础知识回顾: 回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理; 回顾Java,C/C++,Kotlin、dart 在Android开发中必用的语言,熟悉一下几种语言混淆后的特性; 回顾Android IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结
2021最新Android知识体系总结,真香
作为安卓开发者,除了Bug,经常会碰到下面这些问题: 应用卡顿,丢帧,屏幕画面撕裂,操作界面刷新缓慢,UI不美观,布局混乱…这些问题频发的话,年后可能就不用来了。 开发App的时候,你是否会觉得界面卡顿?尤其是自定义View的时候。 Android 应用的卡顿、丢帧等,这些影响用户体验的因素绝大部分都与 16ms 这个值有关。Android 设备的刷新率也是
阿里官方推荐:有了这些中高端面试专题-大厂还会远吗
大佬带你走进Android开发的世界,掌握了这些知识点,学习Android也可以很轻松。 核心分析内容对于怎么学习Android,主要解决的是3个问题:学什么、怎么学 & 怎么用。具体如下:下面,我将带着上述几个问题,详细讲解自身学习Android的方法和Android学习路径;最后,还会结合前面内容,给出综合的具体执行学习Android的建议。 面经分享