随笔分类 -  源码解析

第三方框架源码解读
摘要:同 HashMap 一样,LinkedHashMap 也是对 Map 接口的一种基于链表和哈希表的实现。实际上, LinkedHashMap 是 HashMap 的子类,其扩展了 HashMap 增加了双向链表的实现。相较于 HashMap 的迭代器中混乱的访问顺序,LinkedHashMap 可以 阅读全文
posted @ 2019-04-17 10:42 linghu_java 阅读(453) 评论(0) 推荐(0)
摘要:①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法 阅读全文
posted @ 2019-03-04 11:02 linghu_java 阅读(456) 评论(0) 推荐(0)
摘要:一. LruCache基本原理 LRU全称为Least Recently Used,即最近最少使用。由于缓存容量是有限的,当有新的数据需要加入缓存,但缓存的空闲空间不足的时候,如何移除原有的部分数据从而释放空间用来存放新的数据。 LRU算法就是当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删 阅读全文
posted @ 2018-11-28 20:04 linghu_java 阅读(1331) 评论(0) 推荐(0)
摘要:1,整体思路 从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式。全文基本上是对 OkHttp 源码的一个分析与导读,非常建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。对于技巧和范式,由于目前我的功力还不到位,分析内容没多少,欢迎大 阅读全文
posted @ 2018-09-07 22:12 linghu_java 阅读(335) 评论(0) 推荐(0)
摘要:今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。 网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇 阅读全文
posted @ 2018-08-07 14:49 linghu_java 阅读(452) 评论(0) 推荐(0)
摘要:从上面的代码可以看到key的hash值的计算方法。key的hash值高16位不变,低16位与高16位异或作为key的最终hash值。(h >>> 16,表示无符号右移16位,高位补0,任何数跟0异或都是其本身,因此key的hash值高16位不变。) 为什么要这么干呢? 这个与HashMap中tabl 阅读全文
posted @ 2018-07-30 11:41 linghu_java 阅读(1393) 评论(0) 推荐(0)
摘要:一直想研究下安卓各种布局控件,FrameLayout是安卓最简单的界面布局,所以就从FrameLayout讲起。 1.属性。frameLayout继承ViewGroup,除了拥有ViewGroup的属性之外,只有一个layout_gravity属性。看它的内部静态类LayoutParams: 1 p 阅读全文
posted @ 2018-06-08 20:56 linghu_java 阅读(1962) 评论(0) 推荐(0)
摘要:哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行 阅读全文
posted @ 2018-05-24 10:41 linghu_java 阅读(215) 评论(0) 推荐(0)
摘要:第一部分:What 在Java中一般通过继承Thread类或者实现Runnable接口这两种方式来创建多线程,但是这两种方式都有个缺陷,就是不能在执行完成后获取执行的结果,因此Java 1.5之后提供了Callable和Future接口,通过它们就可以在任务执行完毕之后得到任务的执行结果。本文会简要 阅读全文
posted @ 2018-05-04 17:49 linghu_java 阅读(3600) 评论(0) 推荐(0)
摘要:Future是我们在使用java实现异步时最常用到的一个类,我们可以向线程池提交一个Callable,并通过future对象获取执行结果。本篇文章主要讲述了JUC中FutureTask中的一些实现原理。使用的jdk版本是1.7。 Future Future是一个接口,它定义了5个方法: 简单说明一下 阅读全文
posted @ 2018-05-04 15:47 linghu_java 阅读(751) 评论(0) 推荐(0)
摘要:一、 android应用内消息传递的方式: 1. handler方式 不同线程间传递消息。 2. Interface接口回调方式 任意两个对象。 3. Intent进行组件间通信,广播方式。 二、单例比较好的写法: private static volatile EventBus defaultIn 阅读全文
posted @ 2018-04-29 15:00 linghu_java 阅读(3221) 评论(0) 推荐(0)