自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring学习源码第一课

spirng源码学习第一步

2024-03-18 20:55:11 408

原创 kafka或者rokectMq消费堆积,如何排查并解决?

kafka和rocketMq都是消息中间件,消息中间件的作用,异步,削峰,解耦。

2024-03-10 22:25:09 635

原创 Java8,函数式编程应用:

比如我们要使用前置要做的事情,然后调用方法自己的逻辑,最后在执行一个后置要做的事情,其中前置流程和后置流程都是共有的流程。那么就可以使用函数式的变成去封装方法,然后每个地方都可以直接调用。我们可以在一个接口上使用 @FunctionalInterface 注解,这样做可以检 查它是否是一个函数式接口。如果没有函数式编程,我们可能会想到反射的方式,传入一个类,一个方法,然后通过反射的方式去调用这个类中的某个方法,从而可以达到这种实现,但是太麻烦了。只包含一个抽象方法的接口,称为函数式接口。

2024-03-04 21:16:51 390

原创 java.lang.NoClassDefFoundError: lombok/Data报错问题.

可以看到这个类中有一个好几个Data。这里就很严重了,造成这个问题的原因是把Date写成了Data了。所以会报错lombok/Data问题。要全局检查这样属性写成Data,然后引用的是lombok.Data的包,这种地方。

2024-03-04 15:20:51 485

原创 判断某个时间是否在某个时间范围内

【代码】判断某个时间是否在某个时间范围内。

2024-03-04 13:10:08 460

原创 JVM 虚拟机

JVM 虚拟机

2022-10-20 13:35:23 343

原创 Sentinel熔断限流部署和使用。

Sentinel熔断限流部署和使用。

2022-08-19 16:05:45 542

原创 seata分布式事务部署,springCloud集成seata。

seata分布式事务部署,SpringCloud集成seata。

2022-08-17 16:26:40 798

原创 spring日志

这个地方是Mybatis中的JCL,这个地方是一个接口,会有很多实现,比如JUL,LOG4J,SLF4J等,这些日志的实现,所以,spring5或者spring4都可以用,但是spring5用的是JUL,JUL的日志级别是

2022-07-14 10:38:54 115

原创 springMVC

从源码的角度来看SpringMVC./mvnw clean install -DskipTests -PfastSpringMVC 核心流程先上图:SpringMVC核心流程图简单总结:首先请求进入DispatcherServlet 由DispatcherServlet 从HandlerMappings中提取对应的Handler此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:HandlerAdapter拿到对应HandlerAdapter时,这时候开始调用对应的Handle

2022-07-14 10:38:11 176

原创 Java 多线程下载文件

package cn.com.skyvis.Mystudy;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent.CountDownLatch;public class MutiThreadDownLoad { /** * 同时下载的线程数

2022-07-14 10:37:40 1000

原创 mybatis-plus如何使用aa or(bb and cc)

mybatis-plus如何使用aa or(bb and cc)

2022-07-08 10:18:58 204

原创 springBoot 观察者模式

springBoot 观察者模式

2022-07-08 10:06:23 1455

原创 类变量和实例变量的区别

类变量和实例变量

2022-07-08 09:56:04 410

原创 spring事务底层逻辑分析

从源码角度进行,spring事务底层逻辑分析

2022-07-07 10:40:04 222

原创 Mybatis+Spring整合源码

Mybatis+Spring整合源码解析

2022-07-07 10:39:15 478

原创 spring的生命周期

spring的生命周期

2022-07-07 10:38:47 80

原创 java 密码的盐加密

java 密码的盐加密

2022-07-07 10:37:42 965

原创 ReentrantReadWriteLock

读锁应该插队吗?以及什么是读写锁的升降级。读锁插队策略首先,我们来看一下读锁的插队策略,公平与非公平锁中讲到的 ReentrantLock,如果锁被设置为非公平,那么它是可以在前面线程释放锁的瞬间进行插队的,而不需要进行排队。在读写锁这里,策略也是这样的吗?首先,我们看到 ReentrantReadWriteLock 可以设置为公平或者非公平,代码如下:公平锁:ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWrit

2022-07-07 10:37:03 159

原创 校验实体类上的属性,有注解的进行验证判断当前字段是否为空的情况。

校验实体类上的属性是否为空

2022-07-07 10:34:42 710

原创 自定义注解,实体属性查询具体需要的值

自定义注解使用场景

2022-07-07 10:26:45 253

翻译 简单的class文件加密解密类加载器使用。

加密解密类加载器

2022-07-06 19:30:56 490

原创 自定义类加载器。

自定义类加载器

2022-07-06 19:27:18 118

原创 工具类XMLUtil(解析返回soap和xml报文,获取目标节点值)

1.支持jar包(可能存在版本冲突)<!-- https://mvnrepository.com/artifact/org.jdom/jdom --><dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version></dependency>2.

2022-04-21 09:52:19 1281 1

原创 反射:newInstance()根据包名加类名得到具体类对象接口,调用指定类中的方法.

通过指定的包名加类名,通过反射newInstance()方法得到实现了BaseAcs接口的类,从而调用指定实现类中的业务流程.比如通过在数据库中添加每个实现类的包名加类名,那么查询出来指定的数据就可以更加灵活. /** * 根据class名称创建对象 * @param className class完整路径:包名加类名 * @return */ public static BaseAcs getInstance(String className){

2022-04-21 09:49:46 918

原创 sh文件内容启动文件

#!/bin/bashbashParam="$-"if [ 0 -eq $# ]; then echo "Need param $0 <start|stop|restart> "fiOPERATION=$1#SYNDATA_HOME=$(cd "$(dirname "$0")" && pwd)CUR_DIR=$(cd `dirname "$0"`; pwd)SYNDATA_HOME=$(cd ${CUR_DIR}/..; pwd)JAVAHOME=${

2022-04-21 09:38:27 130

原创 java 使用ftp下载远程服务器文件

第一种方法连接中带有账号密码直接远程下载: public Result<?> download(){ //进行下载文件---------------------------------开始 //远程服务器下载地址 String fileurl = "ftp://superAdmin:[email protected]:8888/usr/mp4pt/rec/CHN0/10110120011100/00001.mp4"; /

2022-04-21 09:29:39 2165

原创 java根据PostMan发送请求:设置接口请求工具类。

我们使用java代码进行接口远程调用第三方接口时,总会抒写接口代码,那么有这么多种方式进行发送请求。那我们应该怎么使用呢?比如有webservice接口,比如有Post请求的接口,必须有Get请求的接口。比如传的参数有xml的形式,比如传的参数有json格式等等格式情况,那我们的接口请求代码应该如何区别,抒写呢?我们要根据postMan中的方式来,只要是能够通过postMan发送成功的请求都可以使用首先是我们的请求方式:第一点:在postMan的请求方式有:GET、POST、PUT、DELETE请求

2022-03-21 18:18:33 4687 2

原创 为什么要重写hashcode方法和equals方法理论源码解析

为什么要重写hashcode方法和equals方法我们可能经常听到说重写equals方法必须重写hashcode方法,这是为什么呢?java中所有的类都是Object的子类,直接上object源码/* * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *

2021-10-21 12:57:50 160

原创 HashMap底层原理解析JDK1.7与JDK1.8(二)

JDK1.8通过put中的key去取到下标。key---->key.hashcode()----->然后去取余table.lenght------>inde-----0-7hashCoude转换取余以后会转换成数组的下标比如1,2等。用数组去存储的数据,指定下标去查找,时间复杂度O(1),对于一般的插入操作,涉及到数组元素的移动,平均复杂度是O(N).数组长度16为什么要去减去1,然后进行与运算。**重点链表转化为红黑树,需要链表的长度大于8,但是在转变成R-B tree之

2021-10-20 18:28:35 159

原创 SpringIOC学习

如果对于一个类,突然需要代理了,那么以前是通过new出来的就会出问题.我们一个类的参生不应该通过new出来,应该面向抽象编程.IOC 和DI有什么区别和关系:IOC控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.启动最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫"依赖查找"(Dependency Lookup)IOC是一种编程中需要达到的目标,DI是实现IOC的一种技

2020-12-27 17:22:50 102

原创 docker离线安装并导入镜像,dockers挂载文件夹和文件,dockers宿主机和容器之间文件和文件夹拷贝。

docker离线安装并导入镜像1、下载docker安装文件离线安装docker,需要下载docker的安装文件。地址:https://download.docker.com/linux/static/stable/x86_64/下载兼容的或者最新的docker安装包.2、离线docker安装将安装包文件上传到服务器目录并解压。docker解压到自己随意指定目录即可[root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar将d

2020-12-23 09:25:28 756

原创 设计模式----策略模式案例分析

策略模式.策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”abstract class Duck { //声明接口 protected FlyBehavior flyBehavior; protected QuackBehavior quackBehavior; //调用接口中的方法

2020-10-03 14:03:54 189

原创 设计模式---桥接模式案例分析.

桥接模式属于结构型设计模式。设计意图:将抽象部分与实现部分分离,使它们都可以独立的变化。一看到设计意图,大家可能有些发懵,我们看到的继承和接口不都是抽象和实现分离的吗?尤其是接口和抽象类都是这样的实现啊!那怎么还有这么个桥接的分离呢?举一个例子:比如有男人,女人,老人,他们都要上网做事情,男人上网玩英雄联盟,女人上网学习,老人上网玩连连看.如何实现呢?我们先不用桥接模式来实现一下:首先我们先不用桥接模式看看如何实现效果及实现要点:1.Bridge模式使用“对象间的组合关系”解耦了抽象和实..

2020-10-03 11:26:03 371

原创 Java Mybatis foreach嵌套foreach List<list<Object>>

在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,该参数为必选。index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选open:foreach代码的开始符号,一般是(和close=")"合用。.

2020-09-11 16:56:07 3837

原创 创建定时器任务,并控制定时器任务启动,停止,开机自动启动,线程Run()方法中调用外部方法。

public class QuartzJobServiceImpl implements IQuartzJobService {@Autowiredprivate ThreadPoolTaskScheduler threadPoolTaskScheduler;/** * 在ScheduledFuture中有一个cancel可以停止定时任务。 */private ScheduledFuture<?> future;/*存放定时器任务的map,用于启动停止定时器任务*/publi

2020-09-06 17:35:19 634

原创 设计模式---单例模式应用场景,案例介绍,原理分析

123

2020-08-29 18:42:56 377

原创 设计模式---原型模式深度理解浅拷贝深拷贝原理

一,栈栈具有先进后出,后进先出的特性,数据连续存储,操作简单,使用方便,无需管理。大部分芯片都对栈提供芯片级别的硬件支持,只需要移动指针就可以快速实现内存的分配和回收。比如局部变量使用栈内存,从而减少不必要的内存分配管理。栈创建和删除的时间复杂度是O(1),速度快。栈的缺点是不利于管理大内存,栈中的数据大小和生存周期都是确定的,缺乏灵活性。二,堆堆内存的管理机制相对复杂,有一套相应的分配策略,防止大量小碎片出现,同时加快查找。堆用于动态创建分配内存,创建和删除节点的时间复杂度是O(log

2020-08-27 19:34:03 205

原创 设计模式--策略模式---(枚举+Lamda+静态方法策略) 干掉 if else

package cn.com.skyvis.Mystudy;/** * 根据订单返回不同的信息 */@FunctionalInterfacepublic interface MsgInterface { String getMsg(String orderId);}package cn.com.skyvis.Mystudy;/** * 消息策略类 * * @Auther: ZhangSuchao * @Date: 2020/8/10 22:04 */public

2020-08-24 13:46:59 193

原创 设计模式---工厂模式和Java中工厂模式源码体现

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活 性的目的。工厂模式可以分为三类:1)简单工厂模式(Simple Factory)2)工厂方法模式(Factory Method)3)抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple

2020-08-24 11:57:26 300

空空如也

空空如也

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

TA关注的人

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