Java中HashMap源码分析
HashMap的结构
HashMap是由数组,链表,红黑树组成的。
HashMap会把Key进过计算(**hash & (length - 1)**)得到一个索引,再按照索引值存入哈希表中。
如果有两个Key值计算出来的索引一致(哈希冲突),则会形成一个链表。
如果链表长度大于8,这是查询效率会变慢,链表就会转化为红黑树,提升查询效率。
数组的默认容量为16,如果整个HashMap存放的节点数大于某个值,这时候HashMap已经链化严重,查询效率低,对HashMap进行扩容(容量翻倍)能缓解hash冲突,链化严重。
成员变量1234567891011121314151617181920212223static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16static final int MAXIMUM_CAPACITY = 1 << 30;static final float DEFAULT_LOAD_FACTOR = 0.75f;static final int TREEIFY_THRE ...
Java中LinkedList源码分析
成员变量12345transient int size = 0;transient Node<E> first;transient Node<E> last;
我们看到LinkedList的成员变量只有3个,比ArrayList还要少。
size:链表大小。
first:Node类的引用,指向表头
last:Node类的引用,指向表尾
1234567891011private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; }}
其中Node是一个内部类
item:节点数据
next:下一个节点
prev:上一个 ...
Hexo+butterfly主题集成Gitalk的坑
问题原因前些天正用Hexo + GitHub Pages做了一个博客,还为博客添加了butterfly主题,然后就想给博客添加一个评论系统。
发现GitHub提供了一个免费的评论系统,而且butterfly也是支持的。
然后就在网上根据别人的教程一顿操作。
完成后兴冲冲得跑去看效果,发现博客并没有出现评论区域。
又百度了半天想看看别人是怎么解决的,发现并没有什么效果。
网上一般都是解决Gitalk报错,或者Gitalk设置的问题,然而我的Gitalk并没有报错,而实根本没有。
我就怀疑不是Gitalk问题,而实butterfly主题配置出现问题,导致Gitalk并没有使用上。
解决方法修改butterfly主题配置文件themes\butterfly_config.yml
首先我在配置Gitalk的地方加上了enable: true
发现并没有什么效果
然后我把配置文件往上翻,完整查看了评论配置的内容,发现了以下这一段
这里明显就是叫我们选择使用什么评论系统啊!!
然后我们在这加上**- Gitalk **
再重新把博客发送到GitHub上,发现评论区终于出现了
注意!!这里- ...
Java中ArrayList源码分析
成员变量我们查看ArrayList源码发现成员变量并不是很多
123456789101112131415161718192021222324252627282930313233private static final long serialVersionUID = 8683452581122892189L;/** * Default initial capacity. */private static final int DEFAULT_CAPACITY = 10;/** * Shared empty array instance used for empty instances. */private static final Object[] EMPTY_ELEMENTDATA = {};/** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA to know how much to i ...
Java拆箱与装箱
基本数据类型和包装类Java八种基本数据类型分为四类八种,四类分别为整型、浮点型、布尔型、字符型;八种分别为byte、short、int、long、float、double、boolean、char;
基本数据类型
包装类
字节数
位数
范围
默认值
整形
byte
Byte
1
8
-127,128
0
sort
Sort
2
16
-2^15,2^15-1
0
int
Integer
4
32
-2^31,2^31-1
0
long
Long
...
如何使用Hexo+GitHub搭建自己的个人博客
一、安装Nodejs1.下载安装包Nodejs下载地址
2.安装一路选择默认安装,最好选择自己比较熟悉和清楚的安装路径,即可。
3.测试检测node输入命令:
1node -v
检测npm输入命令:
1npm -v
4.安装淘宝的cnpm 管理器1npm install -g cnpm --registry=http://registry.npm.taobao.org
二、安装hexo框架1.使用cnpm安装hexo1cnpm install -g hexo-cli
查看hexo版本
1hexo -v
2.使用hexo生成博客项目在自己喜欢的位置创建一个文件夹,博客中所有的文件都会保存在这个文件夹中。如果中通出现错误,或者想重来,直接删除该文件夹就可以了。
进入文件夹,输入命令,生成博客并初始化
1hexo init
该命令会去GitHub上克隆所需要的文件,完成后可以看见文件夹下多出了许多文件
3.启动本地博客服务1hexo s
启动完成后在本地4000端口就可以预览博客了
三、将博客托管到GitHub1.登录GitHub并新建一个仓库
注意仓库 ...