前言
学习 Android 开发,首先要学习 java 基础知识,尤其是校招的时候非常注重基础,即使没有项目也没关系,基础一定要打好,一般笔试以及面试的第一轮,对基础的考察是比较多的。
这篇文章就来说说 Android 开发的第一步【筑基】的那些知识点,下文的内容大纲是与路线图配套的学习笔记,一共分为七大章节。需要路线图和学习笔记文档可以到文章末尾获取,还有更多 Android 大厂面试题同样可以免费获取!
第一章 深入Java 泛型
① 泛型的作用与定义 ② 通配符与嵌套 ③ 泛型的上下边界 ④ RxJava 中深入理解泛型
第二章 注解深入浅出
① 注解
- 注解确保编码的正确性
- 影响代码生成的注释
- Java 注解
② 元注解 ③ 自定义注解 ④ 默认参数值
⑤ API,编译时注解处理器
- 什么是APT?
- 哪里用到了APT?
- 如何在Android Studio中构建一个APT项目?
⑥ 插桩,编译后处理筛选
- 在AS中引入ASM
- 准备待插桩Class
- 执行插桩
⑦ 反射,运行时动态获取注解信息
- 什么是反射
- 反射调用
⑧ Retrofit 中的注解
- get 方式请求静态 url 地址
- post 方式请求静态 url 地址
- 半静态的 url 地址请求
- 动态的 url 地址请求
第三章 并发编程
① 基础概念
②线程之间的共享
③线程间的协作
- 什么是CAS?
- CAS(Compare And Swap)导致的ABA问题
④ 线程池的使用
- Java中的ThreadPoolExecutor类
- 深入剖析线程池实现原理
- 使用示例
- 如何合理配置线程池的大小
第四章 数据传输与序列化
① Serializable 原理
- 概念
- 用途
② Parcelable 的原理和使用方法
- Android源码中的Parcelable
- Parcel的简介
- Parcelable中的三大过程介绍(序列化,反序列化,描述)
- Parcelable的使用和实现
- Parcelable中对象和集合的处理
- Parcelable和Serializable的区别和比较
③ json
- json
- 数据结构
(路线图有点长,把它分成两部分贴)
第五章 Java 虚拟机原理
① 垃圾回收
- 如何判断对象已“死”
- 回收方法区
- 垃圾回收算法
② 内存分配策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- 长期存活的对象将进入老年代
- 动态对象年龄判定
- 空间分配担保
- 栈 VS 寄存器
- dex文件
③ Dalvik 虚拟机
- Dalvik指令
- Dalvik启动过程
- 程序的执行:解释与编译
- Dalvik上的垃圾回收
第六章 反射与类加载
① 反射
- 反射基本概念与三种获取 Class 对象的方式
- 获取构造器实例化对象与属性信息
- Android 配置打包签名信息的两种方法
② 类加载
- 动态代理模式
- Android 中的 Dalvik 和 ART
- ClassLoader 的构造函数
- 双亲委派机制
第七章 高效 IO
① 基于字节的 IO 操作 ② 基于字符的 IO 操作 ③ IO 常用类 ④ File 类