随笔分类 - 01 新版 MarkDown
摘要:本文地址 目录 目录目录什么是内存泄漏为什么会发生内存泄漏发生内存泄漏的常见场景静态集合类的使用Listener、Receiver等监听器的引用非静态内部类对外部类的引用Handler引起内存泄漏案例分析Thread引起内存泄漏案例分析单例模式初始化后的对象数据库、网络、io流等连接优化内存的方法
阅读全文
摘要:本文地址 目录 目录目录Kotlin 不变性思维尽可能地消灭可变性使用条件表达式消灭 var使用数据类并消灭可变性尽可能对外暴露只读集合解决集合的可变性问题属性委托自定义 get 方法自定义对外暴露的方法使用 toList 解决集合强转问题Kotlin与Java的集合兼容性问题java.util.A
阅读全文
摘要:本文地址 目录 目录目录ThreadLocal 原理 源码分析ThreadLocal总结使用线程池的问题内存泄漏问题源码分析ThreadThreadLocal构造方法set() 方法get() 方法initialValue() 方法ThreadLocalMap基础结构Hash 算法Hash 冲突se
阅读全文
摘要:本文地址 目录 目录目录54 | 高性能队列 Disruptor 背后的数据结构和算法生产者-消费者模型基于循环队列的模型基于加锁的并发模型基于无锁的并发模型总结引申 54 | 高性能队列 Disruptor 背后的数据结构和算法 Disruptor 是一种内存消息队列,类似 Kafka。不过,和
阅读全文
摘要:本文地址 目录 目录目录WebView 加载网页 加载资源 总结loadData使用说明加载中文注意事项loadDataWithBaseURL使用说明baseUrl的用法解析loadUrlpostUrlevaluateJavascript加载各种类型的资源方法总结加载 assets 下的资源加载 r
阅读全文
摘要:本文地址 目录 目录目录RV 多样式 MultiType 聊天界面 消息类型纯原生实现多样式addHeaderView 方式ActivityAdapterModelgetItemViewType 方式ActivityAdapterModelMultiType 简介特性基础用法设计思想使用插件自动生成
阅读全文
摘要:本文地址 目录 目录目录Lambda 表达式基本语法Lambda 表达式中的局部变量启用 Lambda 表达式使用示例使用局限性 Lambda 表达式 Lambda 表达式也称为闭包,是匿名内部类的简短形式。 Lambda 表达式简化了单一方法声明接口的使用,因此 lambda 表达式也称为功能接口
阅读全文
摘要:本文地址 目录 25 | 集合操作符 Kotlin 的集合 API,本质上是一种数据处理的模式。可以分为几个大类:过滤、转换、分组、分割、求和。 场景模拟 为了研究 Kotlin 集合 API 的使用场景,我们先来模拟一个实际的生活场景:统计学生成绩。 data class Student(val
阅读全文
摘要:本文地址 目录 20 | Flow:为什么说Flow是冷的? Flow 是在 Kotlin 协程中自成体系的知识点。Flow 极其强大、极其灵活,在它出现之前,业界还有很多质疑 Kotlin 协程的声音,认为 Kotlin 的挂起函数、结构化并发,并不足以形成核心竞争力,在异步、并发任务的领域,Rx
阅读全文
摘要:本文地址 目录 目录目录56 如何实现一个短网址系统如何通过哈希算法生成短网址MurmurHash 算法如何让短网址更短如何解决哈希冲突问题如何优化哈希算法的性能B+ 树唯一索引布隆过滤器如何通过 ID 生成器生成短网址一个原始网址可能对应多个短网址如何实现高性能的 ID 生成器总结引申 56 如何
阅读全文
摘要:本文地址 目录 目录目录TabLayout ViewPager Fragment 简介 案例TabLayout 简介文档简介内部类和内部接口XML attributes公共方法两种模式默认样式测试代码ActivityXML布局定义的样式 TabLayout ViewPager Fragment 简介
阅读全文
摘要:本文地址 目录 目录目录Log 日志工具类 保存到文件Log 类简介一个超强工具类实验案例实验结果一个专门保存日志到文件的工具类一个简单封装的日志工具类一个保存日志到文件的工具类 Log 日志工具类 保存到文件 几个比较流行的开源库 logger 8K hugo 6K timber 5.5K XLo
阅读全文
摘要:本文地址 目录 目录目录OkHttp 官方wiki 翻译CallsRewriting Requests 重写请求Rewriting Responses 重写响应Follow-up Requests 后续请求Retrying Requests 重发请求总结Dispatch 调度ConnectionsU
阅读全文
摘要:本文地址 目录 目录目录Okhttp 简介 示例OkHttp简介官方 OverviewWorks with OkHttp示例代码get和post示例拦截器和证书示例retrofit okhttp RxJava 综合示例依赖网络请求接口定义Activity综合配置 Okhttp 简介 示例 OkHtt
阅读全文
摘要:本文地址 目录 目录目录倒计时 总结 Timer Handler CountDownTimer基础方案CountDownTimer [推荐]简介案例RxJava [推荐]Timer + Handler [麻烦]Timer + 普通 HandlerTimer + 静态 HandlerTimer + r
阅读全文
摘要:本文地址 目录 目录目录RV 判断滑到底部 顶部 预加载 更多 分页项目中的案例【预加载】项目中的另一个案例利用 lastVisibleItemPosition 判断【不靠谱】利用 computeVerticalScrollRange 等判断【不靠谱】利用 canScrollVertically(d
阅读全文
摘要:本文地址 目录 目录目录RV 数据刷新方式总结 局部刷新 模板代码数据刷新方式总结 局部刷新ActivityAdapter布局模板代码基础配置纯原生BaseRecyclerViewAdapterHelper水平或竖直分割线网格分割线 RV 数据刷新方式总结 局部刷新 模板代码 数据刷新方式总结 局部
阅读全文
摘要:本文地址 目录 目录目录Kotlin 带接收者的函数 implicit receiver 隐式接收者隐式接收者的概念场景一: 用于省略代码使用自带的 apply 函数使用普通的扩展函数使用带接收者的扩展函数方法对比场景二:提供上下文环境 Kotlin 带接收者的函数 implicit receive
阅读全文
摘要:本文地址 目录 目录目录RV BaseRecyclerViewAdapterHelper 总结添加依赖功能一览优化Adapter代码Item的点击事件添加列表加载动画添加头部、尾部加载更多自定义加载布局添加分组自定义不同的item类型设置空布局添加拖拽、滑动删除分组的伸缩栏自定义BaseViewHo
阅读全文
摘要:本文地址 目录 目录目录Kotlin 函数式编程编程范式Kotlin 函数式编程函数是一等公民纯函数局限性实战:函数式的循环使用递归实现循环尾递归 Kotlin 函数式编程 Kotlin 函数式编程 编程范式 函数式编程是一个跟面向对象编程类似的概念,它也是软件工程中的一种编程范式,它是声明式编程的
阅读全文