自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java写算法题时能用一维数组就不要用二维数组!!!

今天闲来无事去洛谷上做了几道二分题练练手感,前面几道题目做的都很顺畅,可以最后一道题目有好几个样例提示内存超限,改了又改还是这样,我就很疑惑,进入题解区发现和别人写的差不多啊,哪里的问题呢。Java中的一维数组和C++中类似,给数组寻找一块连续的能够容纳全部元素的空间,然后分配一个一维数组引用存储首地址。,就像是存储了多个一维数组地址的一维数组,数组里的每个元素都是一维数组的引用,每个一维数组中的内存都是连续的,但是。看着我的代码,我也没有用递归,唯一可能占用大块内存的就是我定义的那个二维数组了,如下。

2025-04-02 22:22:48 402

原创 头条项目的文章延迟发布功能

最近做的头条项目其中有个功能是创作者发表的文章可以设置在未来某个时间发表,在实现这个功能的时候就在想该怎么实现呢?刚开始想的是利用Spring的定时任务定时的去数据库中查询,可以这个查询频率该怎么设置,每次从数据库中需要查询文章延迟发布表的全部信息,未免有点太消耗时间了,况且MySQL还是存在本地磁盘的,读取成本过高。这个时候我就想,查看是否有要发布的文章,拉取对应的文章信息进行审核发布我在redis中使用两种数据结构来存储文章发布信息list是一个简单的字符串列表,按照插入顺序排序。

2025-03-27 21:18:31 570

原创 我的创作纪念日

当时一心想要考研,暑假还学了高数基础哈哈哈哈,去年九月份开学之后去自习室学了几天,我发现我实在受不了备考的过程,一想到要备考一年多的时间,把所有时间、精力全都花在考研上,把所有的希望押注在一场考试上,对我来说很难受。通过头条项目也是熟练使用微服务的各项功能了,特别是feign接口远程调用这块,自己写出了很多bug,一点点的解决过程中也是更加了解这个组件,阿里的nacos注册中心,其中把每个微服务的配置信息写在nacos中是很棒的一个设计,直接在网页上修改对应的信息,都不用查看对应的后端代码。

2025-03-21 21:32:33 373

原创 黑马头条启动文章微服务时报错Error creating bean with name ‘buildMinioClient‘的原因及解决方案

刚开始觉得我没有引入这个bean啊,后来查看引入的依赖项才知道他在黑马提供的一个依赖jar中,引入miniIO这个bean后要给它相应的配置信息,我这里因为暂时用不到所以也没有进行配置,所以就会报错。只需要在文章微服务的pom文件中注释掉file-starter这个依赖就好,等到后面用到对象存储的时候在取消注释即可。最近在做黑马的头条项目,做完登录功能后启动文章微服务时就一直报错,查了半天的bug最后发现是引入依赖的问题。(如下图,该bean依赖被黑马提供的file-starter包所引入)

2025-02-27 09:25:50 418

原创 排序算法(归并排序、快速排序)

给你n个乱序的整数,让你将它们按照从小到大的顺序排列,这个问题看起来很简单,今天我来介绍几种非常著名的排序算法。

2025-01-09 22:10:48 960

原创 力扣周赛T2-执行操作后不同元素的最大数量

给你一个整数数组nums和一个整数k。你可以对数组中的每个元素执行[-k, k]返回执行这些操作后,nums中可能拥有的不同元素的数量。6对前四个元素执行操作,nums变为,可以获得 6 个不同的元素。3对nums[0]加 -1,以及对nums[1]加 1,nums变为,可以获得 3 个不同的元素。

2024-12-22 20:19:54 524

原创 Springboot下出现java.awt.HeadlessException的原因及解决方案

最近Java实训课让用jdbc做一个信息管理系统,恰好已经学过了spring全家桶,我就使用Springboot和Mybatis做了一个,结果用画出GUI后没法运行,报这个无头异常,给我整懵了。

2024-12-18 20:58:29 501

原创 鼠标右键单击Git Bash here不可用

最近在学习git时突然发现右键的git bash没反应,但是去点击应用图标就能正常运行,通常是因为你在安装git之后改变了它的目录名称或者位置,我就是因为安装后改变了一个文件夹的文件名导致不可用。

2024-12-07 10:18:09 1465

原创 力扣每日一题 单调数组对的数目(dp)

困难 动态规划给你一个长度为n的整数数组nums。如果两个整数数组满足以下条件,我们称它们是narr1arr2请你返回所有数组对的数目。由于答案可能很大,请你将它对109 + 7后返回。4126。

2024-11-29 22:26:56 569

原创 我的创作纪念日

刚开始是为了巩固算法知识,选择在这里写一些个人的理解附带一些题解,不过那个时候更多是为了比赛而学习,有一种囫囵吞枣的感觉,许多算法不得其义,仅仅只是会用而已,又经过这么多天的学习,终于渐渐理解了一些以前一知半解的算法。最近在学习框架,刚开始学习Java技术栈的时候觉得框架是很高深莫测的东西,现在接触后才发现不过是基础知识的封装,所有的一切注解和配置都是建立在基础的操作之上,没有什么神奇的地方,一切不过是由基础代码堆叠起来的,所以要学好基础。目前在学习后端开发相关的技术,准备实习了,希望未来一切顺利吧。

2024-11-29 21:42:01 422

原创 尚硅谷Javaweb日程管理项目(附源码)

可以即时校验提示账号密码格式是否有误原本整完这个项目我就想着马不停蹄地学习框架,但是不写个总结心里好似不踏实,还是写一篇文章来总结一下。一步一步完成这个项目后使我对web程序的运行逻辑有了初步的了解,也学到了很多,有一种成就感,我觉得软件开发中最重要的就是架构模式,在没有了解过MVC模式前,我写代码都是放到一个文件夹中,难以想象的混乱,虽然都能实现最终的功能,但是写着写着就可能晕了,而且后期找bug不容易找。

2024-11-20 17:14:01 1268

原创 VScode下脚本被禁止运行的原因及解决方案

出现这种问题一般情况下是因为 PowerShell 的运行策略是受限制(Restricted)的,这种状态下回禁止很多操作,以防出现系统错误。如果是受限制的,可以运行以下命令修改,将执行策略更改为。可以在vscode下的命令窗口执行以下命令查看执行策略。

2024-11-10 15:33:30 1359

原创 力扣每日一题 有序数组中的单一元素

给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。210。

2024-11-10 11:40:00 317

原创 Java环境下配置环境(jar包)并连接mysql数据库

以前学习数据库就只是操作数据库,根本不知道该怎么和软件交互,将存储的数据读到软件中去,最近学习了Java连接数据库的内容,豁然开朗Java为各方数据库提供了一些规范接口,然后由各大数据库厂商完成对应数据操作的代码,我们要使用对应的数据库操作就要去对应的官网下载,下面演示如何下载配置mysql对应的jar包。

2024-11-04 22:37:13 1206

原创 Go语言学习笔记 (基础数据类型和控制语句)

最近参加字节跳动的青训营项目,因为字节现在基本全是Go语言,所以他们的后端路线以Go语言为主要开发语言,以下是我的学习笔记,因为有C++和java的功底,我学习起来还是很快的。

2024-11-03 20:48:14 485

原创 力扣每日一题 超级饮料的最大强化能量 动态规划(dp)

题目中提到了如果要切换饮料种类就需要空等一小时,如果按照贪心的策略想的话这肯定是不合理的,所以这题不能用贪心解,所以当我们决定切换饮料,一定是我们可以获得更大收益的,这两天正好在学习dp,一瞬间就想到改用dp来解。dp[i][0]代表第i时刻选择饮料A所能获得的最大能量。dp[i][1]代表第i时刻选择饮料B所能获得的最大能量。下标为0的就是第一次喝饮料,直接取第一个饮料的能量即可。2.前一次选的是能量B 则。1.前一次选择的也是能量A 即。同理,饮料B的递推公式。

2024-11-01 21:13:06 704

原创 Servlet -个人理解笔记

Servlet主要是为了衔接web应用的前端和后端的,作为它们俩中间数据交换的桥梁,现在很多web项目都是前后端分离的,前端写前端的后端写后端的,但是他俩所用的编程语言是有区别的,怎么实现它们之间的数据交换呢?Servlet就是为了解决这个,它是用java编写的,目前我是在tomcat上面使用它,其他环境还没试过 需要注意的是它并不在jdk中,有专门的Servlet代码包,需要将它导入项目中才可以用,不过如果我们在tomcat环境下运行是不需要导入的,tomcat本身自带servlet的jar

2024-10-30 21:57:03 978

原创 力扣每日一题 冗余连接 并查集

示例 1:输入: edges = [[1,2], [1,3], [2,3]]输出: [2,3]示例 2:输入: edges = [[1,2], [2,3], [3,4], [1,4], [1,5]]输出: [1,4]提示: • n == edges.length• ai!= bi• edges 中无重复元素• 给定的图是连通的。

2024-10-27 18:01:06 760

原创 IDEA中add frame work support被禁用或找不到的解决方案

注意应该先给该项目添加相应的依赖后web的版本才会更新,否则web仅仅是4.0版本。

2024-10-27 14:28:40 1602 1

原创 JSON格式及jackson.jar包的安装与配置

在JSON出现前,由于多种编程语言的语法细节都不是完全相同,在网络传输信息时无法使用同一的格式,只能是程序员根据不同的编程语言写不同的处理函数,就造成了大大的资源浪费,为了统一数据交换格式,JSON应运而生,它统一了网络信息交换格式,提高了广大程序员的工作效率。ObjectMapper类,使用它的readValue即可读取相应的JSON字符串,主要还要传输一个类的字节码,表示这是哪一个类的JSON序列,它会返回相应的对象,这里我重写了它的toString方法 ,输出如下。最外面使用花括号“{}”包围。

2024-10-23 17:35:43 1021

原创 和为偶数的数字组合 深度优先搜索(dfs)

问题描述给定 1 到 9 共 9 个数字,随机将九个数字分成多组,按顺序从每组中任意取出一个数字组成一个新的数字,使得新组成的数字每位数字相加之和为偶数,求共有多少种组合方法。具体请配合样例理解。## 输入格式多个整型数字,数字之间用一个空格分隔## 输出格式一个整数**输入样例 1**:输入:输出:14。

2024-10-21 20:07:32 475

原创 猫分鱼干 -算法题解

首先我们需要把每只猫猫所在的位置序号和等级绑定,存到二维数组中去,然后根据猫猫的等级从低到高排序,排序后按照以上规则依次判断即可。这题显然我们不能从头向后模拟,因为我们不确定后面的猫猫的等级,如果一点点向后推进模拟大概率得不到正确答案。,假设三只猫的等级 为 1 2 3,我们给第一只1个鱼干,相应的第二只2个,第三只3个,这就是最少需要的鱼干。由于存在等级差距,高等级的猫猫的鱼干是由低等级的猫猫的鱼干数决定的,所以我们。题目要求一个猫猫如果等级大于他旁边的猫猫,就要给它更多的鱼干,

2024-10-18 21:34:28 603

原创 徒步1 -经典贪心

问题描述小明想从A徒步到B,总路程需要M天,路程中为了确保安全,小明每天需要消耗1份食物。在起点及路程当中,零星分布着N个补给站,可以补充食物,不同补给站的食物价格可能不同。请问小明若要安全完成徒步,最少需要花费多少钱呢?## 输入格式第一行为两个正整数`M`、`N`,代表总路程`M`天,补给站个数`N`接下来`N`行,每行有两个非负整数`A`、`B`代表一个补给站,表示第`A`天经过该补给站,每份食物的价格为`B`元。

2024-10-16 20:38:21 1393

原创 完美整数-算法题解

问题描述一个整数如果由相同数字构成,可以称为完美整数;比如说1、11、333就是完美整数,12、19、101就是不完美的整数。现在想知道,在区间 `[x, y]` 中有多少个整数是完美整数。## 输入格式每个样例有一行,是整数 `x` 和 `y`;

2024-10-16 13:22:49 1126

原创 计算位置X到Y的最少步数-算法题解

# 样例说明- 整数位置 `x` 为 `12`,另外一个整数位置 `y` 为 `6`,我们需要从 `x` 走到 `y`,最小的步数为:`1`,`2`,`2`,`1`,所以我们需要走 `4` 步。- 整数位置 `x` 为 `34`,另外一个整数位置 `y` 为 `45`,我们需要从 `x` 走到 `y`,最小的步数为:`1`,`2`,`3`,`2`,`2`,`1`,所以我们需要走 `6` 步。

2024-10-14 21:27:34 1091

原创 java.io.StreamCorruptedException: invalid stream header的原因及解决方法

最近在写一个类似于QQ的网络通讯项目,在信息发送的时候出现了一个问题,客户端的信息服务端可以正常收到并且转出,但是对应的客户端在接收的时候就会抛出这个异常,往往还会伴随着java.io.StreamCorruptedException: invalid type code: AC这个异常,我苦思冥想,翻来覆去的测试改代码,经过了一天的时间才找到问题所在,要明白这个异常为什么会出现我们首先需要了解对象输入输出流的一个特性 首先介绍一下对象流的特性,相信出现这个问题的朋友都使用了对象输入输出流,经

2024-10-12 22:05:23 1810

原创 java序列化对象后读取数据错误的问题

今天学到了对象的序列化,就是将对象写入到文件中去,大家要直到我们普通的输入输出文件只是把数据的值写入了文件,而没有把数据的类型与之绑定,比如我向文件中写入100,那么这是字符串”100“还是整数100还是高精度浮点数呢,我们是不能确定的,将数据的类型和值一起写入文件中,这就是序列化,把序列化的数据从文件中读出来,这就是反序列化。

2024-09-19 22:09:34 452

原创 Java文件输入输出及其常用类

对于一个应用程序来说什么是最重要的?数据!数据一般存放在文件、数据库中,今天介绍java中关于文件操作的一些常用类,学好文件操作是很有必要的。

2024-09-18 21:34:51 1206

原创 力扣每日一题 公交站间的距离

公交站 0 和 1 之间的距离是 1 或 9,最小值是 1。公交站 0 和 2 之间的距离是 3 或 7,最小值是 3。公交站 0 和 3 之间的距离是 6 或 4,最小值是 4。我们已知每一对相邻公交站之间的距离,环线上的公交车都可以按顺时针和逆时针的方向行驶。

2024-09-16 19:29:24 458

原创 Java多线程编程-基础篇

多线程在实际的应用程序中法非常常用,例如我们在12306买票就是一个多线程的过程,每个准备抢票的人的手机上都会生成一个抢票线程,当全国几亿人同时访问这个软件,它如何能不出错,保证系统运行正常呢,这里面涉及的并发并行和多线程知识非常之多。希望大家都要学好这一块的知识,学习在路上,加油!

2024-09-14 22:44:14 1444

原创 错误: 编码GBK的不可映射字符的解决方法

原本在酣畅淋漓的写代码呢,遇到个这种bug给我强行打断了,找了半天才发现是这个问题,解决之后也是很开心的,还在学习java的路上,各位加油,在解决bug的路上成长把!

2024-09-13 22:13:06 1006

原创 Java中的linkedList类及与ArrayList的异同

由于涉及的类过多,画起来过于繁琐,这里只展示最外层的继承实现关系可以看到它是继承自AbstractSqquentialList,并且实现了多个接口类,感兴趣的小伙伴可以去深入查看LinkedList具体怎样实现了它们的方法。

2024-09-11 20:00:39 1248

原创 Java中的ArrayList类

ArrayList类继承自抽象类AbstractList,同时实现了List和Collection接口,进入源码我们可以看到它的类定义集合其实就是更方便的数组,我们在使用时不需要考虑它的大小,只需要调用类的接口实现就可以了,方便我们开发需要的功能,不必在细节上犯难,这是它的好处。但是还是推荐有兴趣的小伙伴去看一下它的源码,它的底层代码设计的非常巧妙。

2024-09-10 17:21:58 1066

原创 每日一题 合并零之间的节点(链表)

给你一个链表的头节点head,该链表包含由0分隔开的一连串整数。链表的和的节点都满足。对于每两个相邻的0,请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。然后将所有0移除,修改后的链表不应该含有任何0。返回修改后链表的头节点head。[4,11]上图表示输入的链表。修改后的链表包含:- 标记为绿色的节点之和:3 + 1 = 4- 标记为红色的节点之和:4 + 5 + 2 = 11[1,3,4]上图表示输入的链表。

2024-09-09 16:09:30 315

原创 Java中的Collection

英文翻译为集合,实际上它的作用就是用来存储数据,算是数据的集合,不过它只是一个接口,下面有各种类来实现它,并以不同的数据结构来存储数据。集合和数组类似,但是数组这东西在创建时指定大小,如果以后想要扩容是不允许的,只能另开一个更大的数据存储,而集合这个东西它可以动态的扩容,我们使用的时候不需要考虑它的容量,只需要使用各种增删改查的操作即可,开发人员只需关注业务逻辑本身,而不需要过多考虑这种细枝末节。

2024-09-08 22:07:31 581

原创 Java中的输入输出方法及格式

通过System类中的System.out对象来完成控制台的输出,它在java.lang包中,所有的程序都会自动加载该类,不需要手动导入。System.out.printf(“格式控制部分”,表达式)使用方式和c语言中的printf类似。Scanner类位于java.util.Scanner包中,需要使用import关键字导入。nextInt():获取一个整数,其他基本类型的数据和这个类似,都是next+类型的方式。Scanner 对象名=new Scanner(System.in);

2024-09-06 16:40:08 435

原创 java中的String类型与StringBuffer类型的区别

String类要注意是直接初始化的还是利用构造器初始化的,它们即使生成相同的字符串也会有所区别,当我们使用的字符串需要经常修改的时候还是建议使用StringBuffer,不然会造成空间和时间上的浪费,当然还有一个StringBuilder类,感兴趣的可以去了解一下它们三个的区别,这里不在赘述。本人还在学习Java中,若有错误和不足之处敬请各位指正,不胜感激。

2024-09-06 15:14:43 777 1

原创 JAVA中的代码块以及继承关系中代码块和构造器的执行顺序

由于篇幅有限也为了方便理解,这里使用两个类的继承来讲解(

2024-09-01 00:00:11 769

原创 关于java输入字符串的一些问题

输入一个字符串后我们会按回车结束,我们按的回车键也会送入键盘缓冲区作为输入的一部分只不过会被转化为换行符,而且这两种方法都不会把输入的回车给取走,也就是说输入s1的时候输入字符串+回车,next()仅仅是把字符串取走,回车还留在缓冲区中,这样程序接着执行到next()的时候nextLine()就会取走回车,因为nextLine()取字符串是以回车为结束标志,所以就会造成以上问题,只能输入一个有效的字符串。结果就是只能输出s1,然后我就想起来这两种输入方式的区别。

2024-08-30 15:57:39 506

原创 每日一题 所有数对中数位不同之和

数组中所有整数都相同,所以所有整数数对的数位不同之和为 0。所以所有整数数对的数位不同之和为。整数,所有正整数的数位长度都。位置上不同数字的数目。3 的数位不同为 1。的数位不同为 1。的数位不同为 2。

2024-08-30 09:20:24 342

空空如也

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

TA关注的人

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