没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
架构师筑基必备技能
目录
第一章深入 Java 泛型..............................................................................................................................4
一、泛型的作用与定义................................................................................................................... 4
1.1 泛型的作用........................................................................................................................ 4
二、 通配符与嵌套......................................................................................................................... 6
2.1 通配符................................................................................................................................ 6
2.2 泛型嵌套............................................................................................................................ 6
三、泛型的上下边界....................................................................................................................... 8
3.1 < extends E >............................................................................................................... 8
3.2< super E >................................................................................................................... 10
四、RxJava 中深入理解泛型........................................................................................................ 11
T t;
...................................................................................................................................... 14
1:
..............................................................................................................................................16
2:
..............................................................................................................................................16
第二章注解深入浅出..............................................................................................................................20
一、注解(ANNOTATIONS)........................................................................................................... 20
1.1 注解确保编码的正确性.................................................................................................. 20
1.2 影响代码生成的注释.....................................................................................................22
1.3 Java 注解.......................................................................................................................22
二、元注解..................................................................................................................................... 24
三、自定义注解............................................................................................................................. 25
四、 默认参数值(DEFAULT PARAMETER VALUES)................................................................... 25
五、APT.......................................................................................................................................... 26
1.什么是 APT?...................................................................................................................... 27
2.哪里用到了 APT?.............................................................................................................. 27
3.如何在 Android Studio 中构建一个 APT 项目?.............................................................27
六、插桩......................................................................................................................................... 28
1.1、在 AS 中引入 ASM........................................................................................................32
1.2、准备待插桩 Class.......................................................................................................... 33
1.3、执行插桩........................................................................................................................34
七、反射......................................................................................................................................... 44
1.什么是反射.........................................................................................................................44
2.反射调用.............................................................................................................................45
八、Retrofit 中的注解................................................................................................................... 45
一、get 方式请求静态 url 地址....................................................................................................45
二、post 方式请求静态 url 地址..................................................................................................46
三、半静态的 url 地址请求...........................................................................................................47
四、动态的 url 地址请求...............................................................................................................48
五、总结小细节............................................................................................................................. 48
第三章 并发编程....................................................................................................................................49
一、基础概念................................................................................................................................. 49
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
二、 线程之间的共享................................................................................................................... 50
T result = (T)e.value;
................................................................................................................51
三、 线程间的协作....................................................................................................................... 52
e.printStackTrace();.................................................................................................53
一、什么是 CAS?.................................................................................................................. 55
二、CAS(Compare And Swap)导致的 ABA 问题...................................................................55
四、线程池的使用......................................................................................................................... 61
一
.Java
中的
ThreadPoolExecutor
类............................................................................................. 61
二
.
深入剖析线程池实现原理........................................................................................................ 61
三
.
使用示例.................................................................................................................................... 61
四
.
如何合理配置线程池的大小.................................................................................................... 61
一.Java 中的 ThreadPoolExecutor 类........................................................................................ 61
二.深入剖析线程池实现原理....................................................................................................... 69
1.线程池状态..........................................................................................................................69
2.任务的执行..........................................................................................................................69
3.线程池中的线程初始化......................................................................................................69
4.任务缓存队列及排队策略..................................................................................................69
5.任务拒绝策略......................................................................................................................69
6.线程池的关闭......................................................................................................................69
7.线程池容量的动态调整......................................................................................................69
1.线程池状态..........................................................................................................................69
2.任务的执行..........................................................................................................................70
三.使用示例.................................................................................................................................... 88
e.printStackTrace();.................................................................................................89
四.如何合理配置线程池的大小.................................................................................................... 93
e.printStackTrace();................................................................................................... 102
第四章 数据传输与序列化..................................................................................................................115
一、Serializable 原理.............................................................................................................. 115
1.概念....................................................................................................................................115
2.用途 对象的序列化主要有两种用途:..........................................................................115
二、Parcelable 的原理和使用方法.......................................................................................... 116
2.1 Android 源码中的 Parcelable................................................................................... 116
2.2 Parcel 的简介................................................................................................................. 118
2.3 Parcelable 中的三大过程介绍(序列化,反序列化,描述)............................................. 119
2.4 Parcelable 的使用和实现..............................................................................................124
2.5 Parcelable 中对象和集合的处理..................................................................................124
2.6 Parcelable 和 Serializable 的区别和比较....................................................................130
三 json......................................................................................................................................... 131
3.1 json................................................................................................................................. 131
3.2 数据结构........................................................................................................................131
第五章 Java 虚拟机原理.....................................................................................................................135
一、垃圾回收............................................................................................................................... 135
1、如何判断对象已“死”.................................................................................................135
2、回收方法区.....................................................................................................................141
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
3、垃圾回收算法.................................................................................................................142
二、内存分配策略....................................................................................................................... 147
1、对象优先在 Eden 分配................................................................................................... 147
2、大对象直接进入老年代.................................................................................................149
3、长期存活的对象将进入老年代.....................................................................................152
4、动态对象年龄判定.........................................................................................................154
5、空间分配担保.................................................................................................................156
栈 VS 寄存器.......................................................................................................................158
dex 文件................................................................................................................................ 160
三、Dalvik 虚拟机........................................................................................................................163
Dalvik 指令.......................................................................................................................... 163
Dalvik 启动过程.................................................................................................................. 170
1.
通过 startVm 方法启动虚拟机.................................................................................... 174
2. 通过 startReg 方法注册 Android Framework 类相关的 JNI 方法.......................... 174
3.
查找入口类的定义.......................................................................................................... 174
4.
调用入口类的 main 方法............................................................................................... 174
5.
处理虚拟机退出前执行的逻辑...................................................................................... 174
程序的执行:解释与编译........................................................................................................... 183
Dalvik 上的 JIT......................................................................................................................187
1. Method JIT................................................................................................................................187
2. Trace JIT.................................................................................................................................... 187
Dalvik 上的垃圾回收....................................................................................................................188
第六章反射与类加载............................................................................................................................194
反射............................................................................................................................................... 194
一、 反射基本概念与三种获取 Class 对象的方式.................................................................. 194
e.printStackTrace();................................................................................................... 196
二、获取构造器实例化对象与属性信息................................................................................... 196
e.printStackTrace();................................................................................................... 197
三、Android 配置打包签名信息的两种方法........................................................................... 200
第一种,直接配置:...........................................................................................................200
第二种,通过读取文件.......................................................................................................201
四、Hook 动态注入代码.............................................................................................................203
e.printStackTrace();................................................................................................... 206
类加载...................................................................................................................................207
一、动态代理模式....................................................................................................................... 207
二、Android 中的 Dalvik 和 ART.............................................................................................. 209
2.1 什么是 Dalvik?............................................................................................................ 209
2.2 Dalvik 和 JVM 有啥关系?........................................................................................... 209
2.3 什么是 ART?................................................................................................................210
2.4 ART 有什么优缺点呢?................................................................................................ 211
三、ClassLoader 的构造函数.................................................................................................... 211
3.1 BaseDexClassLoader 构造函数...................................................................................211
3.2 PathClassLoader 构造函数..........................................................................................213
3.3 DexClassLoader 构造函数........................................................................................... 215
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
四、双亲委派机制....................................................................................................................... 217
4.1 模型说明........................................................................................................................217
第七章高效 IO.......................................................................................................................................220
01 基于字节的 IO 操作............................................................................................................... 220
03 IO 常用类........................................................................................................................ 222
1 package io;...........................................................................................................................222
1 package io;.................................................................................................................. 226
04 File 类............................................................................................................................ 231
前言.......................................................................................................................................231
1.基本概念.................................................................................................................................... 232
2.构造方法.................................................................................................................................... 232
3.常用方法.................................................................................................................................... 232
(1).创建功能......................................................................................................................... 232
(1).基本获取功能................................................................................................................. 236
(2).迭代获取功能,过滤器功能......................................................................................... 237
(5).重命名功能..................................................................................................................... 239
第一章深入 Java 泛型
一、泛型的作用与定义
1.1 泛型的作用
使用泛型能写出更加灵活通用的代码
泛型的设计主要参照了 C++的模板,旨在能让人写出更加通用化,更加灵活的
代码。模板/泛型代码,就好像做雕塑时的模板,有了模板,需要生产的时候就
只管向里面注入具体的材料就行,不同的材料可以产生不同的效果,这便是泛型
最初的设计宗旨。
泛型将代码安全性检查提前到编译期
泛型被加入 Java 语法中,还有一个最大的原因:解决容器的类型安全,使用泛
型后,能让编译器在编译的时候借助传入的类型参数检查对容器的插入,获取操
作是否合法,从而将运行时 ClassCastException 转移到编译时比如:
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
更多录播视频+架构学习资料免费领取请加 Android 开发高级技术交流群 QQ 群:892872246
List dogs =new ArrayList();
dogs.add(new Cat());
在没有泛型之前,这种代码除非运行,否则你永远找不到它的错误。但是加入泛
型后
List<Dog> dogs=new ArrayList<>();
dogs.add(new Cat());//Error Compile
会在编译的时候就检查出来。
泛型能够省去类型强制转换
在 JDK1.5 之前,Java 容器都是通过将类型向上转型为 Object 类型来实现的,因
此在从容器中取出来的时候需要手动的强制转换。
Dog dog=(Dog)dogs.get(1);
加入泛型后,由于编译器知道了具体的类型,因此编译期会自动进行强制转换,
使得代码更加优雅。
1.2 泛型的定义
自 JDK 1.5 之后,Java 通过泛型解决了容器类型安全这一问题,而几乎所有人
接触泛型也是通过 Java 的容器。那么泛型究竟是什么?
泛型的本质是参数化类型
也就是说,泛型就是将所操作的数据类型作为参数的一种语法。
public class Paly<T>{
T play(){}}
其中 T 就是作为一个类型参数在 Play 被实例化的时候所传递来的参数,比如:
Play<Integer> playInteger=new Play<>();
这里 T 就会被实例化为 Integer
剩余241页未读,继续阅读
资源评论
hejunfeng814
- 粉丝: 16
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功