自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nrsc

Java进阶之路

原创 【redis知识点整理】 --- redis事务简介
原力计划

文章目录

2020-05-29 00:09:43 28 0

原创 【redis知识点整理】 --- 从guava源码的角度简单聊聊布隆过滤器
原力计划

本文代码对应的github地址:https://github.com/nieandsun/redis-study 前段时间项目里加上了布隆过滤器,本文简单从guava源码的角度做一些分析 —》 其实主要是为自己答疑解惑!!! 文章目录1 布隆过滤器在互联网环境的使用场景简介2 布隆过滤器的原...

2020-05-27 02:09:11 838 4

原创 【redis知识点整理】 --- springboot2.X使用lettuce连接池集成redis
原力计划

不出意外的话,很多公司操作redis应该还是使用的jedis。 当然应该也有公司比较能耐,直接把操作redis的所有方法进一步封装成API或Utils类,然后打成jar包,做成服务供多个部门使用 —》 然后开发者就不必关心真正与redis交互的细节了。— 其实我们公司就是这种姿势!!! 不知道其...

2020-05-26 21:43:27 101 0

原创 【redis知识点整理】 --- Redis的持久化
原力计划

redis 支持 RDB 和 AOF 两种持久化机制, 持久化可以避免因进程退出而造成数据丢失。 文章目录1 RDB持久化 --- redis默认开启的持久化方式1.1 RDB持久化机制 --- 手动触发1.2 RDB持久化机制 --- 自动触发1.3 bgsave运行流程 --- RDB...

2020-05-25 00:27:58 104 0

原创 【redis知识点整理】---centos7下redis的安装 、启动、连接和关闭
原力计划

最近遇到一个线上bug,关系到了fastjson、dubbo、 redis 和 泛型,之所以这样说,是因为排查问题 到 解决问题的思路大致如此 —> 我觉得我之后应该会抽出时间写一篇博客,聊聊这个事 —> 但是最近实在太忙了,很多想整理的东西,现在都没时间进行整理了。。。 最近打...

2020-05-22 01:36:05 130 0

原创 【消息中间件】--- RocketMQ消费者简介(集群、广播消费,推模式,拉模式)
原力计划

本文对应源码地址:https://github.com/nieandsun/rocketmq-study rocketmq官网:https://rocketmq.apache.org/docs/quick-start/ rocketmq github托管地址(这里直接给出的是中文docs地址):h...

2020-05-18 02:07:42 143 0

原创 【消息中间件】--- RocketMQ核心概念介绍 + 生产者简介 + 消息存储简介
原力计划

本文对应源码地址:https://github.com/nieandsun/rocketmq-study rocketmq官网:https://rocketmq.apache.org/docs/quick-start/ rocketmq github托管地址(这里直接给出的是中文docs地址):h...

2020-05-17 19:41:02 196 0

原创 【并发编程】--- 线程池七大参数+四种拒绝策略 + 如何合理配置线程数等简介
原力计划

源码地址:https://github.com/nieandsun/concurrent-study.git 文章目录1 线程池七大参数2 RejectedExecutionHandler--- 四种拒绝策略(官方提供)3 threadFactory --- 线程工厂相关的注意事项4 如何自己...

2020-05-13 22:14:54 83 0

原创 【并发编程】--- 阻塞队列(BlockingQueue)简介
原力计划

源码地址:https://github.com/nieandsun/concurrent-study.git 文章目录1 阻塞队列的含义2 为什么用? 有什么好处?3 常用的BlockingQueue3.1 ArrayBlockingQueue简介3.2 LinkedBlockingQueue...

2020-05-12 01:00:19 86 0

原创 【并发编程】 --- 从五个维度对比synchronized关键字和Lock

文章目录维度1 --- 从原始构成上来说维度2 --- 从使用方法上来说维度3 --- 从等待是否可中断上来说维度4 --- 从加锁是否公平角度来说维度5 --- 从线程间的通信来说 维度1 — 从原始构成上来说 synchronized是关键字,属于JVM层面 Lock是具体类(java.u...

2020-05-10 20:11:40 50 0

原创 【并发编程】 --- Lock/Condition完成生产者消费者模式+ABCABC顺序打印问题
原力计划

源码地址:https://github.com/nieandsun/concurrent-study.git 文章目录1 生产者消费者问题2 ABCABC。。。三个线程顺序打印问题2.1 基本不费脑子的实现方式 --- 且比较容易感受到定点通知的含义2.2 比较灵活的方式 1 生产者消费者问...

2020-05-10 19:32:04 77 0

原创 【并发编程&JVM】--- 强软弱虚四种引用 + ThreadLocal内存泄漏原因分析
原力计划

文章目录【1】强软弱虚四种引用【1.1】强引用【1.2】软引用【1.3】弱引用【1.4】虚引用【2】ThreadLocal内存泄漏问题分析 本篇文章整理自马士兵老师的公开课(哔哩哔哩) 【1】强软弱虚四种引用 【1.1】强引用 平时new出来的对象,只要有引用在即使发生GC也回收不了 【...

2020-05-08 01:04:51 90 0

原创 【并发编程】 --- Reentrantlock源码解析5:再探不可中断性 + 线程unpark后诡异的Thread.interrupted()判断
原力计划

文章目录1 想要读懂这篇文章必须要拥有的前置知识2 想些这篇文章的原因3 困扰我很久的Reentrantlock源代码1 --- 貌似无用的变量failed4 困扰我很久的Reentrantlock源代码2 --- unpark后为啥要来个Thread.interrupted();5 小记 源...

2020-04-12 19:47:53 162 1

原创 【并发编程】 --- Reentrantlock源码解析4:公平锁加锁过程中 [判断当前线程是否要排队的具体细节] 超详细解析
原力计划

文章目录1 简单回顾2 高并发环境下当前线程使用公平锁判断自己是否要排队的具体细节2.0 源码 + 宏观分析2.1 h != t2.1.1 h != t 不成立时(即h等于t时) ---> 不用排队的原因2.1.1.1 情况1 ---> h和t都等于null ---> 不用排...

2020-04-11 22:44:52 234 1

原创 【并发编程】 --- Reentrantlock源码解析3:公平锁释放锁过程超详细解析
原力计划

文章目录1 公平锁释放锁的过程1.1 从源码中看公平锁释放锁的过程1.2 以源码为基础总结出的公平锁释放锁的流程2 需要思考的问题2.1 问题1 --- 释放锁的过程中有可能导致尾节点的ws为-1么 ---> 不可能2.2 问题2 --- 公平锁加锁和解锁的过程还有值得探究的地方么? ---...

2020-04-11 10:30:34 393 1

原创 【并发编程】 --- Reentrantlock源码解析2:公平锁加锁过程超详细解析
原力计划

文章目录1 前情回顾 --- 同步方法交替执行时Reentrantlock公平锁的逻辑2 源码地址:https://github.com/nieandsun/concurrent-study.git 1 前情回顾 — 同步方法交替执行时Reentrantlock公平锁的逻辑 前面一篇文章《【...

2020-04-10 00:48:41 216 5

原创 【实用小代码】 --- 循环中删除数组中指定元素的正确姿势

文章目录1 抽象出来的题目2 错误的示范2 正确的答案 今天写一个前端逻辑的时候碰到了这种情况,并在前端小姐姐面前装了一把☺☺☺ 并且这个问题貌似我在实际开发中碰到的次数还是挺多的,所以记录一下,但是用的语言是java —》 重要的是思想!!! 1 抽象出来的题目 假设有如下数组,数组中的...

2020-04-07 19:48:37 118 0

原创 【并发编程】 --- synchronized锁的升级过程 + JDK1.6对synchronized关键字的其他优化简介
原力计划

文章目录 源码地址:https://github.com/nieandsun/concurrent-study.git

2020-04-06 14:38:42 156 0

原创 【并发编程】 --- 原来java对象的布局是可以被这样证明的!!!
原力计划

文章目录 源码地址:https://github.com/nieandsun/concurrent-study.git

2020-04-05 15:24:04 348 1

原创 【并发编程】 --- Reentrantlock源码解析1:同步方法交替执行的处理逻辑
原力计划

文章目录1 Reentrantlock前置知识1.1 理清代码同步的本质1.2 Reentrantlock的核心三板斧1.2.1 Compare And Swap(CAS) --- 保证同一时刻只有一个线程可以抢到锁1.2.2 park & unpark --- 让竞争不到锁的线程立刻...

2020-04-04 23:40:51 1159 6

原创 【并发编程】 --- 从JVM源码的角度进一步去理解synchronized关键字的原理
原力计划

文章目录1 openjdk源码下载2 monitor对象简介 上篇文章《【并发编程】 — 从字节码指令的角度去理解synchronized关键字的原理》从字节码指令的角度讲解了synchronized关键字的原理,从中可以知道其实synchronized关键字真正锁的是锁对象关联的monitor对...

2020-04-04 01:54:52 209 0

原创 【并发编程】 --- 从字节码指令的角度去理解synchronized关键字的原理
原力计划

文章目录1 synchronized关键字反汇编指令 源码地址:https://github.com/nieandsun/concurrent-study.git 不知道大家有没有这样一种感觉,对于synchronized关键字我(1)会使用,(2)懂原理,但仍然还是想找到官方的证明,告诉自己...

2020-04-02 13:31:14 169 0

原创 【并发编程】 --- synchronized/ReentrantLock两大特性(可重入性和不可中断性)介绍
原力计划

文章目录1 可重入特性1.1 可重入的含义及synchronized可重入特性演示1.2 简单说一下synchronized可重入原理2 synchronized不可中断特性 --- interrupt和stop都不可中断2.1 不可中断的含义及synchronized不可中断特性演示2.2 ...

2020-03-29 18:32:06 192 0

原创 【并发编程】 --- Runnable、Callable、Future和FutureTask之间的关系
原力计划

文章目录1 创建一个线程的方式到底有几种???2 如何使用FutureTask 、Future、Callable、线程池实现线程2.1 FutureTask + Callable实现多线程2.2 线程池+Future+Callable 实现多线程3 Runnable、Callable、Futur...

2020-03-28 18:00:34 396 0

原创 【并发编程】 --- Semaphore原理简介 + 使用方法
原力计划

文章目录1 原理简介2 基本使用方法2.1 demo1 --- 每次获取一个许可,将线程并发数控制为N个2.2 demo2 --- 每次获取多个许可(或者说所有可获取的许可),使线程并发数变为13 其他玩法3.1 demo3 --- 尝试获取许可,如果获取不到,直接舍弃 ★★★3.2 dem...

2020-03-28 00:33:28 163 0

原创 【并发编程】 --- CyclicBarrier原理简介 + 使用方法
原力计划

文章目录1 原理简介1.1 CyclicBarrier屏障原理1.1.1 await为空参时1.1.2 await传入时间参数时1.2 CyclicBarrier中的循环是什么意思2 CountDownLatch和CyclicBarrier简单比较3 具体使用方法3.1 demo1 --- awi...

2020-03-26 11:59:47 453 2

原创 【并发编程】 --- CountDownLatch原理简介 + 使用方法
原力计划

文章目录1 原理简介2 具体使用方法2.1 demo1 --- await不传入时间,保证当前线程的其他操作在最后执行2.2 demo2 --- await传入时间t,当前线程等其他线程时间t后就运行其他操作2.3 发令枪 源码地址:https://github.com/nieandsun/...

2020-03-24 00:25:54 1214 4

原创 【并发编程】 --- Compare And Swap(CAS)原理分析
原力计划

文章目录1 什么是CAS?1.1 加锁和CAS解决原子性问题的不同原理1.2 CAS原理分析2 CAS可能的问题2.1 ABA问题2.2 循环时间长开销大2.3只能保证一个共享变量的原子操作3 JDK中的相关原子操作类简介 --- 底层CAS机制3.1 AtomicInteger3.2 Atom...

2020-03-22 21:59:41 464 2

原创 【并发编程】 --- 线程间的通信wait、notify、notifyAll
原力计划

文章目录1 wait、notify、notifyAll简单介绍1.1 使用方法 + 为什么不是Thread类的方法1.2 什么时候加锁、什么时候释放锁?1.3 notify、notifyAll的区别2 两个比较经典的使用案例2.1 案例1 --- ABCABC。。。三个线程顺序打印问题2.1.1...

2020-03-21 12:08:16 1650 9

原创 【实用小代码】 --- BigDecimal比较大小的正确姿势

Demo public static void main(String[] args) { BigDecimal a = new BigDecimal("10.003"); BigDecimal b = new BigDecimal("1...

2020-03-20 11:06:21 384 0

原创 【并发编程】 --- synchronized的使用姿势
原力计划

文章目录1 总览2 synchronized修饰静态方法3 synchronized修饰静态方法4 synchronized修饰非静态代码块 源码地址:https://github.com/nieandsun/concurrent-study.git 1 总览 synchronized的使用姿...

2020-03-16 16:41:59 439 0

原创 【并发编程】 --- 伪共享(False Sharing)底层原理及其解决方式

文章目录1 什么是伪共享1.1 从疑问说起 --- 难道JMM中不存在局部性原理???1.2 缓存行的概念1.3 伪共享(False Sharing)的概念 + 其可能引发的性能问题2 如何避免伪共享 --- 数据填充2.1 不使用数据填充时的效率验证2.2 手动进行数据填充的效率验证2.3 ...

2020-03-15 12:38:47 637 2

原创 【并发编程】--- volatile底层原理
原力计划

文章目录1 volatile如何保证可见性2 volatile为什么不能保证原子性问题3 volatile可以保证有序性的原因3.1 单线程禁止重排序的规则 as-if-serial3.1 多线程禁止重排序的规则 happens-before 源码地址:https://github.com/ni...

2020-03-15 00:42:53 1560 2

原创 【并发编程】--- 并发编程中的可见性、原子性、有序性问题
原力计划

文章目录1 可见性问题1.1 复现可见性问题1.2 可见性问题产生的原因2 原子性问题3 有序性问题3.1 复现有序性问题3.2 有序性问题产生的原因 源码地址:https://github.com/nieandsun/concurrent-study.git 1 可见性问题 1.1 复现...

2020-03-13 17:47:45 249 1

原创 【并发编程】--- java守护线程简介

文章目录1 守护线程概念简介2 守护线程示例代码及注意事项 源码地址:https://github.com/nieandsun/concurrent-study.git 1 守护线程概念简介 Daemon(守护)线程是一种支持型线程,它主要被用作程序中的后台调度以及支持性工作。当一个Java虚...

2020-03-08 20:34:53 209 0

原创 【并发编程】--- Thread类中的join方法

文章目录1 join方法原理2 join测试代码和测试结果 源码地址:https://github.com/nieandsun/concurrent-study.git 1 join方法原理 原理如下: 注意: 只有先开启了线程,在进行join才有效。 2 join测试代码和测试结果 测试...

2020-03-08 18:07:39 310 0

原创 【并发编程】--- interrupt、interrupted和isInterrupted使用详解

文章目录1 为何不建议用stop方法中断线程2 interrupt、interrupted和isInterrupted方法介绍3 interrupt、interrupted和isInterrupted方法测试3.1 被中断线程感知到中断请求,但不理会3.2 isInterrupted方法感知中断...

2020-03-08 12:52:56 1459 1

原创 【mysql知识点整理】--- order by 、group by 出现Using filesort原因详解

文章目录测试数据1 sql执行顺序2 order by 和 group by什么时候会出现Using filesort --- 理论3 order by 和 group by什么时候会出现Using filesort --- 实践3.1 不会出现 Using filesort的情况 --- ...

2020-03-07 21:22:43 2804 0

原创 【mysql知识点整理】 --- 准确理解 in 和 exists
原力计划

文章目录测试数据介绍1 inin后面数据量过大不走索引? ---> 假的1.2 in查询时,索引使用情况分析1.3 in查询建议 --- java开发尽量不使用in2 exists2.1 索引使用情况 --- 覆盖索引很重要3 exists适用于适用于外表小,内表大的情况,in与之...

2020-03-05 03:38:08 2946 7

原创 【mysql知识点整理】 --- mysql常见数据类型整理

文章目录1 数值类型2 字符类型3 日期类型 1 数值类型 2 字符类型 类型 说明 N的含义 是否有字符集 最大长度 CHAR(N) 定长字符 字符 是 255 VARCHAR(N) 变长字符 字符 是 16384 BINARY(N) 定长二进制字节 字节 否 25...

2020-03-04 21:22:00 438 0

提示
确定要删除当前文章?
取消 删除