HashMap中的Hash冲突是怎么解决的?
HashMap中的Hash冲突是怎么解决的? HashMap在使用过程中,不可避免的会发生Hash冲突,那Java中是怎么解决这个问题的呢? 下面直接看源码 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node...
HashMap中的Hash冲突是怎么解决的? HashMap在使用过程中,不可避免的会发生Hash冲突,那Java中是怎么解决这个问题的呢? 下面直接看源码 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node...
java并发编程 Note: 文中的示例代码,基于JDK11 并发主要是解决三个核心问题的 原子性 典型的就是java代码中的i++,看着是一行代码,但是编译完了实际CPU执行的不是一条指令 可见行 一个线程对共享变量的修改,另外一个线程能立刻看到。实际中因为CPU缓存的问题,并不能立即看到。 有序性 程序执行的顺序不是按照代码的顺序来执行的,实际中编译器优化代码会改...
RocketMQ 介绍 官网 github 官方文档-设计 本文基于5.x版本来进行讲解操作 安装 源码/二进制文件安装 1 下载源码包 wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.0/rocketmq-all-5.1.0-source-release.zip 2 解压源码包并编译构建二进制可执行...
离散数学 定义和研究范围 https://zh.wikipedia.org/wiki/%E7%A6%BB%E6%95%A3%E6%95%B0%E5%AD%A6 离散数学(英语:Discrete mathematics)是数学的几个分支的总称,研究基于离散空间而不是连续的数学结构。与连续变化的实数不同,离散数学的研究对象——例如整数、图和数学逻辑中的命题——不是连续变化的,而是拥有不等、分立...
MySQL技术体系 介绍 官方文档 https://dev.mysql.com/doc/ 5.7文档 https://dev.mysql.com/doc/refman/5.7/en/ 8.0文档 https://dev.mysql.com/doc/refman/8.0/en/ 8.0版本已经日益成熟稳定,并做了大量的更新和bug修复,建议使用这个版本。 Mysql 安装 Docker安...
责任链模式/chain of responsibility Intent/目的 通过给予多个对象机会来处理请求,避免请求的发送者与接收者之间的耦合。将接收对象进行链式连接,并沿着链传递请求,直到有一个对象处理它。 Motivation/动机 考虑一个图形用户界面的上下文敏感帮助设施。用户可以通过单击界面的任何部分来获取帮助信息。提供的帮助取决于被选中的界面部分及其上下文;例如,对话框...
JVM 源码阅读 github openjdk-projects openjdk8-github JDK 11 Linux 编译源码 JDK 1.8 MACOS 编译源码 https://www.cnblogs.com/jhxxb/p/11094578.html 安装 mercurial brew install hg 或者 brew install mercuria...
Markdown基本语法 起源 John Gruber 在2004年创建了Markdown,并与Aaron Swartz合作定义了语法。目标是为了创建一种易读且易写的纯文本格式,并可以转换成XHTML或HTML。 语法 此语法翻译自官方文档 ,英语比较好的可以直接跳转到此网站来学习。 概览 哲学 Markdown旨在尽可能地易于阅读和编写。 但是,首先要强调可读性。Markd...
Nginx网站添加访问校验 背景 自己的网站需要做一个简单的访问权限校验,于是就想到了nginx可以做这个事儿。 随后就去网上搜了一下教程,结果没有几个说的比较全面的而且照做下来也没有成功,因此在这里做个记录,方便有需要的人能看到 过程 首先讲一下nginx的版本: 1.14.0 (如果版本不一样不保证我的教程是正确的)。 nginx使用的是ngx_http_auth_basic_m...
Dropbear搭建轻量级的ssh服务 背景 最近在学习hadoop,然后想在自己的Manjaro上安装一下,安装前发现执行ssh localhost 命令时提示 ssh: connect to host localhost port 22: Connection refused。 这是因为自己的电脑没有启动ssh的server端。 安装 dropbear是个非常轻量级的ssh ser...