代码题
1.手写二分查找
二面(一小时)
Android问题:
1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下dispatchTouchEvent,子View如何阻止父View拦截事件,Action_Cancel什么时候会发生,一个应用场景:两个并排Button,点击button之后,又移动到另一个button,但不点击滑动到外面会经过发生哪些事件。
2.OkHttp
- Message.obtain()有什么好处,为什么不使用new Message(防止多次Gc)
4.LinearLayout和RelativeLayout的区别,优缺点,层级嵌套等等等
5.ConstrantLayout讲讲特点
6.性能优化在项目中做过哪些
7.读过哪些Android的源码
8.BroadCastReceiver的源码看过么?
9.FrameLayout了解么?
代码题:
1.场景题,实现一个ActionMangager,其中包括 registerAction(String action, IActionCallback callback), unregisterAction(IActionCallback callback); notifyChange(string action)三个方法。类似于BroadCastReceiver,一个action可能对应多个Callback,notifyChange中要回调action对应的所有Callback对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。
2.之字形遍历二叉树
拼多多
笔试
基于给定接口实现ImageLoader框架
一面
-
自我介绍
-
静态变量和实例变量的区别
-
重写equals()方法的注意事项;两个list是怎么判断是否相等的?
-
HashTable和HashMap的区别;是否允许键为null
-
数据同步的方法;synchronized可以在对象上加锁吗?在方法上加锁是加在哪个对象上?
-
进程间读写文件的同步方式
-
了解哪些加密算法;AES和RSA的区别
-
HTTP响应码
-
进程优先级;Android进程优先级
-
如何使一个Service处于另一个进程中;进程的服务保活
-
Touch事件分发机制
-
如何实现客户端长连接的?重试策略是怎样的?如何监控HTTP请求的?
-
提问问题
二面
-
大顶堆和栈的概念
-
最短路径算法概念
-
如何缓存HTTP
HR面
也不能算是HR面吧,简单聊了聊。
新美大
一面
-
自我介绍
-
为什么选用OkHttp?为什么用MVP模式?
-
ImageLoader的三级缓存怎么做的;OkHttp的磁盘缓存怎么做的?
-
如何删除文章的广告之类的?有遇到不符合的情况吗?
-
HashMap是线程安全的吗?HashMap线程不安全会造成什么现象?如何使HashMap变为线程安全的?
-
Java的内存模型;GC;遇到过OOM情况吗?有什么可以检测内存泄露的工具
-
文章列表用的什么什么控件?ListView如何优化?RecyclerView用过吗?和ListView的区别
-
应用中有几个Activity;ViewPager嵌套Fragment怎么用,遇到过什么坑没?
-
自定义View时自定义属性该怎么做?
-
印象最深刻的项目,或难点
二面
-
自我介绍
-
界面展示用的ListView还是RecyclerView?如何做文章的过滤的?如果改成别的网站需要怎么做?
-
ImageLoader怎么实现的?内存缓存使用的是什么策略?
-
项目中TCP+HTTP+JSON是怎么回事?
-
android ui自动化测试
-
实习的项目
-
对Kotlin的了解;准备让用Kotlin写一个界面的
-
给了一个布局,让说说看怎么编写
-
了解啥新技术
-
问问题
三面
-
自我介绍
-
为什么选用AES加密?
-
全程没聊技术,介绍他所在部门做的事情,问我感不感兴趣,我也提问了一些问题,聊得比较投机
-
手上的offer
HR面
问了一些基本信息,手上offer情况,对薪资的要求。由于三面全程没问技术,心里比较虚。
-
熟悉常用设计模式:策略、责任链、单例、装饰者、代理、观察者、适配器、外观/门面
-
研究过Mybatis3源码,熟悉sqlsess
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享
ion执行流程、熟悉一级缓存、二级缓存原理
- 研究过Spring5注解方式启动Spring的源码,熟悉Springbean生命周期、SpringAOP底层原理、Spring事务底层原理、Spring循环依赖解决的原理