投简历前其实并没有高强度有系统的复习 由于平时工作比较闲 大多数都是零零散散浑沦吞枣的学习和积累的
此前也没面过大厂 都在一些中小型公司呆过 此次面试有很大一部分心态是抱着学习的心态试一试 再加上自己平时学的不够透彻 算是一个教训
字节(一面挂)
项目经历 自己做过哪些核心的模块
MVP、MVVM优缺点
http状态码讲一下常用的
从ViewRootImpl开始 事件分发流程 onClick和onLongClick怎么执行的
TextView的绘制流程 怎么处理换行
性能优化都做了哪些
Shareperference实现机制
插件化原理
ViewRootImpl都做了哪些事情
都有哪些window类型 内部是怎么处理window不同权限的
算法:
给定一个数N 如23121 给定一组数字A如{2,4,9}; 求由A中元素组成的、小于N的最大数,如小于23121的最大数为22999
涂鸦智能(现场面试两轮)
一面
讲一下Handler消息机制
项目中都做了哪些性能优化
讲一下绘制流程 View和ViewGroup的区别
事件分发流程是怎么执行的
http的请求过程
HashMap原理 put过程、扩容 1.7 1.8区别 ConcurrentHashMap原理
二面
MQTT协议的特点 底层原理
Activity启动流程 为什么zygote使用socket通信
插件化原理 遇到过什么问题 怎么解决的
classLoader双亲机制
模块化通信 自己设计一套怎么实现
tcp协议请求过程
面试结束后已经中午吃饭了 面试官让等一会 结果又让等通知
等了有一个星期邮件通知感谢
阿里(三面挂)
初面(电话简单聊了二十分钟)
项目经历 主要做过哪些业务功能
性能优化
有遇到过哪些比较难的问题
讲一下MQTT协议
注解和反射原理
HashMap内部实现原理 怎么hash的 怎么扩容 1.7、1.8什么区别 多线程会导致什么问题
项目中人脸识别用到了哪些业务场景
这一面应该是筛选下简历 不算正式面世
一面(电话面试四十分钟)
介绍自己做过的项目 处理了什么问题
ListView和ScrollView的冲突怎么处理
Handler怎么处理延时消息的 消息队列中死循环在native层都做了什么处理
为什么用单Activity多Fragment 怎么处理传参
同事代码可能导致内存泄漏和ANR 在代码层面怎么避免
okhttp拦截器实现 连接池的复用策略 有实现http2.0吗 okhttp和volley的区别 从实现策略讲
讲一下eventbus实现原理
glide的三级缓存是怎么执行的 最近使用和正在使用的缓存是怎么切换的 怎么处理bitmap复用的 如果自己实现一个该怎么处理
模块化怎么通信 底层怎么实现
二面(电话面试三十多分钟)
介绍项目 自己处理过哪些项目痛点 怎么处理的
泛型编译期信息怎么储存的 什么情况下泛型会擦除
MVP、MVVM优缺点
与web是怎么交互通信的 这个模块怎么设计的
接口 抽象类区别 可以new吗
JDK8的流有用过吗 解决了什么问题 写过接口的默认实现吗
讲一下RN和Flutter的区别
算法:查找数组中大小为x的两个数(只有一对)
三面(三十多分钟)
介绍做过的项目 处理过哪些问题
http2.0什么特性 有哪些问题
设计模式了解多少 讲一下装饰模式
MQTT协议解决了哪些问题 为什么
flutter了解多少
平时都通过哪些方式学习和了解技术的
都有了解其他哪方面的技术
在最近的项目中学到了什么
职业发展方向
对于这项工作你有什么优势
中间废话有点多 面试官有点不耐烦 说尽量讲的简单些
第三天就收到邮件感谢了 -。-
阿里整体的面试难度不算太离谱 可能刚好都是比较擅长的 但面试周期较长 面到三面的时候已经多半个月了 有点力不从心 也有自己没有准备好的原因 有点懈怠了 三面问的问题大白话的偏多 奈何本人嘴笨 血压逐渐拉满 不过也算没有遗憾 深知能力有限 就酱吧
整理了下其他面试中都涉及过的问题
网络
http请求、tcp握手回收、MQTT相关
复制代码
数据结构
树、链表
复制代码
Java
GC、Collection、Map
多态
多线程、各种锁机制
复制代码
Android
性能优化、ANR、内存泄漏
Activity启动模式、启动流程
四大组件
Hanlder机制、事件分发、绘制流程
MVP、MVVM、插件化(hook)
跨进程通信、aidl、广播、ContentProvider
okhttp、retrofit、glide、eventbus底层原理
复制代码
Kotlin
kotlin反射、kotlin泛型
协成原理 await、async区别
lateinit和by lazy区别
复制代码