- 博客(20)
- 资源 (6)
- 收藏
- 关注
原创 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管理工具,还可以自定义输入命令自动输入
2022-06-18
jdk8和11两个版本的下载
2020-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人