摘要: 1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心, 阅读全文
posted @ 2018-01-25 10:49 田小波⊰ 阅读(13071) 评论(49) 推荐(174) 编辑
摘要: 1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外,LinkedHashMap 对访问顺序也提供了相关支持。在一些场景下,该特性很有用,比如缓存。在实现上,Lin 阅读全文
posted @ 2018-01-24 09:41 田小波⊰ 阅读(790) 评论(0) 推荐(1) 编辑
摘要: 一、概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行 阅读全文
posted @ 2018-01-22 09:51 田小波⊰ 阅读(2032) 评论(9) 推荐(11) 编辑
摘要: 一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很高。另一方面,由于 TreeMap 基于红黑树实现,这为 T 阅读全文
posted @ 2018-01-09 14:16 田小波⊰ 阅读(946) 评论(0) 推荐(1) 编辑
摘要: 1.红黑树简介 红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发明,在当时被称为 。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的 。红黑树具有良好的效率,它可在 时间内完成查找、增加、删除等操 阅读全文
posted @ 2018-01-06 16:33 田小波⊰ 阅读(6134) 评论(15) 推荐(3) 编辑
摘要: 1. 什么是短链接   顾名思义,短链接即是长度较短的网址。通过短链接技术,我们可以将长度较长的链接压缩成较短的链接。并通过跳转的方式,将用户请求由短链接重定向到长链接上去。短链接主要用在诸如微博,BBS等对帖子字数有限制的网站,通过使用短链接,用户可以把注意力放在帖子的内容上, 阅读全文
posted @ 2017-03-29 08:36 田小波⊰ 阅读(5951) 评论(4) 推荐(2) 编辑