今日头条(一面)
- Activity正常和异常情况下的生命周期
- Activity的四种启动模式
- app如何保证后台服务不被杀死
- IntentService比Service好在哪?
- 如何优雅的展示Bitmap大图
- Retrofit使用的注解是哪种注解?注解的底层实现是怎样的
- Thread和HandlerThread的区别
- 关于include,merge,stub三者的使用场景
- Java是值传递还是引用传递
- final和static关键字的区别
- HashMap和HashSet的区别
- 深拷贝和浅拷贝的区别
- clone()的默认实现是深拷贝还是浅拷贝?如何让clone()实现深拷贝?
- 动态代理和静态代理
- 算法题:求二叉树第n层节点数
- JVM的内存分布及垃圾回收机制
腾讯SNG(一二面)
- 对Android消息机制的理解
- Java有哪几种创建新线程的方法及区别
- static修饰的方法可以被子类重写吗?为什么?
- 如何优化一个ListView?
- 哪些情况会导致OOM
- 如何检测内存泄漏?有哪些工具
- 用leak工具监测内存泄漏的原理是什么?
小米(一二面)
- ThreadLocal的理解
- HashMap,HashSet,HashTable的区别
- 如何让HashMap可以线程安全
- Android对HashMap做了优化后推出的新容器类是什么?
- Java多线程之间如何通信
- 线程池的实现机制
- RxJava中map和flatmap操作符的区别及底层实现
- 对消息机制中Looper的理解
- Integer类对int的优化
- 单例模式有哪些实现方式
- 通过静态内部类实现单例模式有哪些优点
- synchronized volatile关键字有什么区别?及还有哪些同样功能的关键字?
- 算法题:两个有序链表合并
- 界面卡顿的原因有哪些
- 造成OOM/ANR的原因
- Activity与Fragment生命周期有何联系
- Activity与Fragment之间如何通信
- RecyclerView与ListView缓存机制的不同
阿里
- 操作系统进程间通信有哪些方法
- 谈谈对Socket的理解
- 不同架构的机器有何不同(如x86等)
- TCP/UDP比较
- 什么时候会发生死锁
- 操作系统层面上,线程可以加哪些锁
- 算法题:求无序数组中的中位数
- 二叉树深度算法
- Android什么情况下会发生内存泄漏
- 栈在系统中的方向是怎样的?为什么