- 博客(3)
- 收藏
- 关注
原创 HashMap的数组容量为什么是2的N次幂
HashMap的数组容量为什么是2的N次幂,首先我们要清楚数组的索引值是0到N-1,而hashCode的计算范围是42亿,也就是所有对象的hashCode有42亿种可能,我们要把它丢到这16的长度的数组里面时,我们应该怎么做?怎么将42亿种可能变为0到N-1种可能,通常我们会想到用取模的方法来计算,但是它有两个缺点:1、负数求余还是负数 2、 性能较慢(对比位运算)我们来看看HashMap源码是怎么做的,它用的是不是取模运算呢?向HashMap中添加元素,或者扩容时是怎么存放元素的。第一张图,向
2020-10-23 22:33:41 853 1
原创 哈希算法
哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法最重要的特点就是:相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。哈希算法的目的就是为了验证原始数据是否被篡改。Java字符串的hashCode()就是一个哈希算法,它的输入是任意字符串,输出是固定的4字节int整数:“hello”.hashCode(); // 0x5e918d2“hello, java”.hashCode(); // 0x7a9d88e
2020-10-16 14:53:11 676 1
原创 RestTemplate
一、什么是RestTemplate传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。spring提供了一种简单便捷的模板类来进行操作,这就是RestTemplate。package com.goldpac.vtm.modules.api.util;import com.goldpac.vtm.modules.api.pojo.vo.ApiParam;import com.goldpac.vtm.modules.api.poj
2020-10-12 16:45:34 210 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人