- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 最简单的Java实现的lru缓存
Simplest Java LruCache0、背景 风控规定不许在内存中缓存用户私钥等敏感数据,故原本产线的每次加密请求都需要去连接风控加密机获取私钥,现在为了提高性能和减少风控加密机压力,允许缓存少量热点商户账户私钥,脑海中第一想法就是做一个Lru缓存,于是做了下面最简单的一版,随后又新的需求再迭代修改。1、实现 先简单实现一个可以控制大小的lru缓存,底层基于LinkedHashMap,实现如下:package com.fu;import java.io.IOException
2020-06-17 11:41:36 340
原创 TreeMap学习记录
根据一致性Hash算法学习TreeMap0、简介 本次根据使用TreeMap实现简单一致性Hash算法的例子来学习下这个让人忘了学学了忘的TreeMap源码,希望从中学到它的设计思想。本次主要记录以下几个点。 1、TreeMap实现一致性Hash算法示例 2、TreeMap构造函数及属性 3、TreeMap核心方法分析1、TreeMap实现一致性Hash算法示例 简介下算法内容,先构造一个长度为Integer.MAX_VALUE长度的一个整数环(一致性Hash环),根据节点
2020-05-09 16:22:40 298
原创 LinkedHashMap源码剖析
LinkedHashMap学习记录0、简介 这篇又是一个学了忘,忘了学的JDK源码,今天抽空整理下自己的学习记录。LinkedHashMap和HashMap相比是多了可以按照插入顺序遍历的功能,下面开始分析下其具体的实现。此次主要记录以下几个点。 1、LinkedHashMap使用示例 2、LinkedHashMap构造函数及属性 3、LinkedHashMap核心方法分...
2020-05-01 23:49:13 301
翻译 CMS垃圾收集器单项记录
CMS垃圾收集器学习记录0、简介 本篇主要是记录下CMS垃圾收集器的学习结果,由于记性差,所以想通过记录的方式加深印象,梳理思路。1、CMS垃圾收集器简介 CMS收集器是一款追求最短回收停顿时间的收集器,互联网网站或者B/S系统的服务很重视服务的响应速度,希望系统停顿时间最短,给用户带来最好的体验。CMS收集器就非常适合这类应用的需求。 从名字可以看出,CMS是基于标记–清除...
2020-04-25 21:19:49 194
原创 LinkedList源码剖析
LinkedList源码学习记录0、简介 最近处于老项目上线,新项目设计初期,稍有空闲,于是开始记录下学了忘忘了学系列之LinkedList源码。本篇主要记录以下几个点。 1、LinkedList使用示例及优势 2、LinkedList构造函数及属性 3、LinkedList核心方法分析1、LinkedList使用示例 LinkedList底层基于双向链表的数据结...
2020-04-24 22:02:32 143
原创 Redis缓存一致性解决方案1
Redis缓存一致性方案记录1方案:异步更新缓存(基于订阅binlog的同步机制) 1、读:热点数据放入Redis供应用读,读不到再去mysql读 2、写:增(insert)删(delete)改(update)都用直接操作mysql 3、缓存更新:mysql开启log_bin,将成功的写操作都记录到binlog,通过模仿mysql的slave方式来订阅binlog,有新数据就推...
2020-04-24 14:14:37 404
原创 HashSet原来这么简单
HashSet学习记录0、简介 本篇主要记录下HashSet的源码学习记录,是随机看到的,随手记录下。大家都知道HashMap是一种存储键值对的数据结构,HashSet从名字可以看出来其主要是一个集合,通过数学上集合的概念可以知道集合存放非是没有重复数据的集。HashSet底层实现是通过组合了一个HashMap实现的,通过借助HashMap中key不能重复的特性实现HashSet想要的功能...
2020-04-15 19:12:37 474
原创 ENS最新合约源码分析二
ENS(以太坊域名服务)智能合约源码分析二0、简介 本次分享直接使用线上实际注册流程来分析最新注册以太坊域名的相关代码。本次主要分析最新的关于普通域名注册合约和普通域名迁移合约,短域名竞拍合约不再本次分析范围内。1、实际注册过程 先看张时序图来了解下域名注册和使用的流程: ① 在app.ens.domains网站挑选自己要注册的域名,点击注册后第一个交易详情分析。 ...
2020-04-15 14:02:04 1581
原创 MyBatis源码分析之数据库连接池
Mybatis源码分析之数据库连接池DataSource0、简介 本篇文章主要记录下学习Mybatis数据库连接池的理解,本打算先写解析mapper的源码分析文章,随后想想mapper等元素解析相关的文章单独放一个系列记录。此篇文章主要介绍Mybatis大的模块分析。 此文章主要记录以下几个点: 1、为什么需要数据库连接池 2、Mybatis数据库连接池的分类...
2020-04-09 13:11:03 330
原创 Java基础知识--char数组通过StringBuilder转换为字符串问题
Java基础知识–char数组通过StringBuilder转换为字符串问题背景 此文章只是记录下本人遗忘的基础知识点。 在一次写算法题的时候,声明了一个char类型二维数组,最终通过StringBuilder转换成字符串。在这期间出现了一个基础知识让我想记录下,具体过程如下。// 测试代码如下public class TestMain { public static vo...
2020-04-06 21:52:08 785
原创 ConcurrentHashMap(JDK1.8)源码剖析
ConcurrentHashMap(JDK1.8)学习记录 看了忘忘了看系列之ConcurrentHashMap,本文主要记录下通过看ConcurrentHashMap源码学习到的知识点。主要有以下几个点。文章稍长,需要耐心阅读。 1、ConcurrentHashMap构造函数和相关属性 2、ConcurrentHashMap使用示例 3、ConcurrentHashMap...
2020-04-04 23:51:05 147
原创 责任链模式在工作中的应用
责任链模式之在项目中应用 这篇记录是今天突然看到别人写的责任链模式文章的时候想起来我在项目中如何应用责任链模式的,因此随手记录下,希望生活更美好。1、简介 责任链模式在我们工作中经常接触到的算是Java web中的filter了,每一个HttpRequest都会流经每个filter,在每个filter中对request做感兴趣的事。结构就类似下面这张图。2责任链模式标准示例...
2020-03-25 16:50:11 1235
原创 ReentrantLock源码剖析
ReentrantLock源码剖析 这里又是看了忘忘了看系列之ReetrantLock,今天趁着有时间记录下ReentrantLock源码的学习过程。这篇博客主要记录以下几个方面内容。欢迎各位多提建议或者意见 1、ReetrantLock和Sync的继承结构 2、ReetrantLock构造函数们及AQS的核心属性 3、ReetrantLock锁的使用示例 4、Ree...
2020-03-25 11:14:43 1244
原创 以太坊源码之--Pow挖矿源码剖析
PoW挖矿代码基于在学习以太坊挖矿以前先来了解几个相关的数据结构作为铺垫:数据结构1:type Miner struct { mux *event.TypeMux // 事件锁,已被feed.mu.lock替代 worker *worker // 干活的人 coinbase common.Address // 结点地址 mining int32 // 代表...
2020-03-19 10:12:13 3403
原创 以太坊源码分析之--TxPool源码剖析
TxPool代码分析1、首先先介绍一下相关数据结构// TxPoolConfig are the configuration parameters of the transaction pool.//1--交易池配置type TxPoolConfig struct { Locals []common.Address // Addresses that should be treat...
2020-03-19 09:55:08 596
原创 以太坊源码之--P2P网络源码剖析(2)
ethereum-p2p(2)节点发现机制代码分析(v1.8.24)1 、引导 此部分主要分析以太坊节点发现机制源码,以太坊节点发现部分主要借助了一种分布式哈希表的结构(DHT),Kademlia协议是以太坊节点发现机制的基础,它是一种以节点id异或后的结果作为两节点逻辑距离的一种协议,详细介绍在另一部分。下面主要介绍一下以太坊对此协议的具体实现。先介绍下主要的数据结构:// udp主...
2020-03-19 09:52:18 875
原创 以太坊源码之--P2P网络源码剖析(1)
ethereum-p2p代码分析(v1.8.24)本篇主要按p2p的主要逻辑进行代码分析1、开始分析主要代码1.1 server.Start()// Start starts running the server.// Servers can not be re-used after stopping.func (srv *Server) Start() (err error) { ...
2020-03-19 09:49:03 715
原创 HashMap(JDK1.8)源码剖析
HashMap(JDK1.8)源码剖析 这又是看了忘忘了看系列之一,今天有空写个文档记录下,希望能从JDK源码中慢慢悟出他们优秀的思想。本文主要记录以下几个方面。 1、HashMap的继承、实现结构 2、HashMap的构造函数们及属性们 3、HashMap的核心方法们1、HashMap的继承、实现结构 以上就是HashMap的继承结构图,相对来说是比...
2020-03-18 18:25:10 221
原创 Spring AOP 原理剖析,这一篇就够
Spring AOP 学习记录AOP(面向切面编程)方面的知识又是看了忘忘了看,今天有空记录下AOP的知识点。主要分为以下几方面: 1、AOP相关术语 2、基础知识及示例 3、增强分类1、AOP相关术语连接点(Joinpoint) 一个类拥有一些边界性质的特定点,如一个类的各个方法就可称为连接点。切点(Pointcut) 切点就是在众多连接点中选择自己感兴趣的连接点,如果...
2020-03-14 16:23:15 1147 1
原创 MyBatis源码阅读之初始化(一)
Mybatis源码分析一(初始化过程) 最近学习MyBatis源码部分,现在准备一边学习一边记录下自己的理解过程。本篇文章主要记录下Mybatis初始过程,主要有以下几个点: 1、初始化做了什么 2、如何解析mybatis-config.xml各个参数的 3、涉及到的设计模式1、初始化首先我们看一个简易的使用Mybatis的例子。假设我们有一张用户表如下:crea...
2020-03-08 09:57:08 165
原创 ArrayList源码分析(JDK1.8 个人理解)
ArrayList 源码手记 从大学到现在ArrayList源码看了忘忘了看,今天有空记录下自己看的东西以加深印象。下面开始按照自己的想法开始分析ArrayList源码。 1、先记录下ArrayList的类继承关系图 2、下面记录下ArrayList所实现接口中的三个标签接口,大部分人只熟悉第一个标签接口//先看下ArrayList的定义形式,实现了四个接口,其中后三个为标签...
2020-02-23 23:10:47 403
原创 Java线程池源码分析
Java线程池学习记录(一)1、引言 今天做线程池学习记录是在写web3j调用以太坊进行压测代码的时候想起来的,从毕业到现在工作已经1年多了,这期间来来回回看过线程池代码好几遍,结果都是看了后忘记一部分,再看再忘记。以前看别人看了东西都会记录下来,自己没这个习惯,借此机会希望自己以后养成记录的习惯。2、概要目录示例代码ExecutorExecutorServiceExecuto...
2019-10-31 20:30:45 118
原创 以太坊Downloader模块下StateSync.go源码分析
StateSync源码分析1、简介 statesync是一个同步状态的模块,最直接的联系为block中的stateRoot,stateRoot就是使用statesync模块进行下载的。2、源码分析 万物之始,首先介绍statesync本身的数据结构// stateSync schedules requests for downloading a particular state ...
2019-09-27 11:15:25 483
Hibernate手册
2017-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人