自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dubbo异常分析elapsed: 3000, timeout: 3000. concurrent invokes: 20. max concurrent invoke limit: 20

当当前执行该方法的线程超出了最大限制,那么可以等待一个timeout时间,如果时间过了还是超出了最大限制,那么就抛出异常。

2024-03-02 10:40:10 199

原创 计算机网络基础知识分享

发送一个http请求,从客户端到服务器端,都经历了什么?

2023-12-25 11:06:22 918

原创 Jackson无缝替换Fastjson

一般默认的转换器不能满足我们的需求,需要自定义消息转换器,可以创建自己的转换器类(Fastjson,Jackson消息转换器),并在 Spring Boot 配置中进行注册。通常情况下,只需要注册您的自定义转换器,Spring Boot 将自动将其应用于适当的请求和响应。@Override//使用fastjson converter@Bean// 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行序列化。

2023-11-23 19:40:46 916

原创 MySQL中自增id用完怎么办?

MySQL里有很多自增的id,每个自增id都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无 符号整型(unsigned int)是4个字节,上限就是2^32 - 1。

2023-11-23 11:24:47 913

原创 ReentrantLock源码解析

ReentrantLock源码解析

2023-08-17 16:10:28 186

原创 线程池ThreadPoolExecutor源码剖析

线程池ThreadPoolExecutor源码剖析。

2023-08-09 19:08:31 165

原创 【xxl-job定时任务框架详解】

在浏览器中输入调度中心的地址和端口号,例如http://localhost:7080/xxl-job-admin,即可访问XxlJob的调度中心。综上所述,XxlJob通过调度中心和执行器的协作,实现了任务的自动化调度和执行。用户只需要简单配置任务和执行器,就可以实现分布式任务调度的管理。将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。,可以将任务分配给合适的执行器,并根据任务的状态和执行结果进行监控和管理。

2023-04-19 10:44:54 855 1

原创 【日志框架SLF4J+Logback详解】

一,常用日志框架日志门面:JCL,SLF4J日志框架:Log4j,JUL,Log4j2,Logback总结:在 Java 应用程序中,使用 SLF4J 和 Logback 是一个流行的选择。SLF4J 提供了一套通用的日志接口,Logback 提供了高性能的实现,二者组合使用可以实现灵活、高效、可扩展的日志记录。二,引入项目由于spring-boot框架默认集成了SLF4J+Logback,所以如果引入了Springboot框架,直接使用即可。1,resources目录下新建配置文件:logba

2023-04-19 10:34:19 205

原创 【Mybatis-Plus详解】

总的来说,IService是用于定义服务层的接口,提供通用的业务方法,而BaseMapper是用于定义数据访问层的接口,提供通用的数据访问方法。HikariCP的性能非常优异,相较于其他开源数据库连接池(如Apache DBCP、C3P0等)有着更好的响应时间和吞吐量,这得益于HikariCP的一些优化策略,例如快速连接池初始化、减少线程竞争、并发执行等。HikariCP和Druid都是常见的Java数据库连接池,它们都有自己的优缺点,选择哪一个更好,需要根据具体的项目需求和使用场景来进行选择。

2023-04-19 10:30:29 1014

原创 Apollo配置中心2.0版本详解(源码阅读)

Apollo配置中心详解

2023-04-19 10:09:28 644

原创 一次不一样的Mysql安装——需要注意的问题和各种细节

安装mysql8.0版本

2023-04-19 09:50:25 412

原创 Rocket MQ详解

Rocket MQ。

2023-04-14 17:23:55 5084 2

原创 【Rocket MQ简介和多节点部署】

RocketMQ是一个开源的分布式消息中间件,最初由阿里巴巴集团开发。它的设计目标是为了在高并发、高吞吐量的场景下,实现可靠的消息传输,并且具有良好的可伸缩性和可扩展性。RocketMQ支持多种消息模式,包括同步、异步、单向和定时消息。同时,RocketMQ还具有、分布式部署等优点,可以在众多领域中广泛应用,比如电商、金融、物流等。RocketMQ目前已经成为了Apache软件基金会下的顶级开源项目之一,并得到了全球广泛的应用和认可。

2023-03-30 16:44:30 841

原创 【任务重试】

2023-03-28 19:38:34 66

原创 Junit4 + Mockito进行单元测试实战案例

​。

2023-03-22 16:51:35 1277

原创 单元测试详解

维基百科中是这样描述的:在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。

2023-03-20 16:40:10 6583

原创 JVM详解

可以作为根节点的对象:方法区中静态属性引用的对象,常量引用的对象,虚拟机栈中引用的对象,本地方法栈中JNI引用的对象。①引用计数法,给对象添加一个引用计数器,当对象被引用时,计数器就加1,当引用失效时,计数器就减1,当计数为0时,就判定该对象需要被回收。③在Survivor区中,有一批对象的内存总大小大于S的50%,就会把年龄大于这批对象中最大年龄的对象放入老年代,希望有可能长期存货的对象,尽早挪入老年代中。Minor GC之后,存活对象们的大小大于Survivor2,小于老年代剩余空间,则分配到老年代。

2023-02-16 10:09:51 504 1

原创 记一次OOM

调大JVM内存解决OOM

2023-02-15 17:29:46 379

原创 Caused by: java.lang.RuntimeException: 请检查primary默认数据库设置

SpringBoot + Mybatis-plus实现多数据源配置

2022-10-11 17:52:10 4729

原创 浅谈Java中的线程池

java线程池

2022-10-11 10:15:45 69

原创 java.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector异常

1,错误背景:无法导入maven依赖2,错误内容:2 errorsjava.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector, see the following errors:No implementation for org.apache.maven.model.path.PathTranslator was bound.while locating org.apac

2022-10-11 10:15:00 662

原创 开发常用名词解释

java开发工程师常用组件

2022-10-09 16:32:09 882

原创 java垃圾回收基础

java垃圾回收机制

2022-09-29 16:10:42 305

原创 lambda表达式详解

java8最优秀的设计——lambda表达式

2022-09-14 10:51:02 145 1

原创 常用系统监控指标

常用监控指标

2022-09-08 19:12:43 1096 1

原创 23种设计模式——模板方法,

23种设计模式之模板方法模式

2022-08-16 12:00:18 282 2

原创 Apollo简介

Apollo简介,架构,热更新原理,源码同步操作

2022-08-10 18:19:45 577 1

原创 阿里云Oss存储

阿里云Oss存储简单概念

2022-07-21 11:19:56 2089 1

原创 apollo配置类没有生效的原因分析。

类型:static修饰的变量没有生效。示例:apollo配置:配置类:使用:apollo配置类没有生效原因当apollo监听到某个配置类的属性修改了,就会在springioc容器中清除这个配置bean。那么下次再次使用的时候就会重新对这个配置bean初始化(懒加载的方式)。而此案例需要使用的配置属性是被static修饰的。使用的时候是通过类名.属性,并不需要生成配置类对象,所以springioc容器也就不会对其进行初始化,那么就还是使用原来的值,所以导致了配置不生效。解决方法:不使用

2022-04-02 17:22:04 3317 1

原创 java程序员必须安装的软件

一,JDK1,JDK,JRE,JVM的关系:JDK(Java se Development Kit)JavaSE开发工具包,包括:java编译器(javac),JRE(java运行时环境),java基础类库(lib文件夹)。JRE(Java Running Environment)java运行时环境。java程序运行所需要的环境,包括JVM和lib(基本类库)。JVM(Java Virtual Machine)Java虚拟机,它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,将字节码

2022-02-12 22:14:19 17015 6

原创 javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 异常解决

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint ‘javax.validation.constraints.NotBlank’ validating type ‘java.lang.String’. Check configuration for ‘phoneNumber’ 异常:这句话的意思是说:不能使用 @NotBlank注解来修饰’java.lang.Str

2021-12-24 14:22:39 13548 1

原创 Optional类的用法

Optional类存在于java8中,用于解决防止空指针问题写的很多if。常见API:**of, ofNullable**, Optional.of(user); No matter what the user is ,return the user;Optional.ofNullable(user);If user is null, return the empty Object.**orElse, orElseGet, orElseThrow**Optional.ofNullabl

2021-11-11 15:39:14 160

原创 mysql中的索引

索引啥时候会失效:1,like的时候%在前面,where中的值有索引,且select中的值和where的一样或者select中的是主键索引,索引才生效。(where中的索引)%在后面,where中的值有索引,就会使用索引。(where中的索引)2,orWHERE后用or连接的2个条件,有一个没有索引那么就不会使用索引3,隐式转换导致不走索引索引类型为varchar,而赋值为一个数字,那就会发生隐式转换,就不会走索引。4,!=和<>(不等于)不走索引,除非where后的是主键索引(

2021-10-29 17:30:59 184 1

转载 MySQL索引底层数据结构及原理深入分析

原文链接,首发于公号:Biggerboy 感谢关注大家有没有遇到过慢查询的情况,执行一条SQL需要几秒,甚至十几、几十秒的时间,这时候DBA就会建议你去把查询的 SQL 优化一下,怎么优化?你能想到的就是加索引吧?为什么加索引就查的快了?这就要从索引的本质以及他的底层原理说起。索引是什么那索引到底是什么呢?你是不是还停留在大学学『数据库原理』时老师讲的“索引就像字典的目录”这样的概念?老师讲的没错,但没有深入去讲。其实索引就是一种用于快速查找数据的数据结构,是帮助MySQL高效获取数据的排好序的

2021-10-29 17:09:05 208 1

原创 美团的面试

美团面试和自己的一些理解:一、说说Java的容器:List,Set,Map(1)List:分为arrayList和LinkedList和Vector,Queue(基于linkedList实现),Stack(基于Vector实现),相比数组都可以动态伸缩,arrayList有很好的随机存取效率,因为使用的数组实现(内存中的连续区域,直接计算地址),默认容量10;LinkedList有较小的插入删除代价,因为用的是双向 链表实现的;Vector也是使用数组实现的,应用了synchronized方法,所以性能

2021-03-13 18:56:09 198 5

原创 tcp和udp的区别

首先tcp传输协议是一种可靠的传输协议,通过信道来进行传输的传输协议,通过二进制字节流的形式进行传输的。而udp是通过数据报的形式进行数据的传输,容易会发生丢包,所以这是一种并不怎么可靠的传输协议。其次由于tcp是通过三次握手,确认应答-序列号,拥塞控制,流量控制来保证数据传输的可靠性,而udp没有这些,所以tcp更容易被黑客入侵,相对来讲安全性不比udp高。最后tcp传输协议传输的速度上比不上udp传输协议。tcp因为有许多的机制保证传输的可靠性,所以对系统资源要求较高。那么tcp是如何保证传输的

2021-03-01 20:46:27 107

原创 索引的结果为什么使用B+数好?

一开始是使用二叉查找树来实行的。特点:左子节点小于父节点,右子节点大于父节点,不能重复。类似这样的:局限性:容易退化成类似链表的数据结构,查找的效率慢。之后就变为了二叉平衡树:特点:所有节点的左右子树高度差不超过1,且左子节点小于父节点,右子节点大于父节点,不能重复。类似这样的;当左右两个子树高度差超过1时,可以通过左旋右旋来进行调整。局限性:正是因为要维护这种平衡,那么付出的代价也是比较大的,当插入删除的操作比较多时,付出的代价较大。红黑树:一种二叉查找树,但在每个节点增加一个存

2021-02-26 23:17:01 548

原创 sql语句优化方案

mysql中使用limit来实现分页:limit n1,n2 表示从第n1条数据(下标从0开始)开始查询,查询n2条数据。例: select * from student limit(curPage-1)*pageSize,pageSize;curPage当前页号,pagesize没个页面多少条数据。查询优化:1,使用子查询,首先定位偏移位置的id,然后往后查询,这种方式适用于id递增的情况。select * from orders_history where type=8 and id&gt

2021-01-26 16:43:52 102

转载 二维数组获取行和列

一、获取行和列array[i][y]int rows = array.length;//行数int columns = array[0].length;//列数二、判空二维数组首地址是否为空,即arraynull;二维数组是否为{},即array.length0的情二维数组是否为{{}},即array.length=1&&array[0].length0的情况;综上所述,Java中判断二维数组为空的条件为:if((arraynull||array.length0)||(ar

2020-12-22 23:12:43 3532

原创 mysql表中的常见操作简单解析

语法以下为创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_name column_type);以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_aut

2020-11-11 13:33:08 152 1

空空如也

空空如也

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

TA关注的人

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