前言 了解 行为方法分派 有利于在行为分派时时进行一些功能操作 本文全面讲解行为分派的类型:静态 & 动态行为分派,希望你们会喜欢。 Carson带你学JVM系列文章,具体如...
前言 了解 行为方法分派 有利于在行为分派时时进行一些功能操作 本文全面讲解行为分派的类型:静态 & 动态行为分派,希望你们会喜欢。 Carson带你学JVM系列文章,具体如...
前言 最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下: 饿汉式...
新年的第一篇文章,没想到自己又回来了,经过慎重的考虑还是决定再讲一期《效能优化》。虽然去年刚发表过 《以后,江湖再见了》[https://www.jianshu.com/p/...
没了买房买车的压力,也结了婚,也没有再继续讲课了。这一年就是上上班健健身,旅旅游,感觉生活瞬间舒服了很多,工作没有什么太大压力,但这一年自己也陷入了迷茫。其实在鹅厂待个十年二...
先上个图: 首先先科普一下,目前软键盘设置大概有那么几种状态:1.软键盘弹出时,获取焦点的输入框会被顶起,整个界面往上移动,这种设置 2.软键盘弹出时,获取焦点的输入框被顶起...
RxJava2线程切换简单用例: 通过subscribeOn()方法指定被观察者的工作线程,以及observeOn()指定观察者的工作线程。 运行结果: Observable...
RxJava框架内部采用观察者模式,基于事件流的链式调用、逻辑简洁、使用简单,在Android开发中被广泛的使用。 简单用例: 创建被观察者。 创建观察者。 观察者订阅被观察...
OKHTTP异步和同步请求简单分析OKHTTP拦截器缓存策略CacheInterceptor的简单分析OKHTTP拦截器ConnectInterceptor的简单分析OKHT...
经过 Glide.with(xxx).load(xxx) 之后,最终会得到 RequestBuilder<Drawable>。因此 Glide.with(Context).i...
Glide调用with()方法初始化成功后,会返回RequestManager的实例。 1、RequestManager类中有多个load()的重载方法 2、asDrawab...
Glide的使用不需要显式的去初始化框架,其内部实现好了初始化。并且实现了图片加载的启动和结束与页面的生命周期绑定在一起。本篇文章源码分析基于Glide4.9.0 Glide...
最近发现在小米高系统版本的手机上,Toast的内容会自带应用名称的前缀;百度一下,发现的确不少这些反馈(万恶的小米系统开发...),看了几篇解决这个问题的文章,基本如下: 但...
前言 计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略 今天,我将详细讲解计算机网络中最重要的TCP协议,含其特点、三次握手、四次挥手、无差错传输等知识,希望你们会喜欢...
建议先回顾下之前四篇文章,这个系列的文章从前往后顺序看最佳: 《Android setContentView 源码解析》; 《Android LayoutInflater 源...
RB-Tree和AVL树作为BBST,其实现的算法时间复杂度相同,AVL作为最先提出的BBST,貌似RB-tree实现的功能都可以用AVL树是代替,那么为什么还需要引入RB-...
红黑树是一棵自平衡的二叉搜索树,因此在学习红黑树之前,我们需要回顾一下之前所学的知识二叉搜索树和平衡二叉树。 1.二叉搜索树 二叉搜索树又叫二叉查找树或者二叉排序树,它首先是...
概述: EventBus用于不同的Activity之间或者Activity与Service之间进行通信,非常的方便,即使是不同线程之间的数据发送,我们定义的数据接收方法也能收...