面试 90% 会问到的 1080+Android 面试题汇总(含答案解析)

前言

学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次可以学习和进步的机会。所以,没有撤退可言。

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!

即使是寻找新的工作机会,面试过程本身也是一种学习。全面复习相关知识,让自己在面试中表现得更加出色,从而为未来的职业道路铺平道路。

一场完整的 面试,考察的不仅仅是技术实力,还包括面试者的软实力。很多时候,虽然你的技术水平已经达到要求,但面试却总是失败。原因通常有两个:

  1. 面试前的准备工作不足
  2. 面试过程中,没有真正理解面试官问题的意图,导致回答无法切中要点。如果面试时出现这种情况,那就是因为缺乏基本的面试能力。

在今年的面试中,其实主要涉及到的知识点有:JVM、多线程、数据库、微服务、分布式、消息中间件、源码等。今天,我为大家整理了一套面试突击宝典!

除了上述提到的知识点,这套宝典还包含了来自阿里巴巴、蚂蚁金服、字节跳动、拼多多、京东、滴滴、腾讯等知名大厂的真实面试经历,以及自我总结和反思。希望这套宝典能帮助大家更好地备战面试,提高自己的面试能力和技巧。

试能力和技巧。

一.Java 相关

  • ArrayList 和 Vector 的区别

  • 说说 ArrayList,Vector, LinkedList 的存储性能和特性

  • 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?

  • hashmap 的数据结构

  • HashMap 的工作原理是什么?

  • Hashmap 什么时候进行扩容呢?

  • List、Map、Set 三个接口,存取元素时,各有什么特点?

  • Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别?

  • 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?

  • heap 和 stack 有什么区别。

  • Java 集合类框架的基本接口有哪些?

  • HashSet 和 TreeSet 有什么区别?

  • HashSet 的底层实现是什么?

  • LinkedHashMap 的实现原理?

  • 为什么集合类没有实现 Cloneable 和 Serializable 接口?

  • 什么是迭代器 (Iterator)?

  • Iterator 和 ListIterator 的区别是什么?

  • 数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不是 ArrayList?

  • Java 集合类框架的最佳实践有哪些?

  • Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()?它们有何区别?

二. Android面试相关

1.Activity
            ● 说下Activity生命周期

            ● Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢

            ● 说下onSaveInstanceState()方法的作用 ? 何时会被调用?

            ● Activity的启动流程

            ● onSaveInstanceState(),onRestoreInstanceState的掉用时机

            ● activity的启动模式和使用场景

            ● Activity A跳转Activity B,再按返回键,生命周期执行的顺序

            ● 横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

            ● onStart 和 onResume、onPause 和 onStop 的区别

            ● Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案

            ● Activity的onNewIntent()方法什么时候会执行

            ● 显示启动和隐式启动

            ● scheme使用场景,协议格式,如何使用

            ● ANR 的四种场景

            ● onCreate和onRestoreInstance方法中恢复数据时的区别

            ● activty间传递数据的方式

            ● 跨App启动Activity的方式,注意事项

            ● Activity任务栈是什么

            ● 有哪些Activity常用的标记位Flags

            ● Activity的数据是怎么保存的,进程被Kill后,保存的数据怎么恢复的
2.ContentProvider
            ● 什么是ContentProvider及其使用

            ● ContentProvider的权限管理

            ● ContentProvider,ContentResolver,ContentObserver之间的关系

            ● ContentProvider的实现原理

            ● ContentProvider的优点

            ● Uri 是什么
3.Handler
            ● Handler的实现原理

            ● 子线程中能不能直接new一个Handler,为什么主线程可以主线程的Looper第一次调用loop方法,什么时候,哪个类

            ● Handler导致的内存泄露原因及其解决方案

            ● 一个线程可以有几个Handler,几个Looper,几个MessageQueue对象

            ● Message对象创建的方式有哪些 & 区别?

            ● Message.obtain()怎么维护消息池的Handler 有哪些发送消息的方法

            ● Handler的post与sendMessage的区别和应用场景

            ● handler postDealy后消息队列有什么变化,假设先 postDelay 10s, 再postDelay 1s, 怎么处理这2条消息

            ● MessageQueue是什么数据结构

            ● Handler怎么做到的一个线程对应一个Looper,如何保证只有一个MessageQueue ThreadLocal在Handler机制中的作用

            ● HandlerThread是什么 & 好处 &原理 & 使用场景

            ● IdleHandler及其使用场景

            ● 消息屏障,同步屏障机制

            ● 子线程能不能更新UI

            ● 为什么Android系统不建议子线程访问UI

            ● Android中为什么主线程不会因为Looper.loop()里的死循环卡死

            ● MessageQueue#next 在没有消息的时候会阻塞,如何恢复?

            ● Handler消息机制中,一个looper是如何区分多个Handler的

            ● 当Activity有多个Handler的时候,怎么样区分当前消息由哪个Handler处理

            ● 处理message的时候怎么知道是去哪个callback处理的

            ● Looper.quit/quitSafely的区别

            ● 通过Handler如何实现线程的切换

            ● Handler 如何与 Looper 关联的

            ● Looper 如何与 Thread 关联的

            ● Looper.loop()源码

            ● MessageQueue的enqueueMessage()方法如何进行线程同步的

            ● MessageQueue的next()方法内部原理

            ● 子线程中是否可以用MainLooper去创建Handler,Looper和Handler是否一定处于一个线程

            ● ANR和Handler的联系
4.View绘制
            ● View绘制流程

            ● MeasureSpec是什么

            ● 子View创建MeasureSpec创建规则是什么

            ● 自定义Viewwrap_content不起作用的原因

            ● 在Activity中获取某个View的宽高有几种方法

            ● 为什么onCreate获取不到View的宽高

            ● View#post与Handler#post的区别

            ● Android绘制和屏幕刷新机制原理

            ● Choreography原理

            ● 什么是双缓冲

            ● 为什么使用SurfaceView

            ● 什么是SurfaceView

            ● View和SurfaceView的区别

            ● SurfaceView为什么可以直接子线程绘制

            ● SurfaceView、TextureView、SurfaceTexture、GLSurfaceView

            ● getWidth()方法和getMeasureWidth()区别

            ● invalidate() 和 postInvalidate() 的区别

            ● Requestlayout,onlayout,onDraw,DrawChild区别与联系

            ● LinearLayout、FrameLayout 和 RelativeLayout 哪个效率高

            ● LinearLayout的绘制流程

            ● 自定义 View 的流程和注意事项

            ● 自定义View如何考虑机型适配

            ● 自定义控件优化方案

            ● invalidate怎么局部刷新

            ● View加载流程(setContentView)
5.View事件分发
            ● View事件分发机制

            ● view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者优先级

            ● onTouch 和onTouchEvent 的区别

            ● ACTION_CANCEL什么时候触发

            ● 事件是先到DecorView还是先到Window

            ● 点击事件被拦截,但是想传到下面的View,如何操作

            ● 如何解决View的事件冲突

            ● 在 ViewGroup 中的 onTouchEvent 中消费 ACTION_DOWN 事件,ACTION_UP事件是怎么传递

            ● Activity ViewGroup和View都不消费ACTION_DOWN,那么ACTION_UP事件是怎么传递的

            ● 同时对父 View 和子 View 设置点击方法,优先响应哪个

            ● requestDisallowInterceptTouchEvent的调用时机

由于内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方二维码免费领取!!

目录

img

第一章 Java方面

●Java基础部分

●Java集合

●Java多线程

●Java虚拟机

img

第二章 Android方面

●Android四大组件相关

●Android异步任务和消息机制

●Android UI绘制相关

●Android性能调优相关

●Android中的IPC

●Android系统SDK相关

●第三方框架分析

●综合技术

●数据结构方面

●设计模式

●计算机网络方面

●Kotlin方面

img

第三章 音视频开发高频面试题

●为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?

●怎么做到直播秒开优化?

●直方图在图像处理里面最重要的作用是什么?

●数字图像滤波有哪些方法?

●图像可以提取的特征有哪些?

●衡量图像重建好坏的标准有哪些?怎样计算?

img

第四章 Flutter高频面试题

●Dart部分

●Flutter部分

img

第五章 算法高频面试题

●如何高效寻找素数

●如何运用二分查找算法

●如何高效解决雨水问题

●如何去除有序数组的重复元素

●如何高效进行模幂运算

●如何寻找最长回文子串

img

第六章 Andrio Framework方面

●系统启动流程面试题解析

●Binder面试题解析

●Handler面试题解析

●AMS面试题解析

img

第七章 企业常见174道面试题

●SD卡

●Android的数据存储方式

●Broadcast Receiver

●sp频繁操作会有什么后果?sp能存多少数据?

●dvm与jvm的区别

●ART

●Activity的生命周期

●Application能不能启动Activity

●…

img

猜你喜欢

转载自blog.csdn.net/Android_XG/article/details/132469510