其他
面试BAT大厂,可少不了这些题目!
点击上方的终端研发部,右上角选择“设为星标”
每日早8点半,技术文章准时送上
公众号后台回复“学习”,获取作者独家秘制精品资料
往期文章
前言
阿里巴巴
LRUCache原理 图片加载原理 模块化实现(好处,原因) JVM 视频加密传输 统计启动时长,标准 如何保持应用的稳定性 ThreadLocal 原理 谈谈classloader 动态布局 热修复,插件化 HashMap源码,SpareArray原理 性能优化,怎么保证应用启动不卡顿 怎么去除重复代码 SP是进程同步的吗?有什么方法做到同步 介绍下SurfView HashMap实现原理,ConcurrentHashMap 的实现原理 BroadcastReceiver,LocalBroadcastReceiver 区别 Bundle 机制 Handler 机制 android 事件传递机制 线程间 操作 List App启动流程,从点击桌面开始 动态加载 类加载器 OSGI Https请求慢的解决办法,DNS,携带数据,直接访问IP GC回收策略 画出 Android 的大体架构图 描述清点击 Android Studio 的 build 按钮后发生了什么,大体说清一个应用程序安装到手机上时发生了什么; 对 Dalvik、ART 虚拟机有基本的了解; Android 上的 Inter-Process-Communication 跨进程通信时如何工作的; App 是如何沙箱化,为什么要这么做; 权限管理系统(底层的权限是如何进行 grant 的) 进程和 Application 的生命周期; 系统启动流程 Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程 recycleview listview 的区别,性能 排序,快速排序的实现 树:B 树的介绍 图:有向无环图的解释 TCP/UDP的区别 synchronized与Lock的区别 volatile Java线程池 Java中对象的生命周期 类加载机制 双亲委派模型 Android事件分发机制 MVP模式 RxJava 抽象类和接口的区别 集合 Set实现 Hash 怎么防止碰撞 JVM 内存区域 开线程影响哪块内存 垃圾收集机制 对象创建,新生代与老年代 二叉树 深度遍历与广度遍历 B树、B 树 消息机制 进程调度 进程与线程 死锁 进程状态 JVM内存模型 并发集合了解哪些 ConCurrentHashMap实现 CAS介绍 开启线程的三种方式,run()和start()方法区别 线程池 常用数据结构简介 判断环(猜测应该是链表环) 排序,堆排序实现 链表反转 动态权限适配方案,权限组的概念 网络请求缓存处理,okhttp如何处理网络缓存的 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预- - 防OOM 进程保活 listview图片加载错乱的原理和解决方案 https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解
美团
static synchronized 方法的多线程访问和作用,同一个类里面两个synchronized方法,两个线程同时访问的问题 内部类和静态内部类和匿名内部类,以及项目中的应用 handler发消息给子线程,looper怎么启动 View事件传递 activity栈 封装view的时候怎么知道view的大小 arraylist和linkedlist的区别,以及应用场景 怎么启动service,service和activity怎么进行数据交互 下拉状态栏是不是影响activity的生命周期,如果在onStop的时候做了* 网络请求,onResume的时候怎么恢复 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之间生命周期比较 广播的使用场景
百度
https与http区别 https下的TCP链接与一般TCP连接有什么不同 handler机制 service与线程的区别 service中startservice与bindservice再停止时有什么区别 实现一个队列的方式 view的各自优势有哪些 view绘制过程。 view的分发机制 binder源码 git merge与git rebase的区别 B B-数树了解 Android动画有哪些。属性动画与补间动画的区别 OKhttp源码说一下 https的加密流程,CA证书怎么验证 http格式,常用状态码 对称加密算法,非对称加密算法 手撕代码,归并两个升序数组,说一下时间复杂度
腾讯
GC机制; RxJava有没有了解; 内存泄漏怎么排查; app的页面突然卡了一下,怎么排查? ANR怎么排查?定义是什么? 使用过哪些开源库; 对OKHttp有哪些了解?这个框架设计怎么样? Databinding有哪些了解? EventBus了解吗? 安卓的注解有什么了解? RelativeLayout和LinearLayout怎么选?为什么? 自定义Layout主要有那几个流程? 滑动过程卡顿,刷新率太低,怎么排查?
总结
面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责! 金九银十面试季,赶快去为自己的面试做足准备吧!
阅读更多
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!
喜欢就给个“在看”