自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式锁设计

X锁和其他锁都不兼容,S锁值和S锁兼容,S锁和X锁都是行级别锁,兼容是指对同一条记录(row)锁的兼容性情况。读的时候硬是要加x锁”)当我们对某一行数据进行增删改是会加X锁。

2024-04-17 15:48:43 690

原创 分布式锁设计

就是在在分布式环境下,保证某个公共资源只能在同一时间被多进程应用的某个进程的某一个线程访问时使用锁。

2024-04-17 15:42:03 525 1

原创 技术提升-并发编程

进程是资源(内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。在java通过java xxx.class就启动一个进程!​ main springboot-- Java -jar 在jvm运行一个程序的实例。指定堆栈内存。。。​线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,

2024-04-16 14:46:19 868

原创 Elasticsearch 6.8.6启动成功后 测试报错 MapperParsingException[analyzer [ik_smart] not found for field [intro]

去下载es对应版本的ik分词器。

2024-02-28 17:23:32 271

原创 后端主流框架-SpringMvc-day2

文件下载:就是将服务器(表现在浏览器中)中的资源下载(复制)到本地磁盘;

2023-12-27 17:03:19 765

原创 后端主流框架-SpringMvc-day2

java中的文件上传

2023-12-27 17:00:59 796

原创 设计模式分类

2023-12-22 17:14:25 452

原创 Java设计模式之单例模式以及如何防止通过反射破坏单例模式

​ 什么是单例模式?保障一个类只能有一个对象(实例)的代码开发模式就叫单例模式​ 什么时候使用?工具类!(一种做法,所有的方法都是static,还有一种单例模式让工具类只有一个实例) 某类工厂(SqlSessionFactory)

2023-12-22 17:12:48 1708

原创 力扣111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。输入:root = [3,9,20,null,null,15,7]输出:2输入:root = [2,null,3,null,4,null,5,null,6]输出:5树中节点数的范围在 [0, 105] 内:深度优先搜索 思路及解法首先可以想到使用深度优先搜索的方法,遍历整棵树,记录最小深度。

2023-12-11 20:02:34 450

原创 力扣108. 将有序数组转换为二叉搜索树(三种思路)

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5]输入:nums = [1,3] 输出:[3,1] 解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。提示:-104 <= nums[i] <= 104 nums 按 严格递增 顺序排列。

2023-12-11 19:54:24 1188

原创 力扣100 相同的数(两种解法)

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2:输入:p = [1,2], q = [1,null,2] 输出:false 示例 3:输入:p = [1,2,1], q = [1,1,2] 输出:false提示:两棵树上的节点数目都在范围 [0, 100] 内。

2023-12-06 19:13:43 1051

原创 力扣 Java 101.对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2:输入:root = [1,2,2,null,3,null,3] 输出:false提示:树中节点数目在范围 [1, 1000] 内思路递归判断左右子树的子节点是否为镜像对称。

2023-12-06 19:05:49 469

原创 力扣28. 找出字符串中第一个匹配项的下标

暴力解法。

2023-11-09 16:51:43 261

原创 力扣27.移除元素

双指针法,右指针 right指向当前将要处理的元素,左指针 left指向下一个将要赋值的位置。

2023-11-09 16:21:36 126

原创 力扣26--删除有序数组中的重复项

更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。输入:nums = [0,0,1,1,1,2,2,3,3,4] 输出:5, nums = [0,1,2,3,4] 解释:函数应该返回新的长度。输入:nums = [1,1,2] 输出:2, nums = [1,2,_] 解释:函数应该返回新的长度 2 ,并且原数组 nums。5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。的前两个元素被修改为 1, 2。

2023-11-07 18:36:59 145

原创 20. 有效的括号

力扣第二十题 有效的括号

2023-11-06 19:51:36 71

原创 力扣十四题. 最长公共前缀

最长公共前缀

2023-11-06 19:09:20 182

原创 Rust程序语言设计 第十二章 一个 I/O 项目:构建一个命令行程序

在关于迭代器的第十三章中,我们将会学习如何更有效率的处理这种情况,不过现在,复制一些字符串来取得进展是没有问题的,因为只会进行一次这样的拷贝,而且文件路径和要搜索的字符串都比较短。在关于迭代器的第十三章中,我们将会学习如何更有效率的处理这种情况,不过现在,复制一些字符串来取得进展是没有问题的,因为只会进行一次这样的拷贝,而且文件路径和要搜索的字符串都比较短。虽然我们的程序还很小,这些瑕疵并不是什么大问题,不过随着程序功能的丰富,将会越来越难以用简单的方法修复他们。命令行参数指定的文件的功能。

2023-06-27 10:06:04 663 1

原创 Rust程序设计语言 第十三章Rust 中的函数式语言功能:迭代器与闭包

闭包和迭代器是 Rust 受函数式编程语言观念所启发的功能。他们对 Rust 以底层的性能来明确的表达高级概念的能力有很大贡献。闭包和迭代器的实现达到了不影响运行时性能的程度。这正是 Rust 竭力提供零成本抽象的目标的一部分。现在我们改进了我们 I/O 项目的(代码)表现力,让我们看一看更多cargo的功能,他们将帮助我们准备好将项目分享给世界。

2023-06-27 10:05:12 631

原创 Rust 程序设计语言 第十一章编写自动化测试

你也可以向assert!assert_eq!和assert_ne!宏传递一个可选的失败信息参数,可以在测试失败时将自定义失败信息一同打印出来。任何在assert!的一个必需参数和assert_eq!和assert_ne!的两个必需参数之后指定的参数都会传递给format!宏(在第八章的“使用运算符或format!宏拼接字符串”部分讨论过),所以可以传递一个包含{}占位符的格式字符串和需要放入占位符的值。自定义信息有助于记录断言的意义;当测试失败时就能更好的理解代码出了什么问题。

2023-06-15 16:24:26 882 1

原创 Rust 程序设计语言 第十章泛型、Trait 和生命周期

当使用泛型定义函数时,本来在函数签名中指定参数和返回值的类型的地方,会改用泛型来表示。采用这种技术,使得代码适应性更强,从而为函数的调用者提供更多的功能,同时也避免了代码的重复。回到largest函数,示例 10-4 中展示了两个函数,它们的功能都是寻找 slice 中最大值。接着我们使用泛型将其合并为一个函数。文件名:src/main.rsprintln!println!示例 10-4:两个函数,不同点只是名称和签名类型。

2023-06-06 14:36:07 470 5

原创 Rust 程序设计语言 第九章错误处理

让我们使用 Rust 类型系统的思想来进一步确保值的有效性,并尝试创建一个自定义类型以进行验证。回忆一下第二章的猜猜看游戏,我们的代码要求用户猜测一个 1 到 100 之间的数字,在将其与秘密数字做比较之前我们从未验证用户的猜测是位于这两个数字之间的,我们只验证它是否为正。在这种情况下,其影响并不是很严重:“Too high” 或 “Too low” 的输出仍然是正确的。但是这是一个很好的引导用户得出有效猜测的辅助,例如当用户猜测一个超出范围的数字或者输入字母时采取不同的行为。一种实现方式是将猜测解析成。

2023-05-29 11:11:03 612 1

原创 Rust 程序设计语言 第八章常见集合

在开始深入这些方面之前,我们需要讨论一下术语字符串的具体意义。Rust 的核心语言中只有一种字符串类型:字符串 slicestr,它通常以被借用的形式出现,&str。第四章讲到了字符串 slices:它们是一些对储存在别处的 UTF-8 编码字符串数据的引用。举例来说,由于字符串字面值被储存在程序的二进制输出中,因此字符串字面值也是字符串 slices。vector、字符串和哈希 map 会在你的程序需要储存、访问和修改数据时帮助你。

2023-05-17 10:17:04 382 1

原创 Rust 程序设计语言 第七章使用包、Crate 和模块管理不断增长的项目

在本节,我们将讨论模块和其它一些关于模块系统的部分,如允许你命名项的路径paths用来将路径引入作用域的use关键字;以及使项变为公有的pub关键字。我们还将讨论as关键字、外部包和 glob 运算符。现在,让我们把注意力放在模块上!首先,我们将从一系列的规则开始,在你未来组织代码的时候,这些规则可被用作简单的参考。接下来我们将会详细的解释每条规则。如果希望将一个路径下所有公有项引入作用域,可以指定路径后跟这个use语句将中定义的所有公有项引入当前作用域。使用 glob 运算符时请多加小心!

2023-05-15 10:07:50 255 2

原创 Rust 程序设计语言 第六章枚举和模式匹配

结构体给予你将字段和数据聚合在一起的方法,像Rectangle结构体有width和height两个字段。而枚举给予你将一个值成为一个集合之一的方法。比如,我们想让Rectangle是一些形状的集合,包含Circle和Triangle。为了做到这个,Rust 提供了枚举类型。让我们看看一个需要诉诸于代码的场景,来考虑为何此时使用枚举更为合适且实用。假设我们要处理 IP 地址。目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。

2023-05-11 10:03:13 141 1

原创 Rust 程序设计语言 第五章使用结构体组织相关联的数据

结构体和我们在“元组类型”部分论过的元组类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。定义结构体,需要使用struct关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。

2023-05-06 10:58:01 399 8

原创 Rust 程序设计语言 第四章认识所有权

Rust 的核心功能(之一)是所有权ownership虽然该功能很容易解释,但它对语言的其他部分有着深刻的影响。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。

2023-05-06 10:48:56 155

原创 用Rust语言打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)

【代码】用Rust语言打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)

2023-04-26 13:53:17 211

原创 用Rust语言生成 n 阶斐波那契数列

【代码】用Rust语言生成 n 阶斐波那契数列。

2023-04-26 13:50:22 101

原创 用Rust语言实现摄氏温度和华氏温度的相互转化

*

2023-04-26 13:47:35 132

原创 Rust 程序设计语言 第三章常见编程概念

你做到了!这是一个大章节:你学习了变量、标量和复合数据类型、函数、注释、if表达式和循环!相互转换摄氏与华氏温度。生成 n 阶斐波那契数列。打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)。当你准备好继续的时候,让我们讨论一个其他语言中并不常见的概念:所有权(ownership)。

2023-04-26 13:41:19 360

原创 Rust 程序设计语言 第二章 写个猜数字游戏

letmatch、函数、使用外部 crate 等等,接下来的几章,你会继续深入学习这些概念。第三章介绍大部分编程语言都有的概念,比如变量、数据类型和函数,以及如何在 Rust 中使用它们。第四章探索所有权(ownership),这是一个 Rust 同其他语言大不相同的功能。第五章讨论结构体和方法的语法,而第六章侧重解释枚举。

2023-04-26 11:42:30 220

原创 Rust 程序设计语言 第一章入门

安装好rust后就可以开始编写第一个Rust程序了,当学习一门新语言的时候,使用该语言在屏幕上打印是一项传统,我们将沿用这一传统!注意:rust 对于你的编辑器、工具,以及代码位于何处并没有特定的要求,如果你更倾向于使用集成开发环境(IDE),而不是命令行,请尽管使用你喜欢的 IDE。目前很多 IDE 都在一定程度上支持 Rust;查看 IDE 文档以了解更多细节。Rust 团队一直致力于借助提供强大的 IDE 支持。首先创建一个存放 Rust 代码的目录。

2023-04-26 11:27:23 252

原创 Java设计模式之单例模式

单例模式

2022-06-28 20:05:38 492

原创 Java设计模式之简单工厂模式

java设计模式之简单工厂模式

2022-06-28 16:37:18 1116

原创 Spring Boot 静态资源访问

静态资源访问Spring Boot 访问静态资源在 SpringBoot 项目中没有我们之前常规 web 开发的WebContent(WebApp),它只有 src 目录。在 src/main/resources 下面有两个文件夹,static 和 templates。SpringBoot 默认在 static 目录中存放静态页面,而 templates 中放动态页面。1 static 目录 Spring Boot 通过 classpath/static 目录访问静态资源。注意存放静态资源的

2022-05-12 11:40:53 11392

原创 7-2 动物声音“模拟器”

abstract类和abstract()方法设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:(1)编写抽象类AnimalAnimal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。(2)编写模拟器类Simulator该类有一个playSound(Animal animal)方法。参数animal可以调用Animal的子类重写的cry()方法播放具体动物的声音、调用子类重写的getAnimalName()方法显示动

2022-05-06 11:24:01 752

原创 cookie和session举例说明(你=客户端 学校=服务端)

cookie和session举例说明(你=客户端 学校=服务端)你怎么证明你是学校的学生? 你=客户端 学校=服务端两种方式:(1)收据 学校给你开了收费的收据​ (2)学校登记 学校标记你来过”同理“:一个网站怎么证明你来过呢?服务端 <–> 客户端二种方式:(1)服务端给客户端一个信件,客户端下次访问服务端的时候带上信件就可以了;This is cookie(在客户端保存)​ (2)服务端

2022-04-27 16:32:07 141

原创 7-1 对象数组 (100 分)

有一个人员数组,要在此数组中查询某个人是否存在,具体要求如下:1、定义Person类:a、私有属性 name和ageb、两个属性的getters 和settersc、带参数构造方法,为name和age传值d、ToString方法public String toString() { return "Person [name=" + name + ", age=" + age + "]";}2、在主类main方法中创建Person数组,数组长度通过键盘输入,数组每一个对

2022-04-21 20:08:44 437

原创 7-1 方法重载

根据题目要求完善代码。 一个木块如果高度比宽度大,我们说它是竖着放的,否则我们说它是平放的。 读入一个木块的高度和宽度。如果它是平放的,则输出A,否则输出B。输入格式:输入两个正整数表示高和宽。输出格式:输入A或者B。样例1">输入样例1:50 50输出样例1:A输入样例2:50 20输出样例2:B代码实现import java.util.Scanner;public class Main { public stat.

2022-04-11 14:08:41 571

思维导图.xmind

思维导图.xmind

2022-10-13

空空如也

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

TA关注的人

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