logo头像

生而无畏,战至终章

volatile关键字

在java语言规范中对volatile的定义如下: Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。 简单点来说就是一个变量如果用volatile修饰了,...

RocketMQ安装

RocketMQ安装

开始安装RocketMQ之前,需要自行安装Maven,JDK,并配置好环境变量,具体的安装过程这里就省略了本文中使用的环境为:JDK: 1.8.0_91Maven: 3.5.3(印象中RocketMQ是对Maven版本有要求的)Roc...

CentOS7安装maven

下载maven点击下放链接下载即可Apache官方下载 解压安装12tar -zxvf apache-maven-3.3.9-bin.tar.gz mv apache-maven-3.3.9 maven (重命名文件夹,这一步骤可省略...

synchronized原理

synchronized原理

在遇到多线程情况下使用最多的synchronized,但它是一个重量级的锁,相对于Lock,它会显得有点笨重,但是自从JDK1.6开始已经对synchronized进行了各种优化,并没有之前版本那么重,下面来看看synchronize...

fast-fail机制

fast-fail机制,就是快速失败机制,它是java集合的一种错误检测机制,当多个线程对集合进行结构上的改变操作时,就有可能产生fast-fail机制(是有可能,而不是一定) fast-fail示例12345678910111213...

happens-before原则

happens-before原则

随着对java并发的越来越深入,到后面总会接触到happens-before规则。由于存在线程本地内存和主内存的原因,加上重排序,会导致多线程环境下的存在可见性的问题,我们无法保证所有的场景某个线程改的变量对其他线程可见,但是我们可以...

java集合框架之TreeSet

TreeSet介绍与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的,我们知道TreeMap是一个有序的二叉树,那么TreeSet肯定也是一个有序的,它的作用是提供Set集合。 本文源码均为JD...

java集合框架之HashSet

HashSet介绍对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素,若对Hashmap很熟悉,那么HashSet就很容易了 本文源码均为JDK1.8 HashSet源码解析定义HashSet继承...