2020年度 Android面试知识点总结(持续更新)

博主是一个渣渣末流二本,非科班出身,半路出家的学渣,专业成绩一般,2020年4月末才开始投简历,相继投了一百多份简历,愿意给面试机会的寥寥无几,连十几家国企都没有给俺一个机会,怀疑被列入黑名单了(开玩笑),面试也吃了很多亏,众多大厂中,只有多益给了面试的机会,最后拿到了offer,然而......它的风评实在是让我望而止步。

深刻地意识到自己是个five,所以决定写一篇博客来记录面试可能遇到的问题和知识点,还不是很全面,但是会持续更新,觉得有帮助的话就点赞 收藏吧,共勉!

准备:

  • 刷题:牛客网,LeetCode
  • 简历(牛客有模板)
  • 招聘平台:智联,拉勾,Boss直聘,前程无忧,脉脉、招聘公众号 等等(疫情期间变成了失联招聘、拉钩上吊、Boss直拒,前程堪忧,20年春招深有体会o(╥﹏╥)o)
  • 查公司:职友集、职Q、看准(推荐用手机App)、知乎、天眼查、百度信用 等等(看准App是个避坑神器)

Android:

四大组件

面试问题:

https://github.com/Ellen2018/AndroidFaceInterview/blob/master/Android%E9%83%A8%E5%88%86%E7%AD%94%E6%A1%88/Android%E9%83%A8%E5%88%86-1%20Activity%E7%AD%94%E6%A1%88.md

面试问题:

https://github.com/Ellen2018/AndroidFaceInterview/blob/master/Android%E9%83%A8%E5%88%86%E7%AD%94%E6%A1%88/Android%E9%83%A8%E5%88%86-4%20Service.md

使用详解:

https://www.jianshu.com/p/f348f6d7fe59

IntentService:

https://blog.csdn.net/ClAndEllen/article/details/79346624

Service保活:

https://www.cnblogs.com/blosaa/p/9530625.html

后台应用保活,消息推送:

https://www.jianshu.com/p/55ebdfb91272

第五大组件Fragment

Activity和Fragment各种情况下的生命周期

https://blog.csdn.net/Nobody_else_/article/details/105432449

Android各版本的改动和不同:

ListView

RecycleView

自定义View

https://www.jianshu.com/p/e9d8420b1b9c

Gson

https://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html

为什么尽量不用全局静态变量作为数据载体在Activity之间传输

Activity通信数据量大应该使用什么方案(避免Itent传大量数据

弹出对话框或者浮层为何使用DialogFragment,而非Dialog/AlertDialog(便于生命周期的管理

不要在Application中存储数据(如Activity被杀死再重构会导致数据丢失

getExternalCacheDir与getCacheDir的区别

https://blog.csdn.net/carsonwoo/article/details/89142756

Android的多进程的问题

1)不能实现完全退出所有Activity的功能;

2)首次进入新启动进程的页面时会有延时的现象(有可能黑屏、白屏几秒);

3)应用内多进程时,Application实例化多次,需要考虑各个模块是否都需要在所有进程中初始化;

4)多进程间通过SharedPreferences共享数据时不稳定。

多进程下的SharedPreferences

https://juejin.im/entry/590833711b69e60058eb34b9

为什么尽量不要用AnimationDrawable

初始化的时候就将所有图片加载到内存中,特别占内存并且还不能释放,释放之后下次进入再次加载时会报错。

Glide的缓存机制

PendingIntent

在不怎么降低视觉效果的前提下减少内存占用

同时播放多个gif需要注意什么,单个gif图片大小有什么限制

刷新某一区域的组件,如何避免引发全局layout的刷新

1)设置固定的view大小的高宽,如倒计时组件等;

2)调用view的layout方式修改位置,如弹幕组件等;

3)通过修改canvas位置并且调用invalidate(int l, int t, int r, int b)等方式限定刷新 区域;

4)通过设置一个是否允许requestLayout的变量,然后重写控件的requestlayout、onSizeChanged方法,判断控件的大小没有改变的情况下,当进入requestLayout的时候,直接返回而不调用super的requestLayout方法。

ARGB_565和ARGB_888

UI布局

为什么ViewGroup多重嵌套时,使用RelativeLayout比LinearLayout更好?(有效降低嵌套数

dp、dx、dip等等的布局参数单位区别

各种手机屏幕的适配

设计布局时多次设置子view和父view中为同样的背景有什么问题(造成页面过度绘制

为什么不能使用ScrollView包裹ListView/GridView/ExpandableListVIew

因为这样会把ListView的所有Item都加载到内存中,要消耗巨大的内存和cpu去绘制图面。说明:ScrollView中嵌套List或RecyclerView的做法官方明确禁止。除了开发过程中遇到的各种视觉和交互问题,这种做法对性能也有较大损耗。ListView等UI组件自身有垂直滚动功能,也没有必要在嵌套一层ScrollView。目前为了较好的UI体验,更贴近Material Design的设计,推荐使用NestedScrollView。

Java:

Java的优缺点:

百度即可

面向对象的三大特征:封装、继承、多态

https://blog.csdn.net/qq_43304572/article/details/82949989

List、Map和Set的区别,以及它们的使用场景

https://blog.csdn.net/Nobody_else_/article/details/105658244

操作系统是什么?

百度即可

什么是进程?什么是线程?二者的区别

https://blog.csdn.net/Nobody_else_/article/details/99723149

Java各种变量的不同,各种数据类型的默认值

https://blog.csdn.net/Nobody_else_/article/details/97510865

哈希冲突

HashMap的时间复杂度

https://blog.csdn.net/donggua3694857/article/details/64127131/

泛型

https://www.zhihu.com/question/272185241

对象和类的生命周期

https://blog.csdn.net/qq_25005909/article/details/78981512

GC的原理

https://www.cnblogs.com/yy3b2007com/p/10975870.html

音频

视频

设计模式:

单例模式

https://blog.csdn.net/Nobody_else_/article/details/97619462

饿汉模式和懒汉模式

https://blog.csdn.net/Nobody_else_/article/details/97619462


数据结构:

链表与数组的主要区别

https://www.cnblogs.com/wzb0228/p/11670436.html

堆和栈的区别

如何判断链表有环

https://blog.csdn.net/u010983881/article/details/78896293

各种数据类型存储在栈内还是堆内

算法:

  • 剑指offer:

https://www.nowcoder.com/ta/coding-interviews

  • LeetCode:

https://leetcode-cn.com/

时间复杂度和空间复杂度的计算和判断

堆排序算法

https://blog.csdn.net/u010452388/article/details/81283998

二叉树第K层节点的遍历

https://blog.csdn.net/jcm666666/article/details/52554579

栈的最大值

https://blog.csdn.net/taotaotheripper/article/details/8652665

反转链表

https://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca

2维平面n个点,一条直线最多通过多少个点

https://blog.csdn.net/zy854816286/article/details/104874415

比较两个版本号大小

https://blog.csdn.net/admans/article/details/81865652

1到n的所有排列

https://blog.csdn.net/qq_38800127/article/details/90273176

排序算法的稳定性和意义

https://blog.csdn.net/serena_0916/article/details/53893070

递归的缺点

计算机网络基础:

HTTP和HTTPS有什么不同

https://blog.csdn.net/xiaoming100001/article/details/81109617

传输层tcp协议如何保证可靠传输

https://blog.csdn.net/liuchenxia8/article/details/80428157

猜你喜欢

转载自blog.csdn.net/Nobody_else_/article/details/106041925