湛蓝之海 发表于 2021-12-17 13:28:54

2021金三银四Android面试心得,已拿到多个offer,阿里P7大牛手把手教你

[]( )二、技能储备
[]( )Java部分:

[*]1.1 数据结构与算法
1.1.1 常用的数据结构有哪些?
1.1.2 数组
(1)如何在一个1到100的整数数组中找到丢失的数字?
(2)如何在给定的整数数组中找到重复的数字? )(小米)
(3) 如何在未排序整数数组中找到最大值和最小值? (字节跳动)
(4)在Java中如何从给定数组中删除多重复制?
(5)大数相加(今日头条)
1.1.3 链表
(1).那查询第一个跟倒数第二个呢?(这就不一样了,第一个直接给了头结点,倒数第二个需要从倒数第一个开始查询,走两步) (腾讯)
(2).arrayList底层原理 (滴滴)
(3).如何在一次遍历中找到单个链表的中值?(中国平安)
(4)如何证明给定的链表是否包含循环?如何找到循环的头节点?(优酷)
(5).两个有交叉的单链表,求交叉点 (华为)
(6).如何得到单链表的长度? (360)
(7).如何在不使用递归的情况下逆转单链表?(小米/美团)
(8).怎么判断链表有环? (滴滴)
1.1.4 队列&堆栈
(1).如何使用栈实现队列的功能?(广州荔枝FM)
(2).两个栈实现一个队列(蘑菇街)
(3).两个队列实现一个栈 (腾讯)
(4).对比一下队列和栈,以及它们底部实现 (腾讯)
1.1.5 二叉树
(1).如何在给定的二叉树中执行先序遍历?(百度)
(2).如何实现后序遍历算法?(百度)
(3).如何在给定数组中执行二分法搜索?(苏宁)
(4).已知前序遍历为{1,2,4,7,3,5,6,8},中序遍历为{4,7,2,1,5,3,8,6},它的二叉树是怎么样的?(58)
(5).输入两棵二叉树A 和 B,判断 B 是不是 A 的子结构。 (爱奇艺)
(6).请实现两个函数,分别用来序列化二叉树和反序列化二叉树。 (YY)
(7).平衡二叉树和红黑树的区别?(字节跳动)
(8).什么是平衡二叉树,它有什么特征 (美团)
(9).B 树,B+树
1.1.6 HashMap
(1).HashMap的底层原理是什么?线程安全么? (百度( 美团)
(2).HashMap中put是如何实现的? (滴滴)
(3).谈一下hashMap中什么时候需要进行扩容,扩容resize()又是如何实现的?
(4).什么是哈希碰撞?怎么解决? (滴滴.美团)
(5).HashMap和HashTable的区别 (小米)
(6).HashMap中什么时候需要进行扩容,扩容resize()是如何实现的? (滴滴)
(7).hashmap concurrenthashmap原理 (美团)
(8).arraylist和hashmap的区别,为什么取数快?(字节跳动)
1.1.7图
(1).旋转输出矩阵
(2).给定一个矩阵 int matrixA,每行每列都是增序的,实现一个算法去寻找矩阵中的某个元素 element. (搜狗)
1.1.8排序算法有哪些?
(1).top-k排序堆排序,位图法) (美团)
(2).冒泡排序的手写 (华捷艾米)
(3).堆排序算法的手写 (华捷艾米)
(4).椭圆形场地有两个赛道,可以同时提供两匹马比赛,两匹马比赛后,可以获知两匹马中跑的快的那匹马,但是没有计时工具。问题,如何最优的算法(比赛次数最少),获知10匹马中速度最快的三匹马 (阿里)
(5).输入一个整型无序数组,对堆排序(阿里)
(6).如何使用快速排序算法对整数数组进行排序([CVTE)
1.1.9 查找算法
(1).有序数组的二分查找算法(百度)
1.1.10 串
(1).给定一个字符串,请你找出其中不含有重复字符的 最长子串的长度。 (字节跳动)
(2).给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
1.1.11 请写出以下算法的时间复杂度
冒泡排序法 插入排序法 堆排序法 二叉树排序法
1.1.12 其他算法
(1).常用的对称加密算法,有什么不同? (字节跳动)
(2).如何在无序(有负数)的数组中查找是否存在和为target的两个数组合,twoSum();(字节)
1.4 网络编程
(1).描述TCP三次握手与四次挥手的过程与意义。
a.TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
b.三次握手为什么不是两次一次 五次六次(美团)
(2).TCP与UDP的区别是什么?(腾讯)
(3).Http与Https的关系是什么?
(4).SSL握手的过程。
(5).Http的post与get请求的区别是什么?
(6).输入一个URL到浏览器发生了什么?(美团)
[]( )Android 相关:

[*]性能优化与源码
[*]Android之SharedPreferences内部原理浅析
[*]Android源码分析-消息队列和Looper
[*]Android源码分析—带你认识不一样的AsyncTask
[*]Android性能优化之使用线程池处理异步任务
[*]Android Context完全解析,你所不知道的Context的各种细节
[*]Android进程间通信(IPC)机制Binder简要介绍和学习计划
[*]Activity
[*]Activity是什么?
[*]典型情况下的Activity生命周期?
[*]异常情况下的Activity的生命周期 & 数据如何保存和恢复?
[*]从Activity A跳转到Activity B之后,然后再点击back键之后,它们的生命周期调用流程是什么?
[*]如何统计Activity的工作时间?
[*]给我说说Activity的启动模式 & 使用场景。
[*]如何在任意位置关掉应用所有Activity & 如何在任意位置关掉指定的Activity?
[*]Activity的启动流程(从源码角度解析)?
[*]启动一个其它应用的Activity的生命周期分析。
[*]BroadcastReceiver
[*]广播是什么?
[*]广播的注册方式有哪些?
[*]广播的分类 & 特性 & 使用场景?
[*]说说系统广播和本地广播的原理 & 区别 & 使用场景。
[*]有两个应用注册了一样的广播,一个是静态,一个是动态,连优先级也一样,那么当广播从系统发出来后,哪个应用先接收到广播?
[*]Fragment
[*]Android中v4包下Fragment和app包下Fragment的区别是什么?
[*]Fragment的生命周期 & 请结合Activity的生命周期再一起说说。
[*]说说Fragment如何进行懒加载。
[*]ViewPager + Fragment结合使用会出现内存泄漏吗 & 如何解决?
[*]Fragment如何和Activity进行通信 & Fragment之间如何进行通信?
[*]给我谈谈Fragment3种切换的方式以及区别 & 使用场景。
[*]getFragmentManager,getSupportFragmentManager,getChildFragmentManager之间的区别?
[*]FragmentPagerAdapter和FragmentStatePagerAdapter区别?
[*]Fragment如何实现类似Activity栈的压栈和出栈效果的?
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享


[*]序列化
[*]什么是序列化 & 能用来干什么?
[*]Android中序列化方式有几种?说说它们的区别。
[*]如果想要序列化的类中某些字段不序列化,那么应该怎么做?
[*]IPC
[*]说说你对Android多进程开发的认识?
[*]Android中进程间通信的方式有哪些?
[*]什么是AIDL?如何创建一个AIDL。
[*]文件存储
[*]说说Android中数据持久化的方式 & 使用场景。
[*]接触过MMKV吗?说说SharedPreference和它的区别。
[*]第三方数据库框架用过哪些?有没有自己封装过一个SQLite的库?
[*]SQLite是线程安全的吗 & SharedPreference是线程安全的吗?
[*]请简单的给我说说什么是三级缓存?
[*]SharedPreference的apply和commit的区别。
[*]谈谈你对SQLite事务的认识。
[*]ListView & RecyclerView
[*]ListView是什么?如何使用?
[*]RecyclerView是什么?如何使用?如何返回不一样的Item。
[*]ListView和RecycyclerView的区别是什么?
[*]分别讲讲你对ListView & RecyclerView的优化经验。
[*]给我说说RecyclerView的回收复用机制
[*]说说你是如何给ListView & RecyclerView加上拉刷新 & 下拉加载更多机制。
[*]谈谈你是如何对ListView & RecycleView进行局部刷新的?
[*]谈谈如何进行分页加载?
[*]ScrollView下嵌套一个ListView通常会出现什么问题?
[*]一个ListView或者一个RecyclerView在显示新闻数据的时候,出现图片错位,可能的原因有哪些 & 如何解决?
[*]View事件分发机制
[*]View绘制机制
[*]布局
[*]Binder
[*]动画机制
[*]JNI
[*]Window & Appliction & Context
[*]通知
[*]对话框(Dialog & DialogFragment & PopWindow)
[*]蓝牙
[*]Android中进程与线程调度之nice
[*]Android动态链接库so的加载原理
[*]Toast 原理剖析
[*]Android I/O
[*]Android项目构建流程
[*]HTTP、HTTPS、TCP/IP、Socket通信、三次握手四次挥手过程
[*]TCP协议与UDP协议的区别
[*]网页中输入url,到渲染整个界面的整个过程,以及中间用了什么协议?
[*]具体介绍下TCP/IP
[*]TCP的三次握手和四次挥手,为什么不是两次握手?为什么挥手多一次呢?
[*]HTTP的几种请求方法具体介绍
[*]HTTP请求和响应报文的格式,以及常用状态码。
[*]Service的两种启动方式?区别在哪?
[*]如何保证Service不被杀死 ?
[*]能否在Service开启耗时操作 ? 怎么做 ?
[*]用过哪些系统Service ?
[*]了解ActivityManagerService吗?发挥什么作用
[*]描述一下Android数据持久存储方式?
[*]SharedPreferences的应用场景?注意事项?
[*]SharedPrefrences的apply和commit有什么区别?
[*]了解SQLite中的事务操作吗?是如何做的
[*]使用SQLite做批量操作有什么好的方法吗?
[*]如何删除SQLite中表的个别字段
[*]使用SQLite时会有哪些优化操作?
[*]广播有几种形式 ? 都有什么特点 ?
[*]广播的两种注册方式 ?
[*]广播发送和接收的原理了解吗 ?(Binder机制、AMS)
[*]谈谈消息机制Handler作用 ?有哪些要素 ?流程是怎样的 ?
[*]一个线程能否创建多个Handler,Handler跟Looper之间的对应关系 ?
[*]软引用跟弱引用的区别
[*]Handler 引起的内存泄露原因以及最佳解决方案
[*]为什么系统不建议在子线程访问UI?
[*]Looper死循环为什么不会导致应用卡死?
[*]使用Handler的postDealy后消息队列会有什么变化?
[*]可以在子线程直接new一个Handler吗?怎么做?
[*]Message可以如何创建?哪种效果更好,为什么?
[*]线程池的好处? 四种线程池的使用场景,线程池的几个参数的理解?
[*]Android中还了解哪些方便线程切换的类?
[*]讲讲AsyncTask的原理
[*]IntentService有什么用 ?
[*]Bitmap使用需要注意哪些问题 ?
[*]Bitmap.recycle()会立即回收么?什么时候会回收?如果没有地方使用这个Bitmap,为什么垃圾回收不会直接回收?
[*]一张Bitmap所占内存以及内存占用的计算
[*]Android中缓存更新策略 ?
[*]LRU的原理 ?
[*]内存泄露和内存溢出的区别 ?AS有什么工具可以检测内存泄露
[*]性能优化,怎么保证应用启动不卡顿? 黑白屏怎么处理?
[*]强引用置为null,会不会被回收?
[*]ListView跟RecyclerView的区别
[*]ListView的adapter是什么adapter
[*]LinearLayout、FrameLayout、RelativeLayout性能对比,为什么?
[*]谈谈MVC、MVP和MVVM,好在哪里,不好在哪里 ?
[*]封装p层之后.如果p层数据过大,如何解决?
[*]是否能从Android中举几个例子说说用到了什么设计模式 ?
[*]装饰模式和代理模式有哪些区别 ?
[*]如何进行单元测试,如何保证App稳定 ?
[*]Android中如何查看一个对象的回收情况 ?
[*]Apk的大小如何压缩 ?
[*]如何通过Gradle配置多渠道包?
[*]插件化原理分析
[*]组件化原理
[*]跨组件通信
[*]组件化中路由、埋点的实现
[*]Hook以及插桩技术
[*]Android的签名机制?
[*]会用Kotlin、Fultter吗? 谈谈你的理解
[*]Kotlin和Java的区别
[*]说一下Kotlin的伴生对象
[*]请简单介绍下Flutter框架,以及它的优缺点?

最后
这里我特地整理了一份《Android开发核心知识点笔记》,里面就包含了自定义View相关的内容

除了这份笔记,还给大家分享?Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

分享上面这些资源,希望可以帮助到大家提升进阶,如果你觉得还算有用的话,不妨把它们推荐给你的朋友~
喜欢本文的话,给我点个小赞、评论区留言或者转发支持一下呗~
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

            </div>
      
      <div id="asideoffset"></div>

https://blog.51cto.com/u_15450972/4811023
页: [1]
查看完整版本: 2021金三银四Android面试心得,已拿到多个offer,阿里P7大牛手把手教你