自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 浅谈一致性hash

文章目录什么是Hash普通Hash的分析普通Hash存在的问题一致性Hashg概念实现普通Hash和一致性Hash普通Hash实现一致性Hash实现不带虚拟节点实现带虚拟节点实现什么是HashHash就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。例如Integer.hashCode(),String.hashCode() 等。就算是输入的那内容不一致也有可能导致输出的hash值一致,这种情况就是hash碰撞,hash碰撞是不可避免的,设计出高效的hash算法是不容易的。

2020-05-19 19:30:43 1112

原创 SpringBean循环依赖

SpringBean循环依赖什么是循环依赖循环依赖的方式循环依赖的解决prototype(多例)singleton(单例)啥也不说先来一波时序图什么是循环依赖循环依赖其实就是循环引⽤,也就是两个或者两个以上的 Bean 互相持有对⽅,最终形成闭环。⽐如A依赖于B, B依赖于C, C⼜依赖于A, 如下图循环依赖的方式构造器循环依赖 --> 构造器注入Filed属性循环...

2020-04-11 14:44:21 953

原创 JVM之类加载过程

类加载过程类加载过程分为以下三个过程 加载 -> 链接 -> 初始化,而链接又可以分为三个过程 验证 -> 准备 -> 解析。整个类加载过程入下图类的整个生命周期在此基础上又加了两个过程 使用 -> 卸载。加载查找并加载类的二进制数据。链接验证确保类的信息都是正确的,符合当前使用虚拟机的规范。文件格式验证:验证字节流是否符合Class文件的格式规范,且能被当前虚拟机处理源数据验证:对字节码描述的信息进行语义分析,以保证其描述的信息符合Java

2021-10-14 18:25:02 177

原创 并发编程之BlockingQueue

文章目录一、 简介二、BlockingQueue核心方法三、具体实现1、ArrayBlockingQueue2、LinkedBlockingQueue一、 简介BlockingQueue简介首先它一个队列,所以它继承了Queue接口具有队列的特性;其次是一个阻塞队列。我们平时常用的队列只要为一下两种先进先出-FIFO:先插入的数据最先出队列,类似我们排队买东西,先排队的先买先进后出-LIFO:后插入的数据最先出队列,类似我们放羽毛球的球筒,先放进去的最后才能拿出来队列不只有这两种

2021-05-08 18:21:58 818

原创 BlockingQueue之LinkedBlockingQueue

文章目录1 核心参数2 构造方法3 核心方法LinkedBlockingQueueLinkedBlockingQueue是一种基于单向链表 的阻塞队列。其队头和队尾分别有两个指针来控制,所以生产者和消费者可以采用独立的锁来控制数据同步,也就意味着在高并发的情况下,生产者和消费者是可以同时操作队列的,从而提高了队列的并发性。​ 因为生产者和消费者是不同的锁控制的,所以记录队列总数count是一个AtomicInteger的原子变量1 核心参数public class LinkedBlockin

2021-05-08 18:18:10 767 2

原创 BlockingQueue之ArrayBlockingQueue

文章目录1 核心参数2 构造方法3 核心方法ArrayBlockingQueue基于数组的阻塞队列,底层数据结构为定长的数组,实例化的时候必须指定数组的长度1 核心参数public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { /** 存储数据的数组 */ fi

2021-05-08 18:16:12 486

原创 林妹妹问我@Value怎么使用

文章目录1、String类型2、Array类型3、List/Set集合类型4、 Map类型5、ConfigurationProperties6、附加7、结束语博主正在开心的准备看英雄联盟季后赛 FPX和RNG的比赛,这时候女朋友林妹妹走过来林妹妹:我最近在学习spring,现在学到了数据绑定@Value这个注解,学的不是很明白,你能给我讲讲吗?博主:等一会哈,我看完比赛林妹妹:你说什么?博主:你听错的我时候的马山开始,看什么比赛(害怕中…)准备好了吧,咱们先从简单类型开始1、String类型

2021-04-08 13:23:03 456

原创 SpringAOP之注解方式

文章目录1、概述2、实现方式2.1 代理方式分为两种:**动态代理**、**静态代理**2.2 代理方式的选择3、名词解释4、具体实现4.1 新建springboot项目并映入AOP依赖4.2 编写注解类4.3 编写切面类4.4 注意事项5、演示1、概述SpringAOP不是一门技术而是一种设计思想,称为面向切面编程,是利用横切技术剖析对象内部,将业务之间共同调用的逻辑提取并封装为一个可复用的模块,这个模块被命名为切面(Aspect),该模块减少系统中的重复代码,降低模块间的耦合度,可用于日志、权限认

2021-04-01 16:32:22 756

原创 idea 搭建 spring-framework-5.1.x源码详情

文章目录一、gradle配置二、导入spring源码三、验证一、gradle配置从gradle官网下在自己需要的版本,博主下载的是5.6.3的配置环境变量博主用的是mac所以这里就只介绍mac下配置gradle,windows下配置和配置java环境变量一致,如果有不明白的可以参考这篇文章windows配置gradle打开环境变量文件open -e .bash_profile追加以下内容# gradleGRADLE_HOME=/Users/xx/xxx/xxx/gradle-5.6

2021-02-25 14:01:23 895 2

原创 springboot+mybatis+tkmybatis+postgresSQL实现主键返回,自定义handler处理数组和jsonb

文章目录1、前言2、项目搭建2.1 springboot搭建2.2 集成mybatis2.3 集成tk.mapper2.4 集成postgreSQL2.5 集成pagehelper2.6 添加库表3、项目配置3.1 生成实体文件3.2 类型转换器3.2.1 数组类型转换器3.2.2 实体类型转换器3.2.3 实体数组类型转换器3.3 返回主键配置3.2 复杂类型返回4、测试4.1 增加4.2 修改4.3 查询4.4 删除1、前言公司的一个项目是用springdata jpa实现的,但是公司中没人对DDD

2020-11-20 16:40:42 1879 2

原创 Docker介绍及镜像制作和导入

文章目录1、docker简介2、docker安装3、从 docker hub下载安装镜像4、镜像制作4.1、通过官方镜像制作(不建议)4.2、通过Dockefiler制作(建议)5、镜像导出和导出6、基本命令作者: 良霄1、docker简介官网: https://www.docker.com/什么是dockerDocker时Docker.Lnc公司开源的一个基于LXC(linux容器)技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开

2020-09-29 20:12:35 930

原创 SpringBean生命周期详情

啥也不说先来一波流程图下面咱们详细说下每个步骤1、根据配置调用Bean的构造方法或者工厂方法实例化Bean2、根据完成Bean对属性的依赖注入3、如果Bean实现了BeanNameAware接口, Spring调用setBeanName方法传入beanId4、如果Bean实现了BeanFactoryAware接口, Spring调用setBeanFactory方法传入当前工厂实例的引用5、如果Bean实现了ApplicationContextAware接口,spring调用setApplic

2020-05-29 20:36:41 427

原创 那些年我们忽略的集群时钟不同步问题

文章目录1. 问题引出2. 时钟同步2.1 服务器都可以联网2.2 只有一台服务可联网或都不能联网1. 问题引出时钟指的是服务器时间,当集群中的各个服务器之间的时钟不一致的时候必然会导致一些问题。我们以电商为例,当有三个并发同时请求服务求来下单,请求通过Ngnix转发分别分发到不同的服务上,而此时服务器的时间是不一致的,时间如下图分别为五点,八点和十点,请求处理过程中我们会把服务器的当前时间当做订单的创建时间保存到数据库中,那么当我们根据订单的创建时间进行排序的时候就会出现问题,存在订单顺序错乱的问题

2020-05-20 11:22:38 2661

原创 java集合之HashMap源码分析

文章目录HashMap基本介绍初始化数据操作添加元素 put(K, V)获取元素 get(K)删除元素(K)总结HashMap基本介绍底层数结构jdk_1.8之前的底层数据结构是数组 + 链表jdk_1.8之前的底层数据结构是数组 + 链表 + 红黑树本篇主要分析的是jdk_1.8继承体系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, C

2020-05-18 18:09:47 365

原创 java集合之LinkedList源码分析

文章目录LinkedList基本介绍初始化数据操作添加元素获取元素删除元素总结LinkedList基本介绍底层数结构LinkedList的底层数据结构是链表继承体系public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, ...

2020-04-30 15:14:01 344

原创 java集合之ArrayList源码分析

文章目录ArrayList基本介绍初始化添加删除总结ArrayList基本介绍底层数据结构ArrayList实际上就是动态数组, 所以他的底层数据结构为数组(Array)继承体系public class ArrayList<E> extends AbstractList<E> implements List<E>, Rand...

2020-04-29 15:19:55 331

原创 解决tomcat8.5.x控制台乱码

问题发现最近在研究spring和springMvc的源码 在构建代码的时候用的是tomcat 8.5.54项目部署在tomcat中启动发现日志中文乱码问题解决在网上找了好多解决方法都没有成功解决问题最后修改了 conf/logging.properties中的日志编码成功成功解决问题把java.util.logging.ConsoleHandler.encoding = UTF-8修...

2020-04-20 11:10:50 1414 3

原创 设计模式之单例设计模式

文章目录一、单例设计模式介绍二、单例模式的实现方式1、懒汉式(线程不安全)2、懒汉式(线程安全)3、饿汉式4、双重校验锁5、静态内部类6、枚举一、单例设计模式介绍单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。...

2019-09-25 21:10:37 660

原创 设计模式概述

文章目录设计模式介绍什么是 GOF(四人帮,全拼 Gang of Four)?设计模式类型创建者模式结构性模式行为型模式设计模式介绍设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。什么是 GOF(四...

2019-09-23 16:29:35 126

原创 设计模式七大原则

文章目录一、单一职责原则(Single responsibility)二、接口隔离原则(Interface Segregation)三、依赖倒转(倒置)原则(Dependence Inversion)四、里氏替换原则(Liskov Substitution)五、开闭原则(Open Closed)六、迪米特法则(Demeter)七、合成复用原则(Composite Reuse)设计模式好处1、...

2019-09-20 21:16:18 151

原创 mysql 查询库中所有表和表中所有字段

1. 查询中所有的表和表注释SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '库名'2. 插叙表中所有字段和注释SELECT column_name, column_comment FROM information_schema.COL...

2019-08-28 14:19:42 6161

原创 mysql给所有表添加字段

文章目录准备方式一方式二准备新建数据库test创建两个表test1和test2字段分别为 id, name需求为两个表同时添加gender和age字段表结构如下test1test2方式一添加gender字段先根据表拼接sql,然后把结果拿出来再执行一次例如我要添加gender字段1. 先执行一下语句SELECT concat( 'ALTER TABLE ...

2019-08-24 13:17:37 9477 1

原创 SpringCloud 启动 Feign报错:Method has too many Body parameters

SpringCloud 启动 Feign报错:Caused by: java.lang.IllegalStateException: Method has too many Body parameters:这和参数的个数有关当通过 GET 方式调用接口的时候如果参数个数大于一个,那么每一个参数都需要加@RequestParam注解示例 void test(@Request...

2019-08-21 17:56:24 376

原创 阿里巴巴java开发手册2020, 2019

2019版链接:https://pan.baidu.com/s/1If_ZKAM_74-8NTbjqhGKjA 提取码:8st1 2018版链接:https://pan.baidu.com/s/1plo_H6a6ZFrUvLEuDJ8vEQ 提取码:dxfv

2019-08-07 13:20:02 980

原创 mysql获得时间戳

SELECT UNIX_TIMESTAMP(NOW());结果

2019-08-02 11:08:16 136

原创 centos 6.8下安装zookeeper-3.4.13

1. 下载安装包下载地址http://mirrors.hust.edu.cn/apache/zookeeper/下载命令wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz注: 如果没有安装wget或者vim命令可以通过以下命令安装yum ins...

2019-07-24 14:18:20 434

原创 如果一个接口有2个不同的实现, 那么怎么来指定的需要调用实现

在我们平时的系统开发中可能会一个接口有多是实现的情况存在,现在有两种实现方式方式一: @Autowired 配合@Qualifier("类别名")一起使用方式二:使用@Resource(name = "类别名") 指定类的别名测试代码1. 接口/** * 注入测试接口 * @author: clx * @date: 2019/7/23 * @versi...

2019-07-23 17:29:48 2015

原创 SpringBoot静态方法获取 bean的三种方式

注意: 调用者要被spring管理方式一注解@PostConstructimport com.example.javautilsproject.service.AutoMethodDemoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework...

2019-07-23 16:56:17 26045 13

原创 Springboot 2.X 简单集成 JWT

代码地址https://github.com/kingxiao6317/jwtDemo一 、依赖<!-- jwt --><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <versio...

2019-07-22 16:44:08 380

原创 idea创建Springboot 2.X项目

一、工具开发工具:ideajdk:1.8系统:win10二、搭建环境1. 创建springboot项目File - > New -> Spring Initiizr2. 设置自己的项目名,包名等等点击下一步3. 勾选需要的依赖 点击下一步4. 选择项目路径等 点击下一步点击OK选项5. 找到程序入口 JwtdemoAppl...

2019-07-22 15:46:13 1524

原创 centos 6.8 网卡配置

安装链接Centos 6.8 minimal安装步骤1. 点击编辑虚拟机设置--> 选择网络适配器--> 选择NAT模式2. 修改VMware网络配置 选择Vmnet8进行配置, 配置入下图所示配置完成点击确定保存3. 配置自己本地网络 -- 打开网络连接中心选择WMnet8右键-->属性 -->选择TCP/IPv4点击属性 ...

2019-07-19 16:15:54 2270

原创 VMware安装centos 6.8 minimal

一 准备下载镜像链接:https://pan.baidu.com/s/1ieDlPtRH7fEHe833v-qbLg 提取码:mbht 二 安装1. 打开VMware选择新建虚拟机2. 选择经典点击下一步3. 选择稍后安装操作系统点击下一步4. 客户操作系统选择linux, 版本选择Centos 64位点击下一步5. 设置自己的虚拟机名称和...

2019-07-19 11:02:59 219 1

原创 sql 关于case when的两种用法

最近做项目关于数据迁移部分了解到case when 的两种用法1.case 字段when 条件 then 结果else 结果end;2.casewhen 条件 then 结果when 条件 then 结果else 结果end;当处理nul...

2018-05-24 20:11:26 17502

微信小助手_2.7.0__macwk.com.dmg

微信小助手 防撤回 ,退群监控等微信小助手 防撤回 ,退群监控等微信小助手 防撤回 ,退群监控等微信小助手 防撤回 ,退群监控等微信小助手 防撤回 ,退群监控等

2020-04-15

Postman_v4.1.zip

postman 接口调用调试工具postman 接口调用调试工具postman 接口调用调试工具postman 接口调用调试工具postman 接口调用调试工具postman 接口调用调试工具

2019-07-22

jdk1.8.0_91.zip

jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版jdk1.8 解压版

2019-07-22

连接Oracle oci

plsql/navicat连接数据库需要配置的 oci plsql/navicat连接数据库需要配置的 oci

2018-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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