自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法学习(二)

回溯法解决的问题都可以抽象为树形结构,回溯法解决的都是在结合中递归查找子集,集合的大小就构成了书的宽度,递归的深度就构成了树的深度。backtracking这里自己调用自己,实现递归。子集问题:一个N个数的集合里有多少种符合条件的子集。排列问题:N个数按一定规则全排列,有几种排列方式。组合问题:N个数里面按一定规则找出k个数的集合。开始到字符串末尾的子字符串。切割问题:一个字符串按一定规则有几种切割方式。直接输出变量的原始值,无法控制格式。换行符,使后续输出从下一行开始。棋盘问题:N皇后,解数独等等。

2025-04-21 19:18:09 85

原创 算法学习~

在KMP算法中,通过构造部分匹配表(next数组)记录每个位置的最长相等前后缀长度,用于在字符串匹配失败时快速调整模式串的位置,减少不必要的比较。回溯法解决的问题都可以抽象为树形结构,回溯法解决的都是在结合中递归查找子集,集合的大小就构成了书的宽度,递归的深度就构成了树的深度。在一个字符串中,既是其前缀又是其后缀的最长子串的长度,且该子串不能等于原字符串本身。初始化next[0]=0,双指针i=1(后缀尾),j=0(前缀尾)。若当前字符s[i]==s[j],则j++,next[i]=j;

2025-04-14 21:24:36 972

原创 消息队列--RocketMQ

顺序消息是指,消费者端消费消息时,需按照消息的发送顺序来消费,即先发送的消息,需要先消费。订单创建---->订单支付---->订单发货---->订单配送---->订单完成创建订单后,会发送5条消息到MQ Broker中,消费者要按照订单创建---->订单支付---->订单发货---->订单配送---->订单完成这个顺序去消费,这样的订单才是有效的。

2025-03-31 20:30:30 975

原创 算法题练习

这是我自己写的代码。我觉得挺对的,但是不知道为啥不通过。后来知道了,圆圈并不是只会出现一对,我是按一对来写的。

2025-03-15 19:54:17 138

原创 算法回顾1

遍历,让j表示终止位置,i表示起始位置sum+=nums[j],用while循环判断,当sum>target的时候,记录当前子数组的长度subl,和result相比取小值,这时,在缩减长度,sum-=nums[i],i++,如果sum仍然大于目标值target,则更新result,否则,跳出while循环,最后,返回result。用双指针写这道题,快慢指针初始值都为0,如果快指针所对应的值!遵循循环不变量的原则来写这道题,这里的不变量指的时每条边的处理规则,用左闭右开。

2025-02-24 21:26:14 259

原创 顺序表的基本操作

T data;//数据域//指针域单链表的实现public class LinkList<T>{ //单链表类//成员变量,头指针int length;//表长,可无该成员,后面的算法都针对无length的链表//单链表的初始化public LinkList() //不带头结点的单链表构造方法//创建空链表public LinkList() //带头结点的单链表构造方法//创建空链表注意:一个链表只能选一种形式,带头结点或不带头结点,以上两个构造方法只在程序中写一个即可。

2024-12-08 22:47:37 907

原创 JVM知识

CMS 收集器是一种以获得最短回收停顿时间为目标的收集器,非常适合对响应时间有严格要求的应用场景。CMS 使用多线程并行执行垃圾收集工作,从而减少应用程序暂停的时间。

2024-12-02 10:59:15 560

原创 ArrayList底层源码

Arrays.copyOf(T[] original,int newLength)方法是用来创建一个新数组,他的内容是原始数组的。* ConcurrentModificationException异常,这里的被修改指的是集合的大小发生变化,或者某些方式改变了。* ArrayList实现了Cloneable接口,并覆盖了Object类的clone()方法以提供自己的实现。* 浅拷贝:在 ArrayList 的上下文中,浅拷贝意味着新列表中的元素是原始列表中元素的引用,而不是元素本身的副本。

2024-11-25 20:48:11 648

原创 问题解决1

springBoot项目中出现这样的错误:仔细检查Maven依赖和yml配置文件后,均为发现有引入h2数据库的相关内容。出现这个问题的主要原因是系统自动配置了数据库连接为h2连接,没有使用yaml配置文件中的druid和MySQL连接,因此添加h2依赖是没有用的。处理方法:在Main函数中引入一个Bean,亲测可行。

2024-11-10 10:38:14 1060

原创 JAVA基础题

然而,根据题目的要求,我们需要找出“错误的说法”,并且选项B在直接描述其行为的层面上并没有错误(尽管可能不够精确)。但考虑到选项C明确陈述了一个错误的信息(即类方法不能仅调用本类中的类方法),并且这与题目的要求更直接相关,我们可以将注意力集中在选项C上。:错误的说法是B(但请注意,这个判断可能有些争议,因为B在直接层面上没有错误,但选项C的错误性更明显且重要)。在实际教学中,通常会强调C选项的错误性。但请注意,从学习和理解的角度来看,选项C的错误性是非常重要的,因为它误导了关于类方法调用能力的理解。

2024-11-04 09:57:34 430

原创 内部类什么时候需要加static什么时候不需要加static?

在Java中,内部类(Inner Class)是否需要加static修饰符,取决于你对内部类的使用方式和需求。以下是关于何时需要加static以及何时不需要加static。

2024-10-23 08:51:26 437

原创 工具类的构造方法为什么要用private修饰

工具类(Utility Class)通常被设计为包含静态方法和静态变量的类,可以使用类名.方法名直接调用,不用进行实例化,这是工具类的设计原则,所以构造方法用private修饰(因为公开的方法可以被实例化)。

2024-10-23 08:47:29 673

原创 9.9算法练习

1、如果树为空(即root为null),则节点的个数为0。2、否则,我们递归的计算左子树和右子树的节点个数。3、在递归过程中,我们需要知道子数的高度,因为完全二叉树的节点个数和高度密切相关。4、如果左子树的高度等于右子树的高度,那么左子树是一个满二叉树,节点个数可以直接通过公式2^h-1计算(其中h是左子树的高度)。5、如果左子树的高度大于右子树的高度,那么右子树是一个满二叉树,并且左子树是一个不完全的完全二叉树,节点个数需要分别计算左子树和右子树后相加。

2024-10-20 11:36:21 261

原创 Redis数据库

2024-10-14 21:23:59 83

原创 HashMap集合

下一个Node的引用(next),当两个键的hash码相同时,(即发生了hash冲突),这些Node对象会通过next引用。实例的一个浅拷贝,浅拷贝意味着新的HashMap实例将包含与原始实例相同的键值对,但这些键值对本身并没有被复制。* 缺点:由于浅拷贝不会复制引用的对象,因此对原始对象或拷贝对象中引用的对象的修改会影响到另一个对象。* 浅拷贝是指创建一个新的对象,新对象的内容是原始对象内容的引用。* 深拷贝是指创建一个新的对象,并递归地复制原始对象中的所有对象(包括嵌套的、引用的对象)。

2024-10-13 10:36:32 338

原创 集合源码1

1、Vector类是单列集合List接口的一个实现类。与ArrayList类似,Vector也实现了一个可以动态修改的数组。两者最本质的区别在于-------Vector类是支持线程同步的,因此它线程安全,支持多线程,而ArrayList是线程不同步的,线程不安全。2、Vector内部是以动态十足的形式来存储数据的。3、Vector具有动态数组所具有的特性,通过索引支持随机访问,所以通过随机访问Vector中的元素效率非常高,但是执行插入删除时效率比较低。

2024-10-06 22:27:17 692

原创 算法学习1

⑥右移(>>):右移运算将一个二进制数向右移动指定的位数,右侧根据符号位补1或补0.对于无符号数,左侧补0,对于有符号数,如果符号位为0(正数),则左侧补0;④取反(~):是对一个二进制数的每一位进行取反操作,即将0变成1,1变成0.例如,对5(二进制0101)进行取反运算的结果是-6(二进制1010,注意在计算机中负数通常以补码形式表示)。③异或(^):如果两个对应的位不同,则结果位为1,如果相同,则结果位为0.例如,5(二进制0101)异或3(二进制0011)的结果是6(二进制0110)。

2024-09-30 08:30:56 419

原创 集合源码学习1

集合:是一个容器,用来存储数据2、collection集合特点有序:存进去的顺序和拿出来的顺序是一样的。

2024-09-22 16:27:18 444

原创 java基础语法

注意:如果注解类中除了value类型的注解外还有其他类型的注解,且注解没有default默认值时,在使用注解时,需要明确写明value=“...”等。

2024-09-15 14:40:20 922 1

原创 cookie案例:记住上一次的访问时间

在服务器中的Servlet判断是否有一个名为lasttime的cookie。* *响应数据,欢迎回来,您上次的访问时间为。* *写回cookie,lasttime=。* *写回cookie,lasttime=。* *响应数据,欢迎首次访问。* 1、有,不是第一次访问。* 2、没有,是第一次访问。

2024-06-02 17:36:10 120

原创 JDBCTemplate介绍

queryForList():查询结果,将结果集封装为list集合。*queryForMap():查询结果,将结果集封装为map集合。Spring框架对Spring的简单封装。*query():查询结果,将结果封装为JavaBean对象。*queryForobject:查询结果,将结果封装为对象。2、创建JDBCTemplate对象。依赖于数据源DataSource。*update():执行DML语句。3、调用JdbcTemplate的方法来完成CRUD的操作。

2024-05-25 21:11:38 319

原创 IO流总结

所有的操作都在控制台进行,JDK 版本统一 1.8,代码编码统一用 UTF-8,命名风格采用驼峰式命名,变量、类的命名能够见名知意,,添加相应的注释,代码条理清晰,代码可分为多个模块。

2024-05-18 15:37:40 299

原创 IO流-其他流:数据流,序列化流

对象反序列化:把文件中的Java对象读出来。对象序列化:把对象写到Java文件中去。

2024-05-05 11:21:36 229

原创 IO流-打印流

PrintStream继承自字节输出流OutputStream,因此支持写字节数据的方法。PrintWriter继承自字符输出流Writer,因此支持写字符数据出去。打印数据的功能上是一模一样的:都是使用方便,性能高效(核心优势)PrintStream和PrintWriter的区别。

2024-05-05 09:42:27 181

原创 IO流-转换流

如果代码编码和被读取的文本文件的编码是不一致的,使用字符流读取文本文件时就会出现乱码!如果代码编码和被读取的文本文件的编码是一致的,使用字符流读取文本文件时不会出现乱码!不同编码读取出现乱码的问题。

2024-05-05 08:41:50 128

原创 缓冲流,BufferReader,BufferWriter,案例

原理:字节缓冲输入流自带了8Kb的缓冲池,字节缓冲输出流也自带了8kb的缓冲池。作用:自带8K的字符缓冲池,可以提高字符输出流写字符数据的性能。BufferedWriter(字符缓冲输出流)BufferedReader(字符缓冲输出流)字符缓冲输入流新增的功能:按照行读取字符。字符缓冲输出流新增的功能:换行。提高字节流读取数据的性能。

2024-05-04 21:46:08 513

原创 IO流-字符流

字节流:适合复制文件等,不适合读写文本文件字符流:适合读写文本文件内容。

2024-05-04 20:09:09 412 1

原创 io流,字节流概述

字节输入流:以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流字节输出流:以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流。字符输入流:以内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流。字符输出流:以内存为基准,把内存中的数据以字符写出到磁盘文件或者网络介质中去的流。

2024-05-04 17:01:58 441

原创 FileOutputStream

作用:以内存为基准,把内存中的数据以字节的形式写出到文件中去字节流非常适合做一切文件的复制操作任何文件的底层都是字节,字节流做复制,是一字不漏的转移完全部的字节,只要复制后的文件格式一致就没问题。

2024-05-04 17:00:17 493 1

原创 File,io 流(一)

它们都是内存中的数据容器,它们记住的数据,在断电,或者程序终止时会丢失.

2024-05-04 08:17:36 667

原创 前置知识:字符集

ASCII(American Standard Code for Information Interchange):美国信息交换标准代码,包括了英文、符号等。标准ASCII使用1个字节存储一个字符,首尾是0,总共可表示128个字符,对美国佬来说完全够用。

2024-05-03 20:42:10 444

原创 File 文件搜索,啤酒问题,删除非空文件夹

从D:盘中,搜索"QQ.exe”这个文件,找到后直接输出其位置。

2024-05-03 16:49:23 250

原创 前置知识:方法递归

递归是一种算法,在程序设计语言中广泛应用。从形式上说:方法调用自身的形式称为方法递归(recursion)。

2024-05-03 11:01:53 275

原创 Stream流入门,Stream流创建

也叫Stream流,是JDK8开始新增的一套API,可以用于操作集合或者数组的数据。

2024-05-02 20:24:28 1393 2

原创 认识异常,自定义异常

Java无法为世界上所有的问题都提供异常类来代表,如果企业自己某种的问题,想通过异常类来表示,以便用异常来管理该问题,那就需要自己来自定义异常类了。自定义运行时异常自定义编译时异常1、定义一个异常类来继承RuntimeException2、重写构造器3、通过throw new 异常类(xxx)来创建异常对象并抛出编译阶段不报错,提醒不强烈,编译阶段,运行时才可能出现1、定义一个异常类继承自Exception2、重写构造器3、通过throw new 异常类(xxx)来创建异常对象并抛出。

2024-05-02 09:52:11 332 1

原创 Map系列集合的底层原理及集合嵌套

HashMap跟HashSet的底层原理是一模一样的,都是基于哈希表实现的。实际上:原来学的Set系列集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。

2024-04-30 21:31:48 152

原创 Map集合的遍历方式

Map集合称为双列集合,格式:(key1=value1,key2=value2,key3=value3,...,一次需要存一对数据做为一个元素·Map集合的每个元素"key=Value”称为一个键值对/键值对对象/-个Entry对象,Map集合也被叫做“键值对集合”.Map集合的所有键是不允许重复的,值可以重复,键和值是一一对应的关系,每一个键只能找到自己对应的值。

2024-04-23 16:31:40 726

原创 集合框架(二)前置知识

可变参数:就是一种特殊形参,定义在方法,构造器的形参列表里,格式是:“数据类型...参数名称”特点:可以不传数据给它,可以传一个或多个数据给它,也可以传一个数组给它。Collections提供的常用静态方法。②一个形参列表中可变参数只能有一个。③可变参数必须放在形参列表的最后面。①可变参数在方法内部就是一个数组。好处:常常用来灵活的接受数据。*是一个用来操作集合的工具类。可变参数的特点和好处。

2024-04-21 11:41:15 329 1

原创 LinkedHashSet的底层原理

TreeSet集合存储自定义类型的对象时,必须指定排序规则,支持以下两种方式来指定排序规则。1、如果希望记住元素的添加顺序,需要存储重复的元素,又要频繁的根据索引查询数据?*用ArrayList集合,有序,可重复,有索引,底层是基于数组的(常用2、如果希望记住元素的添加顺序,且增删首尾数据的情况较多?*用LinkedList集合(有序、可重复、有索引),底层是基于双链表实现的。3、如果不在意元素顺序,也没有重复元素需要存储,只希望增删改查都快?

2024-04-21 10:24:40 1919 1

原创 Set系列集合

哈希值就是一个int类型的数值,Java中每个对象都有一个哈希值。Java中的所有对象都可以调用Object类提供的Hashcode方法,返回该对象自己的哈希值返回对象的哈希码值对象哈希值的特点:同一个对象多次调用Hashcode方法返回的哈希值是相同的不同的对象,他们的哈希码值一般不相同,但也有可能相同(哈希碰撞)

2024-04-20 22:42:31 423

空空如也

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

TA关注的人

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