自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git操作方式

先将upstream的master分支拉下来,存储在本地库的mergeFetch分支中(会自动新建mergeFetch分支)常用于新分支的功能做到一半,不想提交,但是需要切换分支。2.2 将暂存区中的内容进行还原(取消一个文件的暂存),但是不会撤销工作区中的更改。适用于修改的文件已经被提交到了暂存区中,但是还没有被提交到本地库中。运行后,此时运行git status,工作区的信息是干净的。适用于修改的文件只存在于工作区中,还没有被提交到暂存区。恢复刚才暂存的本地的开发的代码。

2024-07-25 18:16:59 371

原创 详解为什么IO多路复用能提高效率

网络IO,拿read操作举例,就是程序(内存)从网卡读数据的过程。网卡相当于是文件IO的磁盘。客户端发过来的内容会先存在网卡中。

2023-12-22 20:02:02 994

原创 多态的使用场景以及优点和缺点

/编译看左边的父类中有没有name这个属性,没有就报错//在实际运行的时候,把父类name属性的值打印出来//编译看左边的父类中有没有show这个方法,没有就报错//在实际运行的时候,运行的是子类中的show方法f.show();

2023-12-18 17:45:51 2304 1

原创 java父类与子类

super和this完整的用法如下,其中this,super访问成员我们已经接触过了。this.成员变量 -- 本类的super.成员变量 -- 父类的​this.成员方法名() -- 本类的super.成员方法名() -- 父类的接下来我们使用调用构造方法格式:super(...) -- 调用父类的构造方法,根据参数匹配确认this(...) -- 调用本类的其他构造方法,根据参数匹配确认。

2023-12-18 16:03:22 2032 1

原创 动态规划全总结(涵盖所有题型,左神思路全讲解+LeetCode)

动态规划是对暴力递归算法的优化,主要是通过数组记录的方法,优化掉一些重复计算的过程。总结下动态规划的过程:(1) 抽象出一种“试法”,递归解决问题的方法,很重要(2) 找到“试法”中的可变参数,规划成数组表,可变参数一般是0维的,有几个可变参数就是几维的表(3) 找到base case,问题最基础的解,填入数组表中(4) 根据“试法”中的递归过程,和base case已经填到数组表的值,继续填表(5) 根据问题给定的参数,找到数组中对应的位置,就是最终的解。

2023-12-04 23:59:26 2100

原创 函数的参数

当你将一个包装类对象作为参数传递给函数时,实际上传递的是对象引用的副本。如果你尝试改变引用的值(即,使其指向一个新的对象),这只会改变副本的引用,而不会影响原始引用。:当你传递一个对象的引用给一个方法时,传递的是引用的副本,而不是对象本身。这意味着你不能改变传递进来的引用本身(例如使其指向一个新的对象),但你可以改变这个引用所指向的对象的状态(例如改变对象的属性)。这就是为什么在递归中使用数组(或其他对象)来存储这样的值是有用的,因为即使传递的是引用的副本,你仍然可以通过这个引用修改共享对象的状态。

2023-11-24 00:30:21 54 1

原创 LeeCode 二叉树

中序遍历是二叉树遍历的一种方法,它按照“左子树-根节点-右子树”的顺序访问每个节点。为空时,说明已经到达最左侧节点,此时从栈中弹出一个节点,这是当前要处理(访问)的节点。这种迭代方法有效地模拟了递归过程,同时避免了递归可能导致的栈溢出问题,特别适用于深度较大的二叉树。访问完一个节点后,转向该节点的右子树。如果右子树为空,循环会继续从栈中弹出下一个节点。只要当前节点不为空或栈不为空,循环就继续。当达到最左端的节点时,开始从栈中弹出节点进行处理。这个循环不断把左子节点压入栈中,直到到达最左端的节点。

2023-11-15 22:38:33 68 1

原创 Vue+SpingBoot报错汇总

前端Vue发送get请求的参数名需要与后端Controller的名字一致。不能用data代替,因为这个名字就是url发送的key的名字。

2023-11-13 14:52:22 42

原创 Spring的事务管理以及动态代理

代理对象是设计模式中的一种常见模式,它允许在不修改原始对象的情况下添加额外的功能。代理对象与原始对象实现相同的接口,并包含对原始对象的引用,这样它可以在需要时调用原始对象的方法。代理对象可以在调用原始对象的方法之前和/或之后执行额外的操作,从而实现各种功能,例如日志记录、权限检查、事务管理等。在Spring框架中,代理对象通常用于实现面向切面编程(AOP)的功能,例如事务管理、安全检查、日志记录等。

2023-11-02 09:34:35 159

原创 Spring中@Component和@Bean的区别

Configuration使用步骤:在类上使用@Configuration注解通过AnnotationConfigApplicationContext容器来加@Configuration注解修饰的类比如说我有一个类User,需要构造参数name和age。这个User类用@Component修饰。当我需要注入时,使用@Autowired自动装配,我该如何同时传入这两个构造参数在这种情况下,你可以创建一个配置类并使用@Bean注解方法来提供User@Bean@Service@Autowired。

2023-10-26 12:42:25 129

原创 静态以及非静态方法之间相互调用问题

是的,在一个类中,非静态方法可以互相调用。你只需使用方法的名称,并在需要时传递任何必需的参数。非静态方法和静态方法之间的区别主要在于它们是如何与类的实例相关联的。非静态方法是与类的实例相关联的,而静态方法是与类本身相关联的。在静态方法中不能直接调用非静态方法的主要原因是静态方法不依赖于任何特定对象的实例,而非静态方法则需要与特定对象实例关联。这样,非静态方法就可以在特定对象实例的上下文中被正确地调用。)的上下文中被调用的。的一个实例,并通过该实例来调用非静态方法。对象的上下文中执行的。

2023-10-24 14:30:11 791

原创 vue-quill报错

本地在vscode运行没有任何错误,vue-quill能正常显示。

2023-10-18 10:49:13 227 5

原创 LeeCode链表

如果链表为空或只有一个节点,我们不需要做任何事情,直接返回头节点。对于更长的链表,我们将问题分解为两部分:头节点和剩余部分。一个指针指向当前节点,另一个指针指向当前节点的前结点。添加到新链表的末尾。返回新链表的头节点,即节点。在上面的示例中,头节点是。现在,我们要将原始头节点。

2023-08-22 11:05:11 100 1

原创 Leecode 矩阵

确保我们只有在上下边界不在同一行时才遍历下边界。如果它们在同一行,那么下边界的遍历将被跳过,从而避免了重复访问。:遍历矩阵的其余部分,并使用第一行和第一列来记录是否需要将整行或整列设为0。:如果第一行或第一列中有任何元素为0,则将相应的标记设置为true。:如果第一行或第一列的标记为true,则将整行或整列设为0。:根据第一行和第一列的标记,设置其他行和列的0。

2023-08-21 09:48:03 52 1

原创 LeeCode 字串

总的来说,`Comparator` 提供了丰富的方式来定义自定义的排序逻辑。`Comparator` 在 Java 中有许多用法,可以用于定义各种自定义的排序逻辑。- `naturalOrder` 和 `reverseOrder`: 用于基于自然排序或反向自然排序的比较。来更新当前前缀和的计数。在这里,我们逐步计算数组的累积和,称为前缀和。- `thenComparing`: 用于链式比较,当主要排序条件相同时,可以使用另一个条件。- `reversed`: 返回一个反向排序的 `Comparator`。

2023-08-15 13:32:34 53 1

原创 LeeCode 双指针 + 滑动窗口

3. **第二步**: `right` 指向 'w',将其添加到 `set`,然后将 `right` 移动到下一个字符。2. **第一步**: `right` 指向 'p',将其添加到 `set`,然后将 `right` 移动到下一个字符。`ans` 更新为 1。7. **第六步**: `right` 指向 'e',将其添加到 `set`,然后将 `right` 移动到下一个字符。6. **第五步**: `right` 指向 'k',将其添加到 `set`,然后将 `right` 移动到下一个字符。

2023-08-14 13:43:13 246

原创 java数组+Leecode数组

初始化数组:可以在声明数组时初始化它,例如:int[] myArray = {1, 2, 3, 4, 5};也可以在创建数组后单独初始化每个元素,例如:myArray[0] = 1;声明数组:在Java中,可以使用以下语法声明数组:dataType[] arrayName;例如,要声明一个整数数组,可以写int[] myArray;实例化数组:声明数组后,需要使用new关键字为其分配内存。这将创建一个可以存储10个整数的数组。注意:声明时初始化:在声明数组的同时,就为数组分配空间并赋值。

2023-08-14 12:57:27 64

空空如也

空空如也

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

TA关注的人

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