写点什么

BATJ 面霸:程序员可是要改变世界呀!阿里巴巴 3 面,移动客户端开发岗面试题

用户头像
Android架构
关注
发布于: 10 小时前
  • 并发集合了解哪些

  • ConCurrentHashMap 实现

  • CAS 介绍

滴滴

  • MVP

  • 广播(动态注册和静态注册区别,有序广播和标准广播)

  • service 生命周期

  • handler 实现机制(很多细节需要关注:如线程如何建立和退出消息循环等等)

  • 多线程(关于 AsyncTask 缺陷引发的思考)

  • 数据库数据迁移问题

  • 设计模式相关(例如 Android 中哪里使用了观察者模式,单例模式相关)

  • x 个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完

  • TCP 与 UDP 区别与应用(三次握手和四次挥手)涉及到部分细节(如 client 如何确定自己发送的消息被 server 收到) HTTP 相关 提到过 Websocket 问了 WebSocket 相关以及与 socket 的区别

  • 是否熟悉 Android jni 开发,jni 如何调用 java 层代码

  • 进程间通信的方式

  • java 注解

  • 计算一个 view 的嵌套层级

  • 项目组件化的理解

  • 多线程断点续传原理

  • Android 系统为什么会设计 ContentProvider,进程共享和线程安全问题

  • jvm 相关

  • Android 相关优化(如内存优化、网络优化、布局优化、电量优化、业务优化)

  • EventBus 实现原理

美团

  • static synchronized 方法的多线程访问和作用,同一个类里面两个 synchronized 方法,两个线程同时访问的问题

  • 内部类和静态内部类和匿名内部类,以及项目中的应用

  • handler 发消息给子线程,looper 怎么启动

  • View 事件传递

  • activity 栈

  • 封装 view 的时候怎么知道 view 的大小

  • arraylist 和 linkedlist 的区别,以及应用场景

  • 怎么启动 service,service 和 activity 怎么进行数据交互

  • 下拉状态栏是不是影响 activity 的生命周期,如果在 onStop 的时候做了网络请求,onResume 的时候怎么恢复


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


view 渲染

今日头条

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

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

  • ReentrantLock 、synchronized 和 volatile(n 面)

  • HashMap

  • singleTask 启动模式

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

  • 消息机制实现

  • ReentrantLock 的内部实现

  • App 启动崩溃异常捕捉

  • 事件传递机制的介绍

  • ListView 的优化

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

  • 模式 MVP,MVC 介绍

  • 断点续传的实现

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

  • TreeMap 具体实现

  • synchronized 与 ReentrantLock

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

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

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

  • Android 进程分类

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

  • Activity 的启动模式

爱奇艺

  • RxJava 的功能与原理实现

  • RecycleView 的使用,原理,RecycleView 优化

  • ANR 的原因

  • 四大组件

  • Service 的开启方式

  • Activity 与 Service 通信的方式

  • Activity 之间的通信方式 HashMap 的实现,与 HashSet 的区别

  • JVM 内存模型,内存区域

  • Java 中同步使用的关键字,死锁

  • MVP 模式

  • Java 设计模式,观察者模式

  • Activity 与 Fragment 之间生命周期比较

  • 广播的使用场景

百度

  • Bitmap 使用时候注意什么?

  • Oom 是否可以 try catch ?

  • 内存泄露如何产生?

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

  • ANR 如何产生?

  • String buffer 与 string builder 的区别?

  • 如何保证线程安全?

  • java 四中引用

  • Jni 用过么?

  • 多进程场景遇见过么?

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

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

  • bitmap recycler 相关

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

  • glide 使用什么缓存?

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

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

携程

  • Activity 启动模式

  • 广播的使用方式,场景

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

  • AndroidManifest 的作用与理解

  • List,Set,Map 的区别

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

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

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

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

网易

  • concurrenthashmap

  • volatile

  • synchronized 与 Lock

  • Java 线程池

  • wait/notify

  • NIO

  • 垃圾收集器

  • Activity 生命周期

  • AlertDialog,popupWindow,Activity 区别

小米

  • String 为什么要设计成不可变的?

  • fragment 各种情况下的生命周期

  • Activity 上有 Dialog 的时候按 home 键时的生命周期

  • 横竖屏切换的时候,Activity 各种情况下的生命周期

  • Application 和 Activity 的 context 对象的区别

  • 序列化的作用,以及 Android 两种序列化的区别。

  • List 和 Map 的实现方式以及存储方式。

  • 静态内部类的设计意图。

  • 线程如何关闭,以及如何防止线程的内存泄漏



白嫖 2020 最新大厂面试题及其解析

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为 Android 高级工程师的系统且全面的学习资料。涵盖了 Android 初级——Android 高级架构师进阶必备的一些学习技能。


附上:我们之前因为秋招收集的二十套一二线互联网公司 Android 面试真题(含 BAT、小米、华为、美团、滴滴)和我自己整理 Android 复习笔记(包含 Android 基础知识点、Android 扩展知识点、Android 源码解析、设计模式汇总、Gradle 知识点、常见算法题汇总。)



对于很多初中级 Android 工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对 Android 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
BATJ面霸:程序员可是要改变世界呀!阿里巴巴3面,移动客户端开发岗面试题