自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

原创 分布式锁实现原理

分布式锁实现原理

2022-07-22 08:55:57 779

原创 ThreadLocal学习

ThreadLocal学习ThreadLocal并不是一个Thread,而是Thread的局部变量。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。ThreadLocal的核心接口方法有四个void set(Object value) 设置当前线程的线程局部变量的值。public Object get() 该方法返回当前线程所对应的线程局部变量。pub

2022-03-03 10:38:51 411

原创 Java锁学习

1、锁类型1.1、乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。1.2、悲观锁悲观锁是就是悲观思想,即认为写多,

2022-03-02 22:46:25 344

原创 策略模式(集成Spring应用方法)

1、策略模式(集成Spring应用方法)打折类的问题public interface CouponStrategy { /**具体的打折实现**/ void discount(); /**对应的类型是否匹配**/ boolean isSupport(Integer status);}比如我们的折扣方式有满减和优惠券,此时我们需要定义两个实现类分别对应满减和优惠券@Service(value = "0")public class FullCutCoupon impleme

2021-05-21 12:49:49 177

原创 EasyExcle学习笔记

EasyExcle 学习笔记1、相关依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version></dependency>2、继承和重写AnalysisEventListener整体采用抽象类和泛型为的是后续扩展方便impor

2021-05-14 15:38:09 457 1

原创 MySQL存储引擎

一、MySQL存储引擎MySQL的四个特性原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。隔离性(Isolation):同一时间,只允许一个事务请求同一数据,

2021-03-22 09:06:49 191

原创 java锁学习

Java并发编程并发编程中存在的三个概念。原子性问题,可见性问题,有序性问题原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。可见性:是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。Java提供了volatile关键字来保证可见性有序性:即程序执行的顺序按照代码的先后顺序执行(主要出现问题在多线程)1.1、volatileJava语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操

2021-03-01 16:47:08 204

原创 HashMap了解

1、 HashMap 结构图先来看看几个核心的成员变量:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认初始容量为16static final int MAXIMUM_CAPACITY = 1 << 30; // 最大容量为2的30次方static final float DEFAULT_LOAD_FACTOR = 0.75f; //默认加载因子0.75static final int TREEIFY_

2021-03-01 16:38:19 215 1

原创 SpringCloud-生产者-网关-消费者调用

1、SpringCloud项目搭建整个项目采用了Gradle工具进行构建,首先是构建一个纯净的Gradle项目,一个空的项目,为整个SpringCloud项目提供一个大的整合范围,同时本项目采用lombok插件实现日志打印,所以IDEA需要安装Lombok的插件,eclipse同理,个人推荐使用IDEA首先最外层的gradle项目的build.gradle文件撰写,引入基础的jar包,和基础环境的配置,整个大项目的构建层次如上图buildscript { // 定义变量 ext {

2020-08-15 16:33:28 1310 2

原创 SpringBoot的测试类写法

SpringBoot的测试类写法使用SpringBoot 2.2.2.RELEASE版本编写测试类。1.x版本通常使用junit4。1.1 junit4测试类写法依赖的jar包<!-- 最上方统一限制SpringBoot的版本 --><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifa

2020-05-29 14:37:44 1299

原创 Gradle构建SpringBoot项目

1、新建项目因为默认是勾选Java选项的,为了构建一个适合多模块的项目,去掉勾选,如上图。接下来右键单击项目名创建一个Model,此时一个纯净的gradle项目结构便已经完成,如果是多模块项目,那么便可以创建多个Model,接下来便是配置yml文件。1.1、首先配置最外层的build.gradle文件。个人整合了一部分常用的jar包。buildscript { // 定义变量 ext { springBootVersion = '2.2.2.RELEASE'

2020-05-26 12:05:22 1646

原创 CentOS6.5配置hadoop

1、Hadoop集群搭建(自学历程CentOS6.5)1.1、配置虚拟机之间的免密访问ssh-keygen -t rsa #生成公钥ssh-copy-id root@xxx.xxx.xx.xx #将本机公钥复制到指定IP的虚拟机中1.2、配置虚拟机之间的免ip(主机名访问)vi /etc/hosts #配置主机名和ip的映射# 例如192.168.32.11 vm1192.1...

2020-03-12 13:28:43 335

原创 外观模式和建造者模式

1、外观模式思想:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。注:采用大话设计模式的例子例:股民炒股代码1.1、首次编写时:我们编写股票类,对应每一种股票都需要一个实体类public class Stock1 { /* * 股票售出 */ public void sell() { ...

2020-01-05 15:33:17 642

原创 原型模式

1、原型模式例:假设应聘时需要准备简历,用Java实现创建三个简历://创建一个简历类public class Resume implements Cloneable { private String name; private String sex; private String age; private String timeArea; priva...

2020-01-03 14:17:52 213

原创 代理模式和工厂方法模式

1、代理模式根据大话设计模式的例子没有经过代理的代码://SchoolGirl,被追求者类public class SchoolGirl { private String name; public String getName() { return name; } public void setName(String name) { ...

2020-01-02 20:50:04 222 1

原创 模板方法模式

1、模板方法模式Question:假设甲乙两个人抄文档,两个人除了回答不同其余部分都相同,此时如何编写代码实现功能。首先在不应用模板方法时//甲抄的文档public class TestPaperA { public void TestQuestion1() { System.out.println("问题一: a,b,c,d"); Sys...

2020-01-02 14:19:05 108

原创 装饰模式

1、单一职责原则单一职责原则是一种思想;如果一个类承担的责任过多,就等于把这些职责偶合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。2、开放-封闭原则两个特征:对于扩展是开放的对于更改是封闭的3、依赖倒转原则高层模块不应该依赖低层模块。两个都应该依赖抽象抽象不应该依赖...

2019-12-31 11:11:01 98

原创 简单的工厂模式

1、简单工厂模式例:让我们写一个加减乘除的方法,最初的写法:(为了方便未判定除法时分母为0的状况)public class Operation { public static double getReault(double left ,double right,String op) { double result = 0; switch (op) {...

2019-12-29 17:24:25 104

原创 centos7配置JDK,tomcat,redis,rabbitMQ,MySQL

1、服务器安装配置(JDK,tomcat,redis,rabbitMQ,MySQL)1.1、安装JDK通过xftp上传jdk压缩包,jdk版本采用1.8,如果电脑安装过rz命令可以直接通过命令上传安装lrzsc的yum命令yum -y install lrzsz个人习惯:会在根目录下创建package和local两个文件夹[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直...

2019-12-17 15:37:51 326

原创 类和对象的使用

(1) 实现一个Point类,该类包含表示坐标的两个int型变量x、y,构造方法Point()和Point(int xx, int yy),返回x值和y值的int getX()和int getY()方法,计算两点间距离的double distance(Point)方法。其中计算平方根的方法是Math.sqrt(),如:double d=Math.sqtr(2);(2) 实现一个Circle类...

2019-02-25 07:12:41 547 2

可以作为shell工具,通水可以连接SFTP作为SFTP管理工具,还可以自定义输入命令自动输入

可以作为shell工具,通水可以连接SFTP作为SFTP管理工具,还可以自定义输入命令自动输入

2022-06-18

spring基于5.3.x版本源码解读

1、基于5.3.x官方分支 2、git内容会不定时的更新内容

2022-03-10

POI及EasyExcel攻略.pdf

主要为poi相关操作的说明,现在easyexcle已经很流行不建议使用这个

2021-11-30

SSH-Shell-111.dmg

mac查看日志的软件

2021-11-20

Sublime Text 3 Mac 1.2.dmg

内容包含 sublime插件版本

2021-11-20

jdk8和11两个版本的下载

现在多数企业采用的是jdk1.8版本,但是相对来说1.8已经停止维护,11也是长期支持版,所以未来可能新项目的选择会趋向于11 从JDK 8迁移到更高版本的JDK 在JDK 8和更高版本的JDK之间进行了重大更改。 每个新的Java SE版本都与以前的版本引入了二进制,源代码和行为上的不兼容性。JDK 9中发生的Java SE平台模块化带来了很多好处,但也带来了很多变化。仅使用官方Java SE Platform API和受支持的JDK特定API的代码应继续工作而不作任何更改。使用JDK内部API的代码应继续运行,但应迁移为使用受支持的API。 以下各节描述了将JDK 8应用程序迁移到更高版本的JDK时应注意的JDK软件包和API中的更改。

2020-07-10

空空如也

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

TA关注的人

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