摘要:
HashMap简介 HashMap基于哈希表的Map接口实现。是以key-value存储形式存在。线程不安全。key和value都可以为null,无序 JDK1.8之前由数组+链表组成,数组是HashMap主体,链表则主要是为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计 阅读全文
摘要:
dump.rdb是由Redis服务器自动生成的默认情况下,每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dum 阅读全文
摘要:
这一期我们来讲解高并发环境下,HashMap可能出现的致命问题。 HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。 这时候,HashMap需要扩展它的长度,也就是进行Resize。 影响发生Resize的因素有两个: 1. 阅读全文
摘要:
———————————— 众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。 HashMap数组每一个元素的初始值都是Null。 对于HashMap,我们最常使用的是 阅读全文
摘要:
HashMap的底层数据结构? 数组+链表(JDK1.8之前) , 数组+链表+红黑树(JDK1.8之后) HashMap的存取原理? 通过获取key对象的hashcode计算出该对象的哈希值,通过改哈希值与数组长度减去1进行位与运算(n-1 & hash),得到buckets 的位置,当发生has 阅读全文
摘要:
核心的概念 map是entry的集合,一个key、value就是一个entry 图解 Java在处理hash冲突的时候使用了链表 图中的0到10号 的方块就是entry(键值对),如果发生hashcode的冲突,就会像4号方块那样,开始向后追加,注意看4号方块的next的属性,那个属性不是null, 阅读全文
摘要:
MD5现在是用来作为一种数字签名算法,即A向B发送数据m,为了让B确信数据是A送来的并且没有被篡改于是A就是用hash算法将数据散列一并发送给 B。B接收到文件以后也用相同的hash算法校验数据是否被修改。主要是防止数据被修改的。MD5值的重复就是所谓的碰撞。 获取文件的MD5码 System.ou 阅读全文
摘要:
cat 文件名 | grep -C 20 '关键字' 显示文件里匹配关键字那行以及上下20行 cat 文件名 | grep -B 20 '关键字' 显示关键字及前20行 cat 文件名 | grep -A 20 '关键字' 显示关键字及后20行 例如: 在catalina.out文件内容中找到关键字 阅读全文