很久很久没写过源码解析了,不是自己没有看了,只是没有记录了,却发现不记录的话,似懂非懂,时间久了就忘得差不多了,用到了还是得再学一遍,忍住提笔一篇 TabLayout 源码学习
最近有一个需求需要做分割线,网上有一些大致的做法,但感觉都不是那么通俗易懂,然后自己想了想,干脆自己弄吧,后面发现了一个比较好的,非常简洁,分享给大家
本书旨在帮助您有效地使用 Java 编程语言及其基础库:java.lang,java.util 和 java.io,以及 java.util.concurrent 和 java.util.function等子包。 也会涉及到其他的类库
Unsafe 类一直是个很神秘的角色,我们普通开发者几乎不会碰到,顶多也是使用了并发包之类的系统类库,间接使用到了而已。那它到底是用来做什么的呢?它提供了我们直接操作内存的接口。Java 本身作为一个内存自动管理的工具,内存的开辟释放由虚拟机代为管理,然而,HotSpot 的设计者留下了 Unsafe 的类,用于扩展,它可以直接开辟内存,释放内存,读取任意地址的内存,而不受 Java 堆内存的限制。尽管如此,它并不能为我们所用,加载这个类只能由系统的类加载器执行,但我们可以通过反射获取到它的实例对象,Java 反射的确很牛啊
为什么会想写这东西呢?这是我们都非常常用的数据结构,然而平时除了添加,遍历操作,很少使用其他功能,即使是这样,我们也存在万般理由搞清楚他们的 API,这对于我们在编程时如何选择二者具有良好的指导意义。所以,我觉得好好看看这二者的区别
今天我们来看看 ArrayDeque,可以说,之前使用的队列的场景不多,所以也没有深入研究队列,但最近在做 LeetCode 的时候,很多时候使用队列会有想不到的功效,比如我们在写 BFS 广度优先遍历的时候,或者在写 二叉树的层次遍历,非递归前序,中序,后序遍历,都会用到这个结构,如果还不会的同学,赶紧去复习一波吧,非常总要,也能为你的笔面试加不少分
顾名思义,是一个 Service,先说和普通的 Service 的区别吧,普通的 Service 通常运行在主线程,而 IntentService 的处理逻辑在子线程里,另外 Service 需要自己去 destroy,而 IntentService 在处理完自己的逻辑时会自动结束,那他是怎么实现线程切换,主要还是 Handler 机制
最近在做爬虫的时候,遇到了去重的问题,关于去重,有很多地方可以做,比如, 内存级别,利用 hashmap,准确,性能好但是内存有限
最近偶然间看到了 Geohash 算法,才想起来之前自己做过的**附近**的功能简直不堪一击,竟然是计算所有与目标点的距离,再排序。想必有经验的人早就笑出声了吧,按照以前的水平,如果不这样做,那也得找出比较相近的,先不计算球面距离,然后得到一个小一点的集合,再计算距
RxJava 这个名字,想必做过 Android 的人都有所了解,简单的使用几乎不成问题,但里面的知识点却一向令人望而生畏,接下来几日我便想慢慢解开这层面纱