想都不敢想,这个Android开发为了通过面试竟然做出这样的事情!
Posted 懂你的大海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想都不敢想,这个Android开发为了通过面试竟然做出这样的事情!相关的知识,希望对你有一定的参考价值。
前言
以下为楼主在最近的 android 开发(社招)面试中总结的 Android 基础知识点,楼主已经拿到心仪的offer。
Android中大厂面试都很重视基础知识的考察,面试前不仅要熟悉这些知识点,也要适当去背诵,保证面对面试官时能从容清晰地表述出来。强烈推荐《Android开发艺术探索》,校招社招都对我很有帮助;《Java并发编程实战》帮助理解多线程安全;《深入理解Java虚拟机》帮助理解JVM。理解了以下问题后,最好要用笔手写下来,帮助你组织语言,加深印象,帮助复习。
Android面试题
- ListView 如何缓存的?
- RecyclerView联系人列表如何实现A-Z快速定位
- 广播和EventBus的区别
- 主线程Looper循环为什么没有卡主线程?
- SharedPreference的线程安全、进程安全,如何跨进程
- Android 中实现多线程: threads, Handler,AsyncTask, IntentService
- Android 中如何实现多进程
- 自定义View的过程:measure,layout,draw
- theme 和 style 有什么区别,优先级
- 有哪些进程间通信方式
- View 的渲染过程
- Binder 的原理和优势
- Android 中有哪些动画,都说下
- Serializable 和 Parcelable 的区别
- 你知道哪些Layout,ConstraintLayout 的特点是什么
四大组件
-
当内存不足时Service被杀死了,如何重启这个Service
-
Fragment 的 ViewModel 如何访问到 Activity 的 ViewModel 的数据
-
Activity 4种启动模式说下,各种启动模式适合的应用场景
-
Activity 任务栈从底到顶为 A-B-C,低内存杀死进程后,重新点击,显示哪个?这时如果C里面有Fragment是怎样恢复的?
-
Activity如何传参给Fragment?为什么用setArgument传参,而不是使用带有参数的构造器?
-
window、view 和 Activity 的关系
-
Activity、Fragment 的各个生命周期依次说一下,各个生命周期里面适合做什么
-
Activity 调用 finish 方法后怎么走到 onDestroy 的
图片
- Glide缓存特点
- Glide为我们做了哪些内存优化
- ListView 图片错位的原因,解决方案
- bitmap如何处理大图,30M的大图如何防止OOM?
网络
- OKHttp 如何实现缓存
- OKHttp 的超时时间,有考虑DNS超时码
- OKHttp 线程池、连接池讲下
- OKHttp 的所有拦截器有哪些,请求失败了重试1、2次怎么做
- Retrofit实现机制
- Room注解如何在编译时生成类文件
- http 和 https 的区别,shakehand的过程说下
- 状态码400、401,3xx有哪些
- 网络劫持是什么,应该怎么做
- TCP三次握手,握手中的网络包各个标记位是多少,四次挥手说一下
- TCP 发送窗口是什么?
- 混合开发h5了解多少
- 浏览器窗口访问一个网址的过程
- POST 和 GET 有什么区别
优化
- 内存泄漏分析,LeakCanary的原理,泄漏对象是如何找到引用链的
- APK瘦身
- 启动优化
- 卡顿分析!!
- ANR分析!!
- 为什么布局文件中层级越多,性能可能差很多
- 你有哪些应用性能优化的经验(必问)
- ProGuard怎么写
Java
- hashCode、equals
- HashMap 请开始你的表演
- ConcurrentHashMap 分段加锁的原理
- 动态代理如何写
- JVM 内存模型介绍下,哪些地方可能 OutOfMeomory
- JVM GC 算法
- 线程池的原理,有哪些拒绝策略
- Java锁优化:偏向锁、轻量级锁、自旋锁讲一下
- 为什么说反射的性能不好
Kotlin
- Kotlin协程为什么能以同步代码写出异步逻辑?
- suspend 函数的工作原理
- 在协程上定义了一个局部变量,为什么在其中的其他线程里的协程也能访问到?
- by 的两种场景,by Lazy 的实现
- object 单例的实现
算法
- 各种排序算法(冒泡、选择、快排、归并。。。)的时间复杂度,各种查找算法(顺序查找,二分查找。。。)的时间复杂度
- LRU 实现(146)参考LinkedHashMap实现的3个方法
- LFU 缓存(460) 同一频率使用LRU的NodeList,外面套一层{freq to NodeList},NodeList用双链表实现
- 两数相加(445)
- 找缺失的数字(268)注意相似题目里有中等
- 两个队列实现栈(225)
- 删除子文件夹(1233)
- 螺旋矩阵打印(54)
抽象问题
- 讲讲做过的有挑战性的项目
- 你自己的亮点在哪里,你的加入可以给团队带来什么
- 技术规划,怎么发展
设计题
- 如果让你设计一个音乐播放器,要实现哪些接口
- 设计一个图片下载库:深挖 Glide,如果图片没有设置有效期,如何保证缓存被更新???
最后
除了文中提到的四十道面试题,我从全网收集了五十份Android面试笔记,归纳整理之后,加上了自己的一点理解。
至于怎么获得,只需要关注我一下,然后点击获取:Android面试笔记
记得要关注我哦~
以上是关于想都不敢想,这个Android开发为了通过面试竟然做出这样的事情!的主要内容,如果未能解决你的问题,请参考以下文章
P7级别的Android开发,面试竟然被 Framework 那些知识点绊倒了
5年老Android面试竟然被这3道Android基础题难倒了,附大厂真题面经