自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 LRU算法实现

LRU算法实现的基本思路

2022-09-08 15:32:37 187 1

原创 【源码分析】Ribbon如何实现轮询负载均衡

Ribbon有哪些常用的负载均衡策略:轮询,随机等等。那常用的轮询是如何实现的呢❓。

2022-09-05 15:08:08 376

原创 SpringCloud Gateway整合SpringCloudAlibaba nacos报错

SpringCloud Gateway整合Spring Alibaba nacos报错

2022-06-09 17:26:31 206

原创 源码解读HashMap

文章目录源码解读HashMapput方法putVal方法resize方法split方法treeifyBin方法源码解读HashMapput方法public V put(K key, V value) { // 根据key计算hashcode return putVal(hash(key), key, value, false, true);}putVal方法final V putVal(int hash, K key, V value, boolean onlyIfAbsent

2022-05-09 09:19:17 127

原创 自定义Spring Boot starter

文章目录自定义Spring Boot starter创建自动配置模块创建starter启动器新建Spring Boot工程使用自定义Spring Boot starter创建自动配置模块创建读取属性的类package com.xl.stone.bean;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "stone.hello

2022-04-30 20:44:29 498

原创 源码解读fail-fast与fail-safe机制

准备这里可以先阅读一下ArrayList扩容机制介绍基本介绍我放在这个文章里面了fail-fast与fail-safe源码解读向ArrayList里面添加元素是,会经过这个方法,这篇文章我们重点关注这个地方,modCount++,他有什么作用呢,在前面我写的ArrayList扩容机制里面并没有详细介绍它的作用,因为在单线程操作时他并不会发挥作用。他在这个fail-fast机制里起了决定性的作用。进入源码解读,利用idea debug工具模拟一个线程迭代ArrayList,另一个线程向其中添加数据(

2022-04-22 21:33:47 137

原创 fail-fast与fail-safe

fail-fastfail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。例如:我在这个遍历里当遍历3时,尝试使用idea调试工具向list中添加数据,看到结果这个时候l

2022-04-22 20:09:15 142

原创 Java8中ArrayList的扩容机制

文章目录ArrayList的扩容机制准备先看结论使用add(E e) 方法添加使用addAll(Collection<? extends E> c)方法添加ArrayList的扩容机制准备首先要清楚ArrayList的容量的概念The array buffer into which the elements of the ArrayList are stored. The capacity of the ArrayList is the length of this array buf

2022-04-11 22:08:25 2283

原创 冒泡排序优化方案(两种思路)

备考软件设计师时复习到冒泡排序,在这里记录一下对冒泡排序的优化。先简单聊一下冒泡排序实现:依次比较数组中相邻两个元素大小,若 a[j] > a[j+1],则交换两个元素,两两都比较一遍称为一轮冒泡,结果是让最大的元素排至最后重复以上步骤,直到整个数组有序。...

2022-04-11 16:52:13 4405

原创 SpringCloud报错集合

SpringCloud报错集合1 重复的请求名2 thymeleaf未引入依赖 Circular view path [index]: would dispatch back to the current handler URL [/index] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

2022-04-01 10:53:32 1622

原创 Redis常用数据类型

文章目录Redis 常用数据类型1、redis基本命令2、常用数据类型2.1、String(字符串)2.2 、List(列表)2.3、Set(无序集合)2.4、Zset(有序集合)2.5、Hash(散列集合)Redis 常用数据类型1、redis基本命令命令作用select index选择哪个数据库key *查看当前库所有keyexists key判断某个key是否存在type key查看你的key是什么类型del key删除指定的key数据

2022-04-01 10:43:06 770

原创 MD5使用以及注册登录逻辑

文章目录MD5引入简介使用MD5引入MD5是一种摘要算法,摘要算法也叫哈希算法,散列算法可以将任意长度的一个数据转换成一个定长的,不可逆的结果。只要原文本不同,计算结果必然不同。摘要算法用于可以用来对比信息源是否一致,因为只要数据源发生变化,那么得到的摘要信息必然不同消息摘要算法的特点:无论输入的消息有多长,计算出来的消息摘要的长度总是固定的;消息摘要不是真正的随机,因为用固定的算法对相同的消息求两次摘要,其结果必然相同;消息摘要函数是无陷门的单向函数,也就是说只能进行正向的信息摘要,而无法

2022-04-01 10:29:59 649

原创 MySQL 1075错误

1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key错误的设置导致表中是存在两个自增的字段,而MySQL表的定义中只能有一个自增的字段而且必须定义为键。

2022-03-24 20:38:40 2840

原创 MySQL 1414错误

MySQL 1414错误今天写一个订单超时的存储过程(如图1),执行是使用call del_timeout_order(1159,0)报了1414错误(如图2),造成个错误的原因是因为输出的参数2res不是一个变量,解决办法调用时传入一个用户变量@res即call del_timeout_order(1159,@res)图1图2...

2022-03-22 20:46:18 1340

原创 图形验证码工具类 返回验证码的base64编码

浏览器发起请求,后端生成图形验证码以base64编码格式可以降低(相比直接返回图片)响应时间废话不多说直接上代码前端使用时src = "data:image/jpg;base64," + (请求响应的结果)后端调用 outputImage(HttpServletResponse response)方法即可/** * 验证码生成工具 * * @author stone */public class VerifyCodeUtil { public static final St

2022-03-13 15:53:45 1059

原创 修改默认地址(实现一条sql语句修改两条记录)

这里写自定义目录标题实现一条sql语句修改两条记录实现一条sql语句修改两条记录项目过程中遇到了修改默认地址的问题,一个用户只能有一个默认地址。实现方式一将原来的默认地址设置为普通地址update address set type = 0 where type = 1 and uid = #{aid};修改要替换的地址为默认地址update address set type = 1 where aid = #{aid} and uid = #{uid};使用这种方式需要两条SQ

2022-03-09 15:28:15 770

原创 JUC学习笔记(下)

JUC学习笔记(上)文章目录四、阻塞队列BlockingQueue核心方法种类五、线程池概述种类实现使用Executors类创建自定义线程池六、ForkJoin框架原理实现七、CompletableFuture简介Future 与 CompletableFutureFuture 的主要缺点实现四、阻塞队列达到队列的最大限制时,进队列的线程阻塞,为空时,出队列的线程阻塞BlockingQueue核心方法方法作用抛出异常特殊值阻塞超时插入add(e)offer(e)

2021-11-30 21:43:26 543

原创 JUC学习笔记(上)

文章目录一、虚假唤醒问题二、集合线程不安全HashSet解决方案HashMap解决方案ArrayList解决方案三、多线程锁的使用synchronized锁的范围公平锁和不公平锁可重入锁(递归锁)死锁Collable接口辅助类读写锁一、虚假唤醒问题因为wait在那里睡在哪里醒(如下在判断里面睡觉后,又在判断里面唤醒但是不满足判断条件也会被唤醒执行++操作)if (num!=0){ this.wait();}num++;改进while (num!=0){ this.wa

2021-11-25 22:53:52 487

原创 JavaScript 截取字符串

JavaScript 截取字符串目录一.substringslice()目录一.substrsubstringslice()

2021-07-20 16:05:55 82

原创 Http协议读取报文

Http读取报文请求报文响应报文响应消息请求报文/** 请求报文 * 请求头 * 1,请求头行 请求类型(space)资源路径(space)http协议版本 * 键:值 N个参数 * (\n) * 2,请求体 * POST 才会产生请求体 1.表单提交 2.ajax.post() */响应报文/** 响应报文 * 响应头 * 1,响应头行 xieyi(space)结果码(space)结果

2021-06-26 22:25:57 382

原创 Java 内部类

内部类在 Java 中,将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就来了解下这四种内部类的用法。1.成员内部类2.局部内部类3.匿名内部类4.静态内部类三级标题四级标题五级标题六级标题...

2020-10-03 22:22:43 74

原创 Java 标识符

程序开发中需要为特定的代码进行唯一名称的指定,而这样的名称就被称为标识符。在Java中标识符的定义的核心原则如下:由字母、 数字、_、$所组成,其中不能使用数字开头,不能使用Java中的保留字(或者被称为“关键字”)。为了更好的理解请看下面2组对比:下面是合法的标识符:abcd,abcd_956,abc_253;下面是不合法的标识符:class(关键字) ,67.9(数字开头和包含.) ,YOU HU(包含空格);另外值得注意的是从JDK1.7开始就增加了中文的支持。即标识符可以使用中文

2020-10-03 20:13:34 133

自学的JUC学习笔记.md

总结了个人自学的JUC学习笔记,个人主页可以查看的到。

2021-12-01

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

TA关注的人

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