Java基础
- [ArrayList、LinkedList、Vector区别]
- [BlockingQueue与CountDownLatch]
- [Collections与Arrays]
- [Exception与Error包结构,OOM,SOF]
Java OOM - [HashCode作用]
- [Java 1.7和Java 1.8新特性]
- Java NIO
- Java基本数据类型及其相关操作
- Java的四种引用,强弱软虚,用到的场景
- Map、Set、List、Queue、Stack的特点与用法
- Map相关子类区别
- Object公有方法以及wait和sleep区别
- Override与Overload区别
- String相关内容学习
- foreach与for循环效率对比
- interface与abstract类的区别
- static关键字
- synchronized、lock、reentrantLock区别
- 关键字:transient、volatile
- 反射原理及应用
- 泛型特点及其类型转换
- 生产者消费者问题的五种实现
- 线程以及ThreadLocal
- 线程池的使用
- 解析XML的DOM与SAX以及PULL区别
- 锁的等级:方法锁、对象锁、类锁
- 面向对象的的特征和含义及多态实现原理
Android基础
- 在AndroidStudio中自定义Gradle插件
- Activity与Fragment的生命周期
- Activity卡顿原因
- Activity启动过程
- Activity四种启动模式与IntentFilter匹配规则
- Activtiy的状态保存
- Android 7 .0、6.0、5.0新特性
- Android内存优化方法
- Android动画
- Android文件缓存方法
- Android长连接,怎么处理心跳机制
- Asset与res/raw,res/drawable
- AsyncTask原理与使用
- Bitmap相关
- ContentProvider用法
- IntentService
- Json相比XML优劣势
- Looper、Handler、MessageQueue
- Merge与ViewStub布局标签
- OkHttp
- Service相关
- Sqlite的基本操作
- UIL原理解析
- Volley原理解析
- Zygote进程启动过程
- 启动Activity的几种方式
- 如何保证Service不被Kill
- 如何加速启动Activity
- 怎样退出终止App
- 插件化原理(以DL框架为例)
- 注册广播的两种方式
- 热补丁技术概括
- 自定义View,有这一篇就够了
- 通过自定义Gradle插件修改编译后的class文件
数据结构
- 各种排序算法复杂度对比
- 排序算法
- 数据结构基本概念及复杂度分析
操作系统
- IPC几种通信方式
- 什么是虚拟内存
- 死锁的必要条件,怎么处理死锁
- 段存储,页存储,段页存储
- 虚拟地址、逻辑地址、线性地址、物理地址的区别
- 进程与线程
- 银行家算法
计算机网络
- 3次握手和4次挥手过程
- HTTP响应报文格式及各种响应码
- HTTP请求报文格式
- Http1.1和Http1.0的区别
- Http怎么处理长连接
- IP地址分类
- OSI与TCP/IP各层的结构与功能
- Ping的整个过程。ICMP报文是什么?
- TCP与UDP区别及其各自优缺点
- TCP和UDP数据报格式
- TCP拥塞控制和流量控制
- http与https区别
- 打开一个网页,整个过程使用到哪些协议
- 滑动窗口与回退N针协议
- 路由器与交换机区别
数据库
- 关系数据库基本概念
- 关系模式的规范化
- 函数依赖与候选码的定义
- 数据库中数据查询
- 数据库查询优化
- 数据的添加、删除、修改
- 表的创建、修改表结构、删除表
JVM
- CAS是什么?
- GC收集器有哪些?
- GC的三种收集方法
- 内存模型以及分区
- 判断一个对象是否存活
- 双亲委派模型
- 对象的创建、内存布局、对象的访问定位
- 新生代老年代内存划分比例及其各自特点
- 类加载的五个过程
- 静态分派和动态分派