摘要: 一、背景介绍 在看spring源码和dubbo源码的时候,发现两者都用采用了JDK中spi的技术,发现都有大作用,所以就来分析下JDK中的SPI的使用方式及源码实现。 二、什么是SPI SPI的全称是 Service Provider Interface。 一种从特定路径下,将实现了某些特定接口的类 阅读全文
posted @ 2020-03-26 23:14 编号94530 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 一. 读写锁是怎么实现的? 继承AQS,然后通过将AQS中的state转化为二进制,分为高16位和低16位来区分。高16位表示读状态,低16位为写状态。 二. 解析表示方式(高低16位) 假设此时state是数值S a.写锁 在判断写锁时,通过 K=S&0X0000FFFF, 将高位全部抹掉,此时只 阅读全文
posted @ 2019-09-30 21:06 编号94530 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 事出原因 某些原因,需要在在服务之间传输文件,想到只有通过Byte数组,或者是Stream传递,遂定下两方法,一个byte,一个inpustream,老样子,upload(@RequestParam("id")Integer id, (@RequestParam("filename")String 阅读全文
posted @ 2019-08-04 18:47 编号94530 阅读(3051) 评论(0) 推荐(0) 编辑
摘要: 一:事发原因 两个东家都使用SpringCloud,巴拉巴拉用上了Spring全家桶,从eureka到ribbon,从ribbon到feign,从feign到hystrix,然后在使用feign的时候发现使用方式不同,仔细一看这种调用方式,唉,麻烦,我怎么要自己定义DTO,自己定义Fallback, 阅读全文
posted @ 2019-07-14 22:18 编号94530 阅读(5115) 评论(0) 推荐(0) 编辑
摘要: Semaphore分析由来 网上看了许多讲解Semaphore的,用Semaphore来实现顺序打印字母,但是可能大家都没有清楚具体的原因,所以来给大家分析下为什么可以使用Semaphore来实现顺序打印字母顺序。 Semaphore源码分析 先打开JDK8源码中的Semaphore,可以看到Sem 阅读全文
posted @ 2019-06-30 17:38 编号94530 阅读(427) 评论(0) 推荐(0) 编辑
摘要: HashMap之节点删除 大家一直关注的都是HashMap如何添加节点,当节点数量大于8的时候转化为红黑树,否则使用链表等等,但大家是否有看过删除节点的处理逻辑呢? 今天来看看HashMap删除节点的神来之笔 问题来源 在查看HashMap源码时,有个以下字段,在删除的时候,判断节点数量,最多在小于 阅读全文
posted @ 2019-06-16 21:40 编号94530 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: 有感之人性的弱点 最近读了人性的弱点这本书,吾觉十分有意思,遂记录部分笔记,分享给在座的各位。 别人骑马我骑驴,看看后面推车汉,比上不足,比下有余。 别人在推车,而我已经可以骑驴,别人依旧对生活充满向往,充满希望,为什么我还要沮丧,还要懊恼? 我应该更加积极,阳光,向上,努力,奋斗。 1. 批评 2 阅读全文
posted @ 2019-06-08 14:37 编号94530 阅读(199) 评论(1) 推荐(0) 编辑
摘要: 前言: 在Redis使用中,我们最常使用的操作是set key value,或 get key value 。这里面包含了redis最基本的数据类型:String,字符串类型是redis中最基本的类型,它能存储任何形式的字符串,包括二进制数据(JSON,Image...)。 大家有没有思考过redi 阅读全文
posted @ 2019-06-04 18:08 编号94530 阅读(3121) 评论(0) 推荐(0) 编辑
摘要: 一 .Redis的安装 一. 下载 进入redis官网,打开下载页面 ( https://redis.io/download ),页面有三种版本,Unstable, Stable, 以及Docker . 我们选择Statbele下载即可。 二. 安装 把下载好的安装包redis-5.0.5 .tar 阅读全文
posted @ 2019-05-30 00:01 编号94530 阅读(288) 评论(0) 推荐(0) 编辑