自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL中的事务隔离级别与MVCC及两者间的关联

MVCC(多版本并发控制)是InnoDB存储引擎的核心技术,旨在支持高并发操作,同时确保数据的一致性视图。它允许事务读取其启动时的数据版本,即使其他事务在此期间对数据进行了修改。这一机制通过保留数据的多个版本来实现,每个版本都与特定的事务ID相关联。当事务尝试读取某行数据时,它会使用其事务ID来查找该行数据的一个版本,这个版本是在该事务开始之前最新的、已提交的数据版本。

2024-04-06 11:55:16 414 1

原创 NOSQL(非关系型数据库)的优缺点有哪些?

NoSQL数据库不受固定数据模型的限制,可以根据应用需求灵活设计数据结构,轻松应对大规模数据集。此外,它支持分布式架构,具有出色的水平扩展能力,能够高效地处理大量数据和并发访问需求。与传统的关系型数据库相比,NoSQL数据库通常具有更高的读写性能,尤其是在处理大量写入操作时更为高效,适合处理大规模数据和高并发场景。许多NoSQL数据库具备自动分区和复制功能,能够在节点故障时自动恢复数据,确保系统持续稳定运行。

2024-04-03 14:41:27 694

原创 有关系型数据库的情况下,为什么还要使用NOSQL(非关系型数据库)?

与关系型数据库相比,NOSQL数据库展现了更高的灵活性和扩展性优势。它无需预先设计固定的表结构,因此可以根据实际应用需求灵活地进行数据的存储和组织。

2024-04-03 14:35:21 332

原创 Java线程中sleep()、wait()、yield()、join()方法的使用

wait(): 该方法属于 Object 类,在这个过程里线程会释放对象锁,只有当其他线程调用 notify()或notifyAIl()才能唤醒此线程。yield(): yield是 Thread 类中的方法,能够暂停当前正在执行的线程对象,不会释放资源锁,也被称为礼让线程,和 sleep 不同的是 yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,使用该方法后,需要与其它线程再次重新争夺CPU,谁抢到谁执行。通常谁调用,谁先完成执行。notifyAll(): 唤醒所有当前对象锁等待的线程。

2023-10-24 23:09:17 611

原创 JVM的主要组成及其作用

再将字节码加载到内存中,但字节码文件只是JVM 的一套指令集规范,并不能直接交给底层操作系统去执行。,将字节码翻译成底层系统指令,再让 CPU 去执行。会将一些不需要的内存释放回收,避免出现内存溢出等问题。Java程序运行的时候,首先会通过。调用其他语言来实现整个程序的功能。在这个过程中还得要通过。把Java 代码转换成字节码。

2023-09-30 17:04:04 692

原创 垃圾回收算法有哪些

复制算将内存分为两块,一块用于使用,一块用于复制存活对象。优点是能够解决标记清理效率低的问题,减少内存碎片。缺点是该算法的内存利用率只有一半。minorGC一般都采用复制算法。

2023-09-30 16:50:00 151

原创 Nacos的作用及用法

第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值。也叫服务发现中心,微服务将自己注册到服务注册中心,服务间远程调用通过服务注册中心获取目标服务的地址,从而进行远程调用。Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类型。dev:第二部分,它是环境名,通过spring.profiles.active指定,Dataid: 包括三部分:服务名、环境名、扩展名,然后要在nacos添加配置文件。

2023-09-26 17:01:03 442

原创 Spring中的IOC和AOP

IOC即控制反转,把对象的创建,属性设置,初始化,销毁等控制权交给Spirng的IOC容器去管理,由Spring框架去创建实例和管理实例之间的依赖关系,解放程序员的劳动力。对象被注册到Spring的IOC容器中,使用的时候从容器中获取即可,它通过依赖注入,将需要的外部资源注入到组件中,使用IOC使得对象之间的耦合度降低,资源变得容易管理。Spring容器在初始化时先读取配置文件,根据配置文件或元数据,创建并组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。

2023-09-26 11:28:35 87

原创 简单背包问题

有一个背包能装的重量 maxw (正整数,0≤maxw≤200000),同时有 n 件物品(1≤n≤100),每件物品有一个重量 wi (正整数)和一个价值 pi​ (正整数)。要求从这 n 件物品中任取若干件装入背包内,使背包的物品价值最大。第 1 行:背包最大载重 maxw,物品总数 n;第 2 行到第 n+1行:每个物品的重量和价值;一个数字即背包内物品最大价值;

2023-03-18 20:44:01 253 1

原创 类的实例化顺序是什么样的?

第五、子类实例成员与实例初始化块按顺序执行,随后子类进行构造。修饰符的静态初始化快按照代码顺序率先执行。第三,父类实例成员与实例初始化块按顺序执行。修饰符的静态初始化快按照代码顺序执行。第二、 子类静态成员与使用了。首先、父类静态成员与使用了。第四、父类方法构造。

2023-02-01 16:07:58 215

原创 java中==与equals有哪些区别

2.在类类型中,==中比较的是地址值,如果equals没有在类类型中被重写,则同样比较的是地址值。当equals被重写方法以后,则会比较两者之间的值是否完全相等。1.首先,在基本数据类型的使用中来说,全都使用的是==,不使用equals,equals是在类类型中使用。例如,在String 类型中,equals的对比方法是要求两个字符串之间要完全一样,包括大小写也必须一样。

2023-02-01 12:49:30 130

原创 java中的switch支持的数据类型有哪些?

1、switch中支持的数据类型有整型类型:bate、short、int、char。2、switch中支持的数据类型有枚举类型:enum等。3、switch中支持的数据类型有String类型。

2023-02-01 12:36:01 2887

原创 试题:出行计划

(题目源于第25次CCF计算机软件能力认证)最近西西艾弗岛上出入各个场所都要持有一定时限内的核酸检测阴性证明。具体来时,如果在 t时刻做了核酸检测,则经过一段时间后可以得到核酸检测阴性证明。这里我们假定等待核酸检测结果需要 k个单位时间,即在 t+k时刻可以获得结果。如果一个场所要求持 24个单位时间内核酸检测结果入内,那么凭上述的核酸检测结果,可以在第 t+k 时刻到第 t+k+23时刻进入该场所。

2023-01-16 21:46:09 422

原创 递归实现排列型枚举

把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数 n。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤93。

2022-10-31 22:33:36 158

原创 递归实现指数型枚举

从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。数据范围1≤n≤153注:输出第一行为空集。

2022-10-31 16:53:35 98

原创 力扣 试题:最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

2022-10-24 08:45:15 122

原创 力扣 试题:交替合并字符串

给你两个字符串 word1 和 word2。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串。

2022-10-24 08:34:52 104

原创 力扣试题:最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。

2022-10-11 08:49:39 117

原创 力扣试题:最大升序子树的和

给你一个正整数组成的数组 nums ,返回 nums 中一个 升序 子数组的最大可能元素和。子数组是数组中的一个连续数字序列。已知子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,若对所有 i(l

2022-10-08 10:34:33 84

原创 力扣试题:移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝。

2022-10-01 21:25:53 74

原创 力扣试题:删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

2022-09-29 22:05:43 84

原创 力扣试题:最长公共前缀 解法

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

2022-09-28 22:56:31 112

原创 力扣试题:罗马数字转整数 解法

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II。27 写做 XXVII, 即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。

2022-09-28 22:50:53 109

原创 java中TreeSet的详解与使用

TreeSet中的可排序指的是 1.对于数值类型的数据默认进行升序排序。LinkedSet集合:数据不重复、有序、无索引、增删改查较快(基于哈希表和双链表);LinkedList集合: 数据可重复、有索引、首位数据增删快(基于链表);HashSet集合:数据不重复、无序、无索引、增删改查较快(基于哈希表);TreeSet集合:根据自身需求对数据进行排序等操作(基于红黑树)。TreeSet集合的特点是 可排序,不重复,无索引。ArrayList集合:数据可重复、有索引、查询快(基于数组);...

2022-08-26 14:49:35 1627

原创 java中List集合的几种遍历方式

【代码】java中List集合的几种遍历方式。

2022-08-24 11:16:56 7335

原创 java中Collection集合的体系与特点

Collection集合表示单列集合,指每个集合元素中只含有一个数据。该集合包含了两大集合体系:分别是List系列和Set系列。List系列集合中添加的数据是 可重复、有序且有索引的。Set系列集合中添加的数据是 不可重复、无序且无索引的。集合支持泛型且不支持基本类型,支持引用类型数据。

2022-08-21 11:55:33 285

原创 Java中的升序和降序

comparator接口只能使用引用元素进行排序,在该接口比较器中,当进行升序排序时,如果认为左边数据大于右边数据则返回正整数,右边大于左边返回负整数,相等返回0,这样就能进行一个完整的升序排序操作。降序排序则反之,左>右为返回负整数,以此类推。而我们的comparator还有一种简便方法来进行排序操作,即无需在该接口中进行if语句的判断,而是将两个值直接相减,以此来判断正负值。

2022-08-19 21:21:19 7842

原创 Java中接口的详解与使用

Java中的接口可以理解为一种规范(接口可被继承),其内部可定义常量和抽样方法等内容,其中抽样方法必须被实现类(可理解为子类)重写,因此我们可以将接口看作一种子类的规范。子类通过implements来实现接口,我们把这样的实现接口的类叫做实现类。...

2022-08-18 12:45:32 283

原创 Java中final关键字的使用

1.final关键字修饰类的时候类不能被继承2.final修饰的方法不能被重写3.final修饰变量时变量能且只能被赋值一次

2022-08-18 10:43:58 86

原创 java之面向对象编程特性:继承

Java中的继承指的是某个类通过使用extends来得到另一个类中的属性和行为。一般我们将被继承的称为父类,进行继承的称为子类。父类中的属性和行为是公用的,而子类中的属性和行为是自有的。所以父类最主要的作用便是为了提高代码的复用性。......

2022-08-17 09:25:29 143

原创 Java中的static关键字的应用

static关键字又叫静态关键字,是一种既可以修饰成员变量,又可以修饰成员方法的关键字。其主要作用与特点是 作为被共享访问的信息存在。static修饰静态成员变量时,其在内存中只有一份且与类一同加载。其修饰的内容作为被共享的信息。在访问时建议使用类名访问:类名.static所修饰的成员变量。.........

2022-08-15 22:57:50 142

原创 Java中的正则表达式

正则表达式的作用是为了寻找匹配的相应的字符串,以此为依据来做出后面相应的操作。其主要的操作主要面向以下三种:1. 查看手机与邮箱等账号格式是否正确。2. 将文段中的部分字符串进行替换。3. 查找或提取文段中的部分字符串。...

2022-08-15 21:45:22 211

原创 Java中ArrayList的常用api

代码】Java中ArrayList的常用api。

2022-07-27 10:06:48 326

原创 String中常用的API

1.length() 表示长度 charAt(i)表示指出某个位置的字符2. substring(x,y) 表示截取字段 xy分别表示需要进行的起始和末尾位置 substring(z) 表示从当前位置截取到最后3.replace("a","b") 将该字符串中的a替换为b contains("c") 是否有c字符串 startsWith("d") d字符串是否为开头......

2022-07-26 21:49:50 168

原创 Java中String类中字符串之间的比较方法

在Java中String类中两个字符串之间想要比较是否相同,不能直接用双等于号直接进行字符串之间的比较,因为在String中双等于号之间是对两个字符串之间的地址进行比较(这与其它如int等数据类型的比较是不同的),所以,我们要使用java中的进行字符串对比的两个专用的API来实现。equals是做String类型字符串比较的一种api,equals的对比方法是要求两个字符串之间要完全一样,包括大小写也必须一样。示例代码如下:2.equalsIgnoreCase的使用equalsIgnoreCase

2022-07-01 10:14:22 6376

原创 Java中String类型(字符串对象)的存储特点

详解如下:用以下String类型创建的对象为例:如上代码所示:s1和s2实际代表的是字符串在栈内存中的地址,字符串常量存放在堆内存中,s1和s2同时指向堆内存中的同一个字符串。判断s1==s2是否为真时,运行结果为true。而因为Java中的特殊机制,单独输出s1时则会直接输出字符串,不会输出地址。 用以下String类型创建的对象为例:在此处的s和s2则是指向不同的存储地址。.........

2022-06-11 11:33:40 305

原创 JDK、JVM、JRE之间的关联

JVM:java虚拟机核心类库:java中的一些程序,给程序员做程序调用JRE:JVM+核心类库,是java的运行环境开发工具:Java、javac...JDK:JRE+开发工具,被称为Java的开发工具包总体来说:JDK包括JRE和开发工具,JRE包括JVM和Java的核心类库,JVM是java虚拟机。一个.java文件可先使用开发工具中的javac工具编译后产生.class文件。而后使用开发工具中的java工具将该.class文件送至JRE中的JVM虚拟机中,同时调用JRE.

2022-05-26 14:42:03 985

原创 mysql中数据类型的分类

1.整数类型TINYINT 1 -128~127 0~255 SMALLINT 2 -32768~32767 0~65535 MEDIUMINT 3 -8388608~8388607 0~16777215 INT、INTEGER 4 -2147483648~2147483647 0~4294967295 BIGINT 8 -9223372036854775808~9223372036854775807

2022-05-15 16:41:53 206

原创 MySQL中对数据的增删改

使用test指代表名,lie指代列名1.数据的插入代码示例1:INSERT INTO test1VALUES (1,'a',...);列的顺序必须和数据表中字段定义时的顺序相同。代码示例2:INSERT INTO test2(lie1, lie2)VALUES (1, 'a');指定该表中要要插入的字段,然后插入要插入的值。代码示例3:INSERT INTO test2(lie1, lie2)VALUES(1, 'a'),(2,'d'),(3,'z');

2022-05-15 15:33:13 191

原创 数据库中表的创建和管理

使用lie指代列名,使用test指代测试样例表名1.表的创建代码示例1:create table if not exists test01( -- not exists表明在这个名称的表不存在的情况下lie1 int,-- 前面的指代表中列的名称lie2 varchar(10),-- 使用varchar时需要指明长度lie3 date);代码示例2:create table test02asselect lie1,lie2,lie3from test01

2022-05-03 15:27:23 1036

空空如也

空空如也

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

TA关注的人

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