写点什么

Android 开发面试心得:BAT 大厂 Android 面试题整理,面试 8 家大厂后终于拿到 Offer

用户头像
Android架构
关注
发布于: 刚刚
  • HashMap 实现原理,ConcurrentHashMap 的实现原理

  • BroadcastReceiver,LocalBroadcastReceiver 区别

  • Bundle 机制

  • Handler 机制

  • android 事件传递机制

  • 线程间 操作 List

  • App 启动流程,从点击桌面开始


*动态加载


  • 类加载器

  • OSGI

  • Https 请求慢的解决办法,DNS,携带数据,直接访问 IP

  • GC 回收策略

  • 画出 Android 的大体架构图

  • 描述清点击 Android Studio 的 build 按钮后发生了什么,大体说清一个应用程序安装到手机上时发生了什么;

  • 对 Dalvik、ART 虚拟机有基本的了解;

  • Android 上的 Inter-Process-Communication 跨进程通信时如何工作的;

  • App 是如何沙箱化,为什么要这么做;

  • 权限管理系统(底层的权限是如何进行 grant 的)

  • 进程和 Application 的生命周期;

  • 系统启动流程 Zygote 进程 –> SystemServer 进程 –> 各种系统服务 –> 应用进程

  • recycleview listview 的区别,性能

  • 排序,快速排序的实现

  • 树:B 树的介绍

  • 图:有向无环图的解释

  • TCP/UDP 的区别

  • synchronized 与 Lock 的区别

  • volatile

  • Java 线程池

  • Java 中对象的生命周期

  • 类加载机制

  • 双亲委派模型

  • Android 事件分发机制

  • MVP 模式

  • RxJava

  • 抽象类和接口的区别

  • 集合 Set 实现 Hash 怎么防止碰撞

  • JVM 内存区域 开线程影响哪块内存

  • 垃圾收集机制 对象创建,新生代与老年代

  • 二叉树 深度遍历与广度遍历

  • B 树、B 树

  • 消息机制

  • 进程调度

  • 进程与线程

  • 死锁

  • 进程状态

  • JVM 内存模型

  • 并发集合了解哪些

  • ConCurrentHashMap 实现

  • CAS 介绍

  • 开启线程的三种方式,run()和 start()方法区别

  • 线程池

  • 常用数据结构简介

  • 判断环(猜测应该是链表环)

  • 排序,堆排序实现

  • 链表反转

  • 动态权限适配方案,权限组的概念

  • 网络请求缓存处理,okhttp 如何处理网络缓存的

  • 图片加载库相关,bitmap 如何处理大图,如一张 30M 的大图,如何预- - 防 OOM

  • 进程保活

  • listview 图片加载错乱的原理和解决方案

  • https 相关,如何验证证书的合法性,https 中哪里用了对称加密,哪里用了非对称加密,对加密算法(如 RSA)等是否有了解


百度




  • Bitmap 使用时候注意什么?

  • Oom 是否可以 try catch ?

  • 内存泄露如何产生?

  • 适配器模式,装饰者模式,外观模式的异同?

  • ANR 如何产生?

  • String buffer 与 string builder 的区别?

  • 如何保证线程安全?

  • java 四中引用

  • Jni 用过么?

  • 多进程场景遇见过么?

  • 关于 handler,在任何地方 new handler 都是什么线程下

  • sqlite 升级,增加字段的语句

  • bitmap recycler 相关

  • 强引用置为 null,会不会被回收?

  • glide 使用什么缓存?

  • Glide 内存缓存如何控制大小?


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


  • 如何保证多线程读写文件的安全?


今日头条





  • 数据结构中堆的概念,堆排序

  • 死锁的概念,怎么避免死锁

  • ReentrantLock 、synchronized 和 volatile(n 面)

  • HashMap

  • singleTask 启动模式

  • 用到的一些开源框架,介绍一个看过源码的,内部实现过程。

  • 消息机制实现

  • ReentrantLock 的内部实现

  • App 启动崩溃异常捕捉

  • 事件传递机制的介绍

  • ListView 的优化

  • 二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径

  • 模式 MVP,MVC 介绍

  • 断点续传的实现

  • 集合的接口和具体实现类,介绍

  • TreeMap 具体实现

  • synchronized 与 ReentrantLock

  • 手写生产者/消费者模式

  • 逻辑地址与物理地址,为什么使用逻辑地址

  • 一个无序,不重复数组,输出 N 个元素,使得 N 个元素的和相加为 M,* 给出时间复杂度、空间复杂度。手写算法

  • Android 进程分类

  • 前台切换到后台,然后再回到前台,Activity 生命周期回调方法。弹出 Dialog,生命值周期回调方法。

  • Activity 的启动模式


携程




  • Activity 启动模式

  • 广播的使用方式,场景

  • App 中唤醒其他进程的实现方式

  • AndroidManifest 的作用与理解

  • List,Set,Map 的区别

  • HashSet 与 HashMap 怎么判断集合元素重复

  • Java 中内存区域与垃圾回收机制

  • EventBus 作用,实现方式,代替 EventBus 的方式

  • Android 中开启摄像头的主要步骤


最后




今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如 Handler 机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。


最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些 BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助我们深刻理解 Android 相关知识点的原理以及面试相关知识(还有算法相关的学习视频)。这份学习文档把大厂面试中常被问到的技术点整理成了 PDF ,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图,为了帮助大家学习提升进阶,也节省大家在网上搜索学习文档笔记的时间来学习,也可以分享给身边好友一起学习。大家可以直接去我 GitHub地址:https://github.com/733gh/Android-T3 中查阅。





用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android 开发面试心得:BAT大厂Android面试题整理,面试8家大厂后终于拿到Offer