Hashmap的扰动函数

java的Hashmap里的hash方法里用到了扰动函数,我更喜欢称之为扰动计算。目的是为了减少hash冲突。思路是保留高位和低位特征Jdk7中的源码h =(h >>> 20)(h >>> 12);return h (h >>> 7)(h >
2021年09月06日 621次浏览

领域驱动架构(DDD)建模中的模型到底是什么?

要回答这个问题,需要三步走:为什么要建模;怎么建模才合理;“领域”模型具体指什么。为什么要建模客户在专卖店买了个手机,留下了自己的名字和电话,店员做了记录。客人来时,只要店员能在记录里查到客人名字和电话的订单,就说明客人曾经买过手机。什么人需要查看订单呢?店员 A 需要查看,店员 B 也需要查看。客
2021年09月05日 388次浏览

String.intern()详细分析(JDK1.8)

段落引用 前言   本文的测试环境是JDK1.8。段落引用String.intern()分析在文中偏后参考 https://blog.csdn.net/tyyking/article/details/82496901一.创建字符串分析1.直接使用双引号创建字符串判断这个常量是否存在于常量池,如果存在
2021年09月05日 386次浏览

MySQL游标分页与传统分页

传统分页通常在分页时(以 HTTP 协议 GET 方法举例),会携带两个可选参数,limit和offset。或者是携带一个 page 参数,如果是 limit,offset 参数,在后端从数据库获取数据时,便是直接的使用 LIMIT 关键字查询,如下使用 page 参数控制翻页的实现方式与上面大同小
2021年08月25日 1,519次浏览

什么是内存屏障?

当你看到“内存屏障”四个字的时候,你的第一反应是什么?寄存器里取出了错误的值?ifence,sfence之类的指令?还是诸如volatile之类的关键字?好吧,我第一次看到这四个字的时候,脑子里浮现出的是魔兽争霸里绿油油的铺满苔藓的岩石屏障- -#,并且,当我搞明白内存屏障具体是什么,而且自认为对其
2021年08月20日 432次浏览

堆内存超过32G时,为什么压缩指针失效

对象内存布局:对象头中的Class Pointer默认占8个字节,开启-XX:+UseCompressedOops后,为了节省空间压缩为4个字节,4*8=32位表示可寻址4G个对象,在内存空间小于32G时,可以通过编码、解码方式进行优化,使得jvm可以支持更大的内存配置。当堆内存大于32G时,压缩指
2021年08月18日 432次浏览

ES中的选举算法Bully 算法

前言分布式系统中有的各个节点的地位是均等的,有的是有 leader 和 flower。这种区分 leader 的集群更好管理些。这样在写操作的时候都交给 Leader 去处理,然后由 leader 再将数据同步给各个 flower 上的副本。如果同时对多个分布式节点写数据,势必不好进行数据同步。读的
2021年08月18日 976次浏览

Spring注册表之手动注册bean

一般情况下,我们Spring应用中的bean都是通过注解或者xml注入到容器中的,有些情况下我们可能想手动往容器中注入bean,即编程方式注入bean。本文所使用源码包版本:spring-beans-5.0.5.RELEASE.如何注册?Spring 中用BeanDefinition接口描述一个be
spring 2021年08月11日 515次浏览

java异步编程之ReactiveX开发

中文文档参考资料1参考资料2Rx(Reactive Extensions)历史是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C
2021年08月09日 521次浏览

Spring Boot 启用 http2 协议

Spring Boot 启用 http2 协议HTTP2是万维网(WWW)发布的HTTP网络协议主流版本,也是当前HTTP协议的最新版本(1997年发布的HTTP 1.1)。它来源于SPDY协议,最初由谷歌开发。1. HTTP2的优势所有主流的浏览器,如Chrome, Opera, Firefox,
协议 2021年08月04日 992次浏览