自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 分布式事务

两个微服务模块之间通过网络完成远程协作的事务称为分布式事务.比如订单服务和库存服务就构成一个分布式事务的场景,他们是具有原子性特征的,要么都成功,要么都失败.

2022-09-14 00:22:05 54

原创 redis持久化机制

持久化

2022-09-12 23:07:29 140

原创 redis集群

redis集群学习

2022-09-11 23:25:47 200

原创 redis哨兵机制

哨兵模式是在redis主从架构(从节点只做冗余备份)基础之上实现的。因为主从架构中如果master挂掉的话,整个架构就废掉了,不能保证高可用,但是哨兵模式可以保证高可用,当master挂掉,会通过哨兵机制重新选举一个master出来。但哨兵模式还是有缺陷的,,因此后续还会出现redis集群的搭建,可以让多个master同时提供服务。

2022-09-11 18:14:32 230

原创 多线程之对共享变量的认识

共享变量测试public class VolatileTest { private int b = 5555; public int getB() { return b; } public void setB(int b) { this.b = b; } public static void main(String[] args) throws InterruptedException { Vo

2022-05-29 21:04:33 71

原创 AQS同步队列

AQS原理分析独占锁AQS基础模型/** * AQS抽象类 */public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer{//指向同步队列队头private transient volatile Node head;//指向同步的队尾private transient volatile Node tail;//同步状态,0代表锁未被占用,1代表锁已被占用pri

2022-04-24 23:48:06 190

原创 内部类学习

成员内部类局部内部类

2022-04-11 22:43:42 55

原创 ThreadLocal的使用

入门案例package com.che.springbootdemo.thread;/** * @author cyh * @Description * @date 2022/4/11 20:57 * 在多线程下操作共享数据时,通过ThreadLocal来维护每个线程的数据安全 */public class ThreadLocalTest { private ThreadLocal<String> threadLocal=new ThreadLocal<>

2022-04-11 22:20:03 102

原创 Monitor-对象头

Monitor工作原理轻量级锁

2022-04-10 22:21:53 104

原创 Synchronized学习使用

使用方式线程八锁

2022-04-10 21:56:09 59

原创 线程优先级

2022-04-10 15:29:40 18

原创 抓包工具charles的使用

2022-04-10 14:01:10 26

原创 线程常用方法使用

/** * 验证当sleep时,线程被打断 * @throws InterruptedException */ @Test public void test1() throws InterruptedException { Thread t1 = new Thread(() -> { try { TimeUnit.SECONDS.sleep(2); S.

2022-04-10 00:35:27 235

原创 分布式系统中全局唯一ID生成

package com.hmdp.utils;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.time.format.DateTimeFormatter;@Componentp

2022-03-28 23:03:28 397

原创 浅谈springboot之内嵌tomcat的实现

2022-03-25 21:32:29 903

原创 Spring学习

ApplicationContext重要的四个接口国际化(输入不同的时区获取不同的语言)获取文件资源获取环境信息发布事件(方便组件之间解耦,实现通信)第一步第二步第三步,执行

2022-03-25 00:12:26 28

原创 idea快捷键

ctrl+alt+u 查看java类图ctrl+f12 查看类的属性信息

2022-03-24 22:24:17 312

原创 设计模式-策略模式

策略者接口package com.mashibing.cyh.strategy;/** * @author cyh * @Description * @date 2022/3/23 23:05 * 策略接口 */public interface Strategy { void test();}策略者实体类实体类Apublic class A implements Strategy{ @Override public void test() { .

2022-03-23 23:25:29 96

原创 设计模式-构建者模式

代码编写代码运行总结该设计模式适用于构建属性很多的对象,通过构建者模式能很好的进行扩展,通过链式编程的方式减少了代码冗余

2022-03-23 22:19:05 345

原创 java-泛型

从泛型类派生子类成员方法与泛型方法的区别静态的泛型方法(如果是成员方法是不能变成静态的)泛型可变参数定义泛型类型通配符上限与下限List<? extend Cat> 泛型只能是cat或者cat的子类List<? superCat> 泛型只能是cat或者cat的父类...

2022-03-23 21:44:02 94

原创 springboot中跨域问题解决

package com.pug.security.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfig

2022-03-21 21:43:24 50

原创 SpringSecurity+JWT使用

maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependen

2022-03-20 22:30:32 1176 3

原创 springMvc之拦截器的使用

自定义拦截器,实现HandlerInterceptor接口public class JWTInterceptor implements HandlerInterceptor{ @Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token = request.getHeader("t

2022-03-20 18:08:11 374

原创 Gateway网关

自定义负载均衡策略(在网关的模块做)自定义路由自定义过滤器(入门)

2022-03-17 22:07:25 23

原创 回调函数的用法

定义接口package com.zhengqing.demo.canal.mytest.huidiaohanshu;public interface CallBack { //执行回调操作的方法 void execute(Integer a);}具体使用方法package com.zhengqing.demo.canal.mytest.huidiaohanshu;/** * @author cyh * @Description * @date 2022/3/15

2022-03-15 14:20:11 443

原创 jmeter压测工具的简单使用

函数_counter(_random与_time使用类似)断言响应断言大小断言断言持续时间逻辑控制器if逻辑控制器forEach控制器循环控制器关联x-path(两个业务存在关系,第二个请求参数需要第一个请求的结果时)...

2022-02-25 15:11:12 26

原创 分布式事务解决方案

分布式事务基本理论CAP理论C (一致性Consistency)A (可用性Availability)P (网络分区容错性Partition tolerance)CAP组合方式AP 订单退款成功,明日账户到账CP zookeeper就是,跨行转账,一次转账请求要等待双方银行都完成整个事务才算完成AC 也就是单机部署服务,就涉及不到分布式的环境了分布式事务解决方案基于XA协议的两阶段提交(2PC)XA协议:XA是一个分布式事务协议。XA中大致分为两部分:事务管理器和本地资源管理

2022-02-16 22:33:23 822

原创 arthas(阿尔萨斯)的使用

jvm相关命令之dashboard结果集介绍thread相关的命令thread 查看所有的java线程thread 1 查看id为1的线程的信息thread -n 3 查看最繁忙的3条线程thread -b 查看当前阻塞的线程thread -i 1000 -n 3 指定采样时间间隔,每过1000毫秒,显示最占时间的3个线程thread --state WAITING 查看处于等待状态的线程jvm相关命令sysenvvmoptiongetstaticognlcl

2022-02-13 21:48:29 297

原创 箭头函数和普通函数this指向问题

var obj = { name: 'obj', sayName1: () => { return this; }, sayName2(){ return this } }; console.log(obj.sayName1()) //window console.log(obj.sayName2()) //obj

2022-01-21 17:42:35 20

原创 idea中项目更换仓库地址

2022-01-19 17:35:23 533

原创 java中创建对象的过程

https://www.cnblogs.com/kongbubihai/p/13794289.html

2022-01-05 15:49:07 120

原创 java中i++与++i区别

i++分析过程1.首先将数字5压栈2.istore_1将数字5出栈,放到局部变量表索引为1的位置上,也就是将5这个值赋值给i变量3.iload_1,将局部变量表中索引为1位置上的值入栈,也就是数字54.iinc 1 by 1,对局部变量表索引为1位置上的值加1操作,此时局部变量表中索引为1位置上的值为65.istore_1,将第三步加载进来的数字5出栈,放在局部变量表索引为1的位置上,会把第四步的赋值操作覆盖掉++i分析过程跟i++做对比分析,就不写过程了。。。。。。...

2021-12-31 10:26:02 308

原创 java-关于static成员变量在jvm类加载时的执行过程

public class A{ public static void main(String[] args) throws ClassNotFoundException { //System.out.println(D.a); //对于调用final修饰静态变量,不会触发对象的初始化操作,跟实例化没关系,因此static代码块不会执行 System.out.println(D.b); //没有final修饰的静态变量,会触发对象的初始化操作,跟实例化没关系,因此s

2021-12-29 17:12:01 533

原创 Java多线程-线程池简单理解

其实就是在当你new对象创建线程池时,根据构造方法对线程池进行初始化,也就是指定工作线程,阻塞队列等等一些操作。当线程池执行任务的方法,其实就是往BlockingQueue中添加元素,然后线程池中的工作线程,直接从BlockingQueue中获取任务, 然后执行任务而已...

2021-12-24 10:52:14 265

原创 Java多线程-线程内如何抛出异常?

//设置setUncaughtExceptionHandler就能将线程内的异常抛出,否则只会存放在日志或者什么的public class ThreadThrowExcption { public static void main(String[] args) { Thread t1 = new Thread(() -> { int a =1/0; }); t1.setUncaughtExceptionHandler((

2021-12-23 11:50:19 1564

原创 Java多线程-wait和sleep的区别

sleep属于线程Thread的方法,wait属于顶级父类Object的方法sleep不需要去唤醒,时间到了线程状态就会从阻塞到就绪状态,wait需要去被唤醒,不然会一直为阻塞状态sleep不会释放锁,wait会释放当前锁,可以让其他线程使用使用wait时需要一个monitor,但是sleep不需要...

2021-12-23 09:59:31 290

原创 Java多线程-打断(interrupt)

package com.che.thread.interrupt;/** * @author cheyuhang on 2021/12/22 * 如果一个线程处于了阻塞状态(如线程调用了thread.sleep、thread.join、thread.wait、1.5中的condition.await、 * 以及可中断的通道上的 I/O 操作方法后可进入阻塞状态) * * 注意使用join时,阻塞的不是调用方,而是另一方,因此使用interrupt进行打断时应是另一方进行调用interrupt方

2021-12-22 17:44:30 566

原创 多线程-join操作

/** * 相当于阻塞住,直到调用join方法的线程结束后,才会往下执行 */public class ThreadJoin1 { public static void main(String[] args) throws Exception{ //t1线程 Thread t1 = new Thread(() -> { IntStream.range(1, 100).forEach(i -> {

2021-12-22 15:24:12 158

原创 Java多线程-daemon守护线程

案例一:/** * 什么是守护线程? * 当 JVM 中不存在任何一个正在运行的非守护线程时,则 JVM 进程即会退出。 * 如果 JVM 中没有一个正在运行的非守护线程,这个时候,JVM 会退出。换句话说,守护线程拥有自动结束自己生命周期的特性,而非守护线程不具备这个特点。 * * 应用场景: * JVM 中的垃圾回收线程就是典型的守护线程,如果说不具备该特性,会发生什么呢? * 当 JVM 要退出时,由于垃圾回收线程还在运行着,导致程序无法退出,这就很尴尬了!!!由此可见,守护线程的重要

2021-12-22 14:15:01 327

原创 java一些冷门的骚操作

public static void main(String[] args) { Integer[] a=new Integer[2]; test1(a); //但是前提是你传入的数组不能是null,必须至少一个长度,否则就会越界 System.out.println(Arrays.asList(a)); //将上面方法执行后的结果反向补偿给a数组 } public static void test1(Integer a[])...

2021-12-22 09:56:39 215

空空如也

空空如也

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

TA关注的人

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