评论

收藏

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

数据库 数据库 发布于:2021-12-17 13:28 | 阅读数:468 | 评论:0

[]( )二、技能储备
[]( )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[m][n],每行每列都是增序的,实现一个算法去寻找矩阵中的某个元素 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相关的内容
DSC0000.jpg

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

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

关注下面的标签,发现更多相似文章