0%

高级 Android 工程师面试题 for 2021.01

科班基础
  1. 数据结构有哪些?
  2. 自己设计一个类,不用Map实现输入key,输出对应的value。
  3. 有了解过图吗?用代码怎么表示一张图?有个社交项目有1000个用户,每个用户都与其中某些用户是好友关系,现有用户A、用户B,判断A、B为直接好友关系还是间接好友关系(间接好友指例如A有朋友D,D有朋友E,E才有朋友B),若为间接好友关系输出好友路径
  4. 快排的思想?
  5. tcp,udp?三次握手、四次挥手流程及为什么?
  6. 数据库中的事务是什么?order by与group by的区别。主键整型升序,查询表中倒数第二条数据。
  7. 对称加密与非对称加密?
代码设计相关
  1. 继承与接口的区别?如何选择?
  2. 装饰者模式与代理模式的区别?讲一下静态代理和动态代理
  3. MVVM与MVP各自优缺点
  4. Java多态的理解
  5. 泛型的理解
Java相关
  1. 双亲委派模型
  2. jvm垃圾回收机制。
    • 可达性分析法。强软弱虚,内存泄漏。
    • 标记-清除、标记-整理、复制。整合出分代收集算法
  3. HashMap,jdk1.8之前hash冲突的处理。JDK1.8后的实现数据结构用了哪些?两种数据结构的区别?
  4. break与continue的区别
  5. StringBuffer与StringBuilder的区别,如何选择?
  6. 程序中"钱"使用什么数据类型存储?
  7. 什么是递归?递归使用不当会出现什么情况?栈内存溢出和堆内存溢出,JVM内存模型。
  8. 反转单链表思路。
  9. 线程安全三要素是哪些?
  10. 成员变量与局部变量?如何选择?是否可以全部都使用成员变量?
  11. private与public?是否可以全部使用public
  12. 为什么要在代码中抛出异常?
  13. 线程的创建与回收?线程池?线程池核心线程为什么不会被回收?空闲线程空闲超过指定时间才被回收是怎么实现的?
kotlin相关
  1. let和apply?
  2. 内联函数的作用?
  3. jvmOverload和jvmStatic
  4. contract的作用?
  5. ==与===的区别?==等价与Java中的?
  6. kotlin中独有的可见修饰符是?作用?
  7. !!的作用?
android相关
  1. 最近学习的新技术?
  2. startActivity与startActivityForResult?onActivityResult的局限?谈谈ActivityResultContract?
  3. activity的四种启动模式?
  4. 动画的种类有哪些?什么是插值器,什么是估值器?
  5. RV的数据源发生改变(增删改),adapter分别对应的方法。若我给数据集合追加了3条数据,那么adapter调用什么方法?notifyDataSetChange可以不?如果回答可以,那么问为什么选择调用notifyInsert,与调用notifyDataSetChange有什么区别?item局部刷新?
  6. Okhttp一个call的流程,怎么进行公共参数的传递?责任链设计模式?
  7. 外部会唤起APP某一个页面,怎么做?若有多个页面都支持唤起?
  8. 怎么计算一张gif图占用的内存大小?Glide的加载一张网络图片的流程?怎么处理请求的生命周期?三级缓存?内存缓存用的什么缓存算法?讲讲LRUCache。怎么判断是从硬盘中加载还是从网络中请求?加载大图片时是Glide如何处理内存问题?
  9. 为什么在onCreate中获取不了View的宽高?绘制流程
  10. 宽高都为100dp的FrameLayout中有两个平级的宽高也为100dp的子View分别设置背景色为红、黄,展示哪个颜色?都设置点击事件,谁响应?事件分发流程
  11. v1、v2签名区别?多渠道打包
  12. 怎么进行项目接口环境的切换?
  13. 为一张表增加一个字段的完整操作流程是?
  14. handler机制的四大对象分别是?延迟msg的处理?同步屏障的作用?Android中哪些地方用到了同步屏障?产生ANR的原因?Looper死循环有阻塞休眠机制,如果没有阻塞机制会ANR吗?不会产生ANR那会发生什么?
  15. SharedPreference中commit和apply的区别?apply产生anr的原因?
  16. 遇到的最难解决的bug是什么?
  17. 怎么进行重构和重写?怎么判读重构和重写后比之前更好?
  18. 减小包体积的方法?
  19. 布局优化怎么做,什么是重绘,怎么避免重绘。
  20. 埋点方案?无埋点和代码埋点的优缺点?编译期无埋点和运行期无埋点的实现?讲讲字节码插桩
  21. 怎么进行学习?长逛的网站
git相关
  1. reset和revert的区别?
  2. 回滚一个push到远端的commit怎么做?
  3. 暂存区的使用?
  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/108
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!