2021【BAJT】Android 校招、社招面试题整理合集
?简述单例模式的实现方式,且单例模式有什么优缺点?
?简述 Java 的异常处理机制
?多线程间如何进行信息通信?
?多线程如何保证线程安全?
?简述线程池
?简述 HashMap 实现机制,如何解决 HashMap 的线程安全问题?
?TCP 和 UDP 的区别,分别有哪些应用场景?
?简述七层网络模型
?简述 Android 点击事件的分发机制
因为都是电话面试,所以没有手撕代码的环节,但是问了很多应用场景的问题。
一面:
自我介绍
秒杀项目(smali 代码有没有看、tcp 三次握手、https 流程、单向认证和双向认证、SSL、token、服务器如何校验数据被篡改,这种机制叫什么(身份验证?))
activity 启动模式
数据结构中 hashmap 结构、原理、是不是线程安全
如何实现线程安全,内存模型
锁在内存中如何使用,CAS 是什么
如何实现线程 1 和线程 2 同时进行,都结束之后执行线程 3(countLowndown,notify,线程池)
进程间通信的方式
content provider 原理,如何获取 URI,(manifest 中的 exproted,默认情况是 false 还是 true)
Android 卡顿原因,如何造成,ANR
算法:翻转字符
串成 work am I
10G 文件如何下载(如何保证传输正确(tcp+校验和),分多线程下载,)
操作系统中分页和分段、逻辑地址如何转换为物理地址
研究生学过哪些课程
二面:
自我介绍
项目
有没有公司实习经历
排序算法有哪些?冒泡和快排的时间复杂度和稳定性
七层模型?路由器在哪一层?
http 和 https 区别、状态响应码有哪些代表什么
APP 和 activity 的启动流程
使用场景:客户端和服务器的延迟问题,如何防止多扣款?那订单编号在哪里生成?如果在服务端生成的话如何保证不会生成多个订单编号。
三面:
自我介绍
项目介绍,各种问,哪些是自己做的
UI 渲染
多线程方式
asynctask 不同机型的线程池大小是多少
如何判断一个广告被看见
为什么做 Android
职业规划
腾讯
?GC 机制;
?RxJava 有没有了解;
?内存泄漏怎么排查;
?app 的页面突然卡了一下,怎么排查?
?ANR 怎么排查?定义是什么?
?使用过哪些开源库;
?对 OKHttp 有哪些了解?这个框架设计怎么样?
?Databinding 有哪些了解?
?EventBus 了解吗?
?安卓的注解有什么了解?
?RelativeLayout 和 LinearLayout 怎么选?为什么?
?自定义 Layout 主要有那几个流程?
?滑动过程卡顿,刷新率太低,怎么排查?
京东(校招)
一面
自我介绍
为什么做 Android
说一下快排怎么实现,优缺点
XXXX 项目负责了什么
网络请求封装是怎么做的
MVP 有没有封装的
项目里面 RxJava OkHttp Retrofit 源码看过没有
讲一下 OkHttp 源码
是怎么根据 Dijkstra 做的最短路径
图片加载你是怎么优化的
Glide 底层缓存怎么实现 (弱引用,三级缓存…)
瀑布流效果如何去实现
了解过最新的技术吗(Jetpack)
举几个 Jetpack 的例子
评论