上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页
摘要: HashMap的实现原理 1.利用key的hashCode重新hash计算出当前对象的元素在数组中的下标。 2.存储时,如果出现hash值相同的key,此时有两种情况。(1)如果key相同,则覆盖原始值;(2)如果key不同(出现冲突),则将当前的key-value放入链表中。 3.获取时,直接找到 阅读全文
posted @ 2019-12-04 11:21 gaopengpy 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操 阅读全文
posted @ 2019-12-04 10:55 gaopengpy 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 使用SpringBoot同步微信公众号的粉丝详情,由于粉丝数量不多,一次拉取足矣,数量很多的话要改造为多线程模式。 项目结构如下: POM添加依赖: <!-- json工具类 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fa 阅读全文
posted @ 2019-12-02 16:31 gaopengpy 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 单例分为懒汉式和饿汉式: 饿汉式:类加载的时候,创建对象。 因此类加载速度慢, 线程相对安全。懒汉式:类加载的时候,不会创建对象,调用时才会创建对象。因此类加载速度快,线程相对不安全,一般要配合synchronized使用。 饿汉式: //饿汉式 public class HungarySingle 阅读全文
posted @ 2019-11-28 17:18 gaopengpy 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 采用LinkedHashMap的按照访问顺序来进行排序,最近访问的放在头部,最老访问的放在尾部的原理,当数据量大于指定的缓存个数的时候,就自动删除最老的数据。 import java.util.LinkedHashMap; import java.util.Map; public class LRU 阅读全文
posted @ 2019-11-27 19:31 gaopengpy 阅读(305) 评论(0) 推荐(0) 编辑
摘要: Idea常用快捷键大全 编写代码: Ctrl+Shift + Enter,语句完成 Shift+Enter,向下插入新行 Ctrl+Alt+L,格式化代码 Ctrl+Alt+B,跳转到接口方法实现处 Ctrl+Alt+V,可以引入变量。例如:new String(); 自动导入变量定义 Ctrl+X 阅读全文
posted @ 2019-11-27 14:14 gaopengpy 阅读(200) 评论(0) 推荐(0) 编辑
摘要: HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1、HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(H 阅读全文
posted @ 2019-11-27 09:22 gaopengpy 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 理想的状况,hashMap的存取就是O(1),也就是直接根据hashcode就可以找到它,每个bucket只存储一个节点,链表指向都是null,这样就比较开心了,不要出现一个链表很长的情况。 所以我们希望它能分布的均匀一点,如果让我们设计的话,我们肯定是直接对长度取模 hashcode % leng 阅读全文
posted @ 2019-11-24 17:46 gaopengpy 阅读(1089) 评论(0) 推荐(1) 编辑
摘要: HashMap的存取过程,当执行putVal的操作的时候, 1.首先检查大小,看是否需要扩容(默认元素超过最大值的0.75时扩容),如果需要扩容就进行扩容 2.然后计算出key的hashcode,根据hashcode定位数值所在的bucketIndex 3.如果该位置上没有元素,就直接插入,结束 4 阅读全文
posted @ 2019-11-24 17:43 gaopengpy 阅读(4353) 评论(0) 推荐(0) 编辑
摘要: HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。 JDK1.7中 HashMap是数组+链表的数据结构,JDK1.8中HashMap是数组+链表+红黑树的数据结构,JDK1.8的HashMap链表的长度超过8会转换 阅读全文
posted @ 2019-11-24 17:32 gaopengpy 阅读(1363) 评论(0) 推荐(1) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 22 下一页