- 博客(185)
- 资源 (64)
- 收藏
- 关注

原创 从 Java 角度深入理解 Kotlin
本文从 Java 字节码角度深入理解 Kotlin, 让我们写的每行 Kotlin 代码在底层都代表着什么, 让我们写的 Kotlin 程序更加自信
2021-01-10 17:27:02
14525
8

原创 Android 性能优化 ~ 包体积优化实战
概述用户通常都不愿意去下载一个比较大的程序,特别是不在 WIFI 的情况下。如果你的安装包很小,用户还是愿意下载安装体验下的。现在市面上满足某种需求的 App 通常都会有很多款,如何让用户愿意下载你的 App 来体验?安装包越小,在 WIFI 情况下,极速下载安装,开始体验。在移动网络情况下,包体积越小,用户安装的的可能性越大。所以安装包大小对用户的转换率有很大的影响。接下来就和大家分享下我在实...
2020-03-29 23:54:27
5408

原创 Android Jetpack(三)LiveData 组件原理剖析
Jetpack 源码分析系列:Android Jetpack(一) Lifecycle 组件原理剖析Android Jetpack(二)ViewModel 组件原理剖析Android Jetpack(三)LiveData 组件原理剖析本文主要内容:LiveData 简介LiveData 案例LiveData 原理分析Retrofit 整合 LiveDataLiveData...
2020-02-15 20:42:58
2653

原创 Android Jetpack(二)ViewModel 组件原理剖析
本文详细介绍了 Jetpack ViewModel 组件的使用和原理分析。
2020-02-06 18:23:18
3944

原创 Android Jetpack(一) Lifecycle 组件原理剖析
本文详解介绍了 Jetpack Lifecycle 的使用以及原理剖析。
2020-02-05 21:39:25
5471

原创 Android Retrofit 源码系列(五)~ 设计模式分析
前段时间研究了下 Retrofit 框架,也写了一些关于 Retrofit 的文章:Android Retrofit 源码系列(一)~ 原理剖析Android Retrofit 源码系列(二)~ 自定义 CallAdapterAndroid Retrofit 源码系列(三)~ 整合 RxJava、Coroutine 分析Android Retrofit 源码系列(四)~ 文件上传在阅...
2020-01-27 15:16:34
2252

原创 Android Retrofit 源码系列(四)~ 文件上传
本文主要介绍了 Retrofit 多图文上传功能,以及上传过程中遇到的中文乱码问题,我们从网页端、Android客户端、服务器端、Retrofit 源码角度 来分析了产生的原因及解决方案。
2020-01-18 18:20:10
3984

原创 Android Retrofit 源码系列(三)~ 整合 RxJava、Coroutine 分析
前面我们介绍了 Retrofit 的基本原来以及如何自定义 CallAdapter。今天我们来看看 Retrofit 是如何整合 RxJava、Kotlin Coroutine 的。整合 RxJavaRetrofit 结合 RxJava 使用非常简单,只需要将接口方法的返回类型改成 Observable 即可:private interface UserService { // O...
2020-01-17 14:43:41
2178

原创 Android Retrofit 源码系列(二)~ 自定义 CallAdapter
本文详细介绍了 Retrofit 如何自定 CallAdapter 达到统一处理网络错误的目的。文章的最后还介绍了 CallAdapter 的执行原理
2020-01-12 13:18:04
6585

原创 Android Retrofit 源码系列(一)~ 原理剖析
本文以简单的案例为引子,从源码的角度,详细的介绍了 Retrofit 的整个执行过程,以及 Retrofit 里的一些核心概念如 动态代理、CallAdapter、Converter 等等
2020-01-11 11:17:00
3068

原创 2019 年终总结 ~ 逆风起航
时间过的很快,2019 年过去了,迎来了崭新的 2020。今天做一个 2019 年终总结,算是对 2019 年的一个交代。主要总结下 2019 年技术上的成长、读书、理财、时间管理方面的东西。技术关于 Kotlin翻开 2019 年第一篇博客,竟然是 2019-1-2 晚上 1:27 发表的,真不敢想象 2019 年初还这么作,不把健康放在心上。现在呢,嗯,10 点半就得睡觉了。20...
2020-01-01 14:00:01
2852

原创 深入理解 Java 虚拟机(六)~ Garbage Collection 剖析
本文详细介绍了 JVM 关于 Garbage Collection 相关的知识点。读完本文相信你对 JVM 的垃圾回收机制有一个全面而系统的了解。
2019-11-24 21:57:39
3127
1

原创 深入理解 Java 虚拟机(五)~ 对象的创建过程
本文详细介绍了对象的创建过程如类的加载、内存的分配和初始化,分配内存时的同步方式,对象的初始化操作。还介绍了对象的内存布局,如对象头、实例数据、对齐填充。最后介绍了 Hotspot 如何进行对象的访问定位。
2019-10-15 19:36:09
2659
1

原创 深入理解 Java 虚拟机(四)~ 各种容易混淆的常量池
本文详细介绍了 Java 中的常量和字面量的区别,字节码中的常量池和运行时常量池的区别,最后详细介绍了字符串常量池和 String.intern 方法
2019-10-13 20:43:43
3120

原创 深入理解 Java 虚拟机(三)~ class 字节码的执行过程剖析
本文详细介绍了 Java 内存区域结构,方法的调用及方法调用的指令,方法重载解析及动态分派的实现原理,还介绍了 Java 对动态类型的支持。最后介绍基于栈的指令集和基于寄存器的指令集的区别。
2019-10-11 18:54:22
2669

原创 深入理解 Java 虚拟机(二)~ 类的加载过程剖析
本文详细介绍了类的加载过程:加载、验证、准备、解析、初始化,重点介绍了和我们开发息息相关的类加载器,类加载器死锁问题。
2019-10-05 22:35:33
4172
1

原创 深入理解 Java 虚拟机(一)~ class 字节码文件剖析
本文分析了字节码文件的组成,如魔数、字节码版本、常量池、字段、方法、属性等,还介绍了 invokeDynamic 指令,并分析了其实现原理;接着分析了字节码指令集, 并通过一个案例分析了其对应的指令,每执行完一个指令,展示其对应的操作数栈和局部变量表的情况。最后通过分析字节码的方式知道实际开发工作,加深对 Java 语言的理解深度,帮助我们编写更好的 Java 代码。
2019-09-30 16:31:59
7494
12

原创 Java设计模式实战 ~ 深入理解代理模式
本文详细介绍了静态代理、动态代理,还详细分析了 JDK 动态代理的源码分析,最后介绍了代理模式和装饰模式的区别
2019-09-16 21:08:01
2924
2

原创 Java设计模式实战 ~ 装饰模式探究
本文详解介绍了装饰模式的原理、使用场景,通过日志案例介绍装饰模式的优势,最后分了装饰模式和适配器模式的区别
2019-09-15 12:08:25
7652
5

原创 Java设计模式实战 ~ 适配器模式分析与实战
本文详细介绍了适配器模式的原理、使用场景、优点,以及缺省适配器模式。最后通过真实案例介绍适配器模式的使用
2019-09-13 20:19:32
2278

原创 Java设计模式实战 ~ 工厂模式剖析与实战
本文详细介绍了工厂模式中的简单工厂模式、工厂方法模式、抽象工厂模式。简单工厂模式优点和缺点,然后引出工厂模式,由于无法很好应对多个产品等级结构的问题,引出了抽象工厂模式,以及它的应用场景。
2019-09-12 18:01:08
2780
1

原创 Java设计模式实战 ~ 深入理解建造者模式与实战
本文介绍了建造者模式的基本原理、建造者模式的演化、建造者模式与重叠构造函数/JavaBeans 模式的对比,还深入分析了建造者模式与静态工厂在真实案例的选择,最后通过真实项目演示了建造者模式的使用
2019-09-09 23:52:21
2451
1

原创 Java设计模式实战 ~ 单例模式分析与实战
本文介绍了单例模式的 5 种实现方式:饿汉、懒汉、DCL、静态内部类、枚举方式,最后介绍了 Android 开发中一个应用单例模式的场景
2019-09-08 21:23:35
4768
9

原创 Java设计模式实战 ~ 观察者模式分析与实战
本文主要介绍了观察者模式的原理、使用场景、JDK中的观察者模式、观察者模式的缺点、最后介绍了观察者模式在项目中的实践
2019-09-07 22:52:18
3013

原创 Java设计模式实战 ~ 模板方法模式分析与实战
本文介绍了日常开发中常用到的模板方法模式,详细介绍了模板方法模式的定义、优点、使用场景。最后通过项目中真实案例来讲解如何使用模板方法模式
2019-09-06 18:01:35
2818

原创 Java设计模式实战 ~ 面向对象 6 大设计原则剖析与实战
本文介绍了设计模式的基本分类、通过案例的方式介绍面向对象的 6 大设计原则,最后通过项目案例分析如何使用面向对象的设计原则
2019-09-05 20:09:41
5729
11

原创 Android MVP 架构改造 ~ 如何重用顶层业务
本文介绍了常规 MVP 在复杂业务中遇到的比较大的问题,通过多个业务案例改在 MVP 架构以应对复杂的业务需求。
2019-03-01 10:19:03
3813

原创 数据结构与算法(十四)深入理解红黑树和 JDK TreeMap 和 TreeSet 源码分析
本文从 2-3 树再到 2-3-4 树讲解红黑树的起源、《算法4》和《算法导论》里红黑树的差异以及红黑树 5 条基本性质的原理分析,最后对 JDK 中基于红黑树数据机构的 TreeMap 和 TreeSet 进行源码分析
2018-07-14 18:10:50
3413
3

原创 二维火 Android 云收银模块化架构实践
本文介绍了二维火 Android 云收银组件化架构的演进,解决组件化路由问题以及业务模块依赖问题
2017-10-25 20:23:45
13140
4

原创 Android 架构 ~ MVP 架构在 Android 中的实践
本文通过登录案例介绍了 MVP 架构在 Android App 中的实践和使用心得,同时也在 优快云 首页推荐
2017-01-30 16:05:08
15177
9

原创 Android 性能优化 ~ 内存篇
一、android官方一些内存方面的内存tips二、使用 ArrayMap、SparseArray代替HashMap三、Thread与Thread Pool线程池四、IntentService与Service五、避免常见的内存泄露六、onTrimMemory(int level)与onLowMemory()
2017-01-12 14:01:49
5104
原创 Kotlin return 和 loop jump
至此,我们就介绍完了 kotlin 中的 return 及经典循环和 forEach 中的 return、break、continue。
2023-09-02 11:10:33
1063
原创 Kotlin inline、noinline、crossinline 深入解析
主要内容:如果有C语言基础的,inline 修饰一个函数表示该函数是一个内联函数。编译时,编译器会将内联函数的函数体拷贝到调用的地方。我们先看下在一个普通的 kotlin 函数上使用 inline 关键字:会发现 IDE 会给出警告:建议我们在高阶函数上使用 inline 关键字。好,那我们来看下高阶函数。下面是一个简单的高阶函数,函数参数是一个 function type 类型:编译后对应的 Java 代码为:会将 function type 编译成 Function0 类型,因为 action:
2023-09-02 09:55:39
1349
原创 Android组件化治理(二)组件代码管理
本文对应的视频版本可以查看我的 bilibili 视频链接 《Android组件化治理(二)组件代码管理》,欢迎如果对您有帮助可以一键三连哦~ Android组件化治理(二)组件的代码管理 背景随着组件越来越多,组件的代码管理也变得比较麻烦。例如 clone 代码,如果项目有几十上百个组件,我们不可能挨个执行 git clone,这样效率太低了,所以我们需要一套管理组件代码的工具。.
2022-05-05 19:57:53
1187
1
原创 Kotlin入门到精通(实战)数组的创建和操作详解
<<< 返回专栏总目录本章目录数组的创建方式方式1方式2方式3方式4创建多维数组数组的操作map 操作flatMap 操作fold 操作associate 操作associateBy 操作distinct 操作distinctBy 操作数组的创建方式方式1通过 Array 类来创建数组。Array 类的声明如下:public class Array<T>其中泛型参数 T 就是数组的元素类型。既然是使用到了泛型,那么里面的元素都是复杂类型。我们可以通过 Array
2021-04-14 21:47:31
1964
原创 Kotlin入门到精通(实战)基本类型和访问修饰符详解
<<< 返回总目录本章目录Kotlin 数据类型1. 如果变量可以为null(使用操作符`?`),则编译后是包装类型2. 如果使用了泛型则编译后是包装类型,如集合泛型、数组泛型等3. 如果想要声明的数组编译后是基本类型的数组,需要使用 xxxArrayOf(...),如 intArrayOf4. 为什么 Kotlin 要单独设计一套这样的数据类型,不共用 Java 的那一套呢?Kotlin 访问修饰符1. internal 修饰符是 Kotlin 独有而 Java 中没有的2. prot
2021-04-14 14:09:08
1236
原创 Kotlin入门到精通(实战)- 空安全和实战技巧
1、空安全Kotlin 中包含可空类型(Nullable types)和不可空类型(Non-Null Types),任何复杂类型都包括可空类型和不可空类型,例如下面的 String 类型:fun main() { var name: String? // 可空类型 var name2: String // 不可空类型}类型后面加上? 则表示可空类型,否则是不可空类型。对于不可空类型不能将 null 赋值给它。fun main() { var name: String? /
2021-01-23 19:27:46
1434
3
原创 Kotlin入门到精通(实战)- 流程控制(二)透彻解析 return、break、continue
由于 Kotlin 有 Lambda,匿名函数等概念,使得在 Kotlin 中 return 和 jump 相对于 C 语言稍微复杂点,本篇文章就给大奖讲清楚 Kotlin 中的 return 和 jump 的各种情况的用法。常见的 return 和 jump,主要包含 return、continue、break。return官方对 return 的介绍:By default returns from the nearest enclosing function or anonymous functi
2021-01-23 16:20:46
1443
3
smack源代码
2012-07-05
(统计代码量)projectCodeInfo_plugins.rar
2012-06-20
Java.Concurrency.in.Practice(java多线程)
2012-05-18
算法导论(第三版)
2018-06-27
pro git2 中英文版(2本)
2018-06-26
数据结构和Java集合框架(英文版)
2018-04-20
算法-第4版-完整版
2018-03-18
Java Software Structures.Designing and Using Data Structures
2018-03-18
MQTTAndroid客户端AndroidPushNotificationsDemo
2013-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人