自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在Java中处理空集合和空指针

通过上述方法,可以有效地避免在处理集合时遇到的常见问题,确保程序的稳定性和健壮性。在开发中,良好的编码习惯和对可能出现的异常情况的处理至关重要。处理其他集合类型(例如HashMap、HashSet等)时,原则上与处理ArrayList类似的哦。❤觉得有用的可以留个关注~❤。

2024-07-14 12:45:59 298

原创 Java使用DelayQueue模拟订单超时取消

通过测试方法展示了如何使用DelayQueue来处理延迟任务。它向队列中添加了多个延迟任务,并通过无限循环从队列中取出并执行到期的任务。这种机制在定时任务调度、延迟消息处理等场景中非常有用。是一个有序的阻塞队列,用于在指定的延迟之后从队列中提取元素。它在调度任务、缓存清除、队列中的元素按照它们的到期时间排序,只有到期的元素才能从队列中提取。保证了队列元素的自然顺序或通过提供的比较器进行排序。: 检索并移除队列头部的元素,如果没有到期元素则。下面是一个简单的示例,展示了如何使用。处理等场景中非常有用。

2024-07-13 09:45:02 334

原创 工作中使用线程池

通过上述步骤,你可以在Spring Boot应用中创建和使用线程池,并将其配置成由Spring管理。这样可以方便地管理并发任务,提高应用的性能和响应能力。Future是 Java 中用于表示异步计算结果的接口。它的主要功能是允许你在任务还未完成时获取结果,而不是阻塞等待任务完成。Future提供了一些方法来检查任务是否完成、等待任务完成并获取结果,以及取消任务等。FutureFuture接口用于表示异步计算的结果,可以检查任务是否完成、获取结果或取消任务。是Future。

2024-07-13 08:30:00 629

原创 Java中使用BufferedWriter|BufferedReader

BufferedWriter 是一个强大的工具,用于高效地写入字符流。通过提供缓冲区,它显著减少了写入底层输出流的次数,提高了写操作的性能。BufferedReader 是一个强大的工具,用于高效地读取字符流。❤觉得有用的可以留个关注~~❤。

2024-07-09 22:24:46 713

原创 Jackson中ObjectMapper

是 Jackson 数据处理库的核心类,用于将 Java 对象转换为 JSON,以及将 JSON 转换为 Java 对象。

2024-07-09 09:15:00 471

原创 力扣hot100-链表

同样地,如果 p2 到达链表 B 的末尾,则将其重定位到链表 A 的头部。中存储的是链表节点的引用(即 ListNode 对象的引用)。因为 HashSet 使用的是对象的引用进行比较,所以如果两个节点是同一个节点(即内存地址相同),HashSet 会检测到这个重复的引用,从而判断链表中存在环。思路是通过遍历两个链表,计算对应节点值与进位的和,处理进位并构建新链表,最后返回不含虚拟头节点的结果链表。这行代码创建了一个新的指针p,并使它指向与 head 相同的节点(即链表的头节点)。(指向下一个节点)。

2024-07-05 21:36:02 481

原创 Rabbit MQ实现异步调用

在用户注册时,系统会立即响应用户的注册请求,同时通过消息队列异步发送一封确认邮件。RabbitMQ 允许应用程序、服务或系统组件之间通过消息传递进行通信,而不需要它们直接相互调用,从而实现解耦和异步处理。中,调用方可以立即继续执行,而不需要等待被调用方完成任务。异步调用通过消息队列来实现,生产者发送消息到队列,消费者从队列中接收并处理消息。配置 RabbitMQ 的交换机、队列、绑定关系、消息转换、错误处理和辅助工具,以便于消息的生产与消费管理。中,调用方需要等待被调用方完成任务后才能继续执行。

2024-07-04 10:15:00 605

原创 力扣hot100-普通数组

的起始值大于 merged 列表中最后一个区间的结束值,则直接将新的区间添加到 merged 列表中;否则,更新 merged 列表中最后一个区间的结束值。方法1是自己写出来的。方法2参考的别人的,方法2太👍了,不易发现这个规律。当时没看题目中不让用除法,当时一下就想到这个思路了,哈哈哈。方法2使用两次遍历分别计算数组元素。的乘积,从而构建出结果数组。方法二可能不容易想到。

2024-07-02 21:11:11 730

原创 力扣hot100-哈希

我的思路是通过排序后的字符串作为哈希表的键,将原字符串作为值添加到相应的键对应的列表中。每次遍历字符串数组strs,将排序后的字符串作为键查找或添加到哈希表中。下面这个才是O(n²),外层i加1,内层n次打印。我最先想到的方法就是暴力,两层for循环,也能通过。用两个for,可能更容易看懂,时间复杂度不变。时间复杂度别理解成了O(n²)可能刚开始接触有点疑惑。

2024-07-02 20:22:55 830

原创 力扣-和为K的子数组

设 currentSum 表示当前的前缀和,也就是从数组起点到当前位置的元素之和。我们希望找到一个子数组,使得这个子数组的和等于 k。假设我们当前遍历到数组位置 j,当前的前缀和为 currentSum。(因为已知k,不知道sum[i-1] ,所以把k移到等号左边,看map中是否包含sum[i-1],包含则说明。因为可能存在多个前缀和为。解法1:两层for循环。解法2:前缀和+哈希。

2024-06-27 16:43:14 641

原创 力扣hot100-滑动窗口

窗口在数组或字符串上滑动,并在滑动过程中动态调整窗口的大小和位置,以满足特定条件。是一种常用的算法技巧,适用于需要在一个数组或字符串中找出满足特定条件的。滑动窗口算法通常涉及两个指针,分别表示窗口的。第一种:【第一次接触可能第一种方法容易理解】来减少重复计算,从而优化算法的时间复杂度。第一种方法:(不建议,容易超时)这是我第一想到的方法。

2024-06-24 10:45:00 707

原创 力扣hot100-双指针

while里面的去重, 可以用下面两种方法。我感觉这个很好理解,理解了这个,这道题就简单了。力扣有一位大佬给出5种方法,确实让人佩服。左侧和右侧的最大高度中的较小值减去。,能够存储的雨水量取决于位置。思路:快慢指针(双指针)法。核心思想:对于任意位置。思路:一层枚举+双指针。高度已经固定为较小值。

2024-06-23 15:15:00 780

原创 java实现与远程 SFTP 服务器之间安全文件传输

它提供了在安全信道上进行数据传输的能力。相比传统的FTP(File Transfer Protocol),SFTP具有更高的安全性和更多的功能。(Secure File Transfer Protocol)是一种基于SSH(Secure Shell)协议的。

2024-06-21 09:15:00 746

原创 判断IP地址是否与CIDR表示的96.32/12匹配

(Classless Inter-Domain Routing)是一种IP地址分配方法,它通过使用可变长子网掩码(VLSM)来提高地址分配的效率和灵活性。CIDR允许根据需要灵活地划分子网,可以更有效地利用IP地址空间,减少浪费。这种方法打破了传统的A类、B类和C类地址的限制,支持更大或更小的子网。CIDR表示法96.32/12中的“/12”表示前12位是网络部分,剩下的20位是主机部分。需要先了解96.32/12代表的地址范围。所以,96.33.224.123和96.32/12匹配。

2024-06-14 09:00:00 907

原创 前端传递bool型后端用int收不到

我前几天遇到一个低级错误,就是我前端发一个请求,把参数送到后端,但是我参数里面无意间传的。我当时用Postman测试第一次也没效果,当我仔细看参数才发现用的bool型。(刚开始一直没注意到,因为当时参数有十几个),但是我后端写的是用。当发送请求的时候一直没有反应。方法1:查找到参数类型错误。方法2:用map接收。

2024-06-12 20:02:51 689

原创 linux命令

tr是一个强大的文本处理工具,特别适合用于字符转换、删除和压缩。通过与其他命令结合使用,tr可以极大地提高文本处理的效率和灵活性。

2024-06-10 09:57:21 1624 1

原创 Knife4j 生成 API 文档

Knife4j是一个增强的 Swagger 文档生成工具,提供了更加友好的界面和更多功能,使得 API 文档更加美观且易于使用。它是基于 Spring Boot 和 Swagger 进行封装的,因此非常适合 Spring Boot 项目。

2024-06-09 13:01:20 866

原创 MyBatisPlus插件生成代码

是 MyBatis 的增强工具,旨在简化 MyBatis 的开发。MyBatis-Plus 代码生成器插件可以自动生成项目中常见的代码,如实。等,从而减少手动编写重复代码的工作量,提高开发效率。Service 接口。

2024-06-08 18:13:32 620

原创 雨课堂课件快速自动刷完

未读

2024-06-05 20:45:47 635

原创 Tomcat服务器|创建java web项目

Apache Tomcat,通常简称为Tomcat,是一个开源的Web服务器和Servlet容器。Tomcat主要用来运行Java Servlets和JavaServer Pages (JSP) 技术,允许开发者用Java编写的Web应用程序在Web服务器上运行。:Tomcat支持Servlet API,用于处理和响应客户端请求,尤其是HTTP请求。页面进行处理和显示。:Tomcat可以作为一个独立的Web服务器,处理静态和动态内容。:Tomcat支持JSP技术,这是一种简化的方式来创建动态网页。

2024-06-04 21:24:23 956

原创 python的简单web框架flask【附例子】

今天好奇,去了解了一下python的web框架。

2024-05-21 09:00:00 1017

原创 esp32连接WiFi发送求拿数据【附例子】

是一个宏,定义在ESP32的WiFi库中,用于表示WiFi连接状态。第二步:WiFi连接:使用WiFi.begin()函数连接到WiFi网络,传入WiFi的名称和密码作为参数。第一步:导入WiFi库:通过#include <WiFi.h>导入WiFi库,以便使用WiFi相关的功能。参数method是请求方法(如GET、POST等),data是可选的请求数据。参数name是头部的名称,value是头部的值【例如访问需要带token的】是ESP32 WiFi库提供的两个重要类,用于创建服务器和处理客户端连接。

2024-05-20 10:27:46 1286

原创 SpringBoot整合xxl-job实现定时任务【入门版】

这个端口号通常用于 Executor 提供的 HTTP API 接口,用于接收 XXL-Job Admin 分配的任务并执行。在 XXL-Job Admin 中配置的执行器的地址和端口号需要与 Executor 的配置保持一致,以确保 Admin 能够正确地与 Executor 通信。这里的空字符串表示 Executor 的地址为空,意味着 Executor 将会使用本机的 IP 地址。的任务管理界面和强大的任务调度功能。:可以设置任务失败的处理策略,例如重试、告警、忽略等,保证任务执行的稳定性和可靠性。

2024-05-19 14:23:51 1435

原创 SpringBoot和vue3实现登录退出【用jwt redis 拦截器..】

后端可以记录每个用户发送验证码的时间戳。如果用户在短时间内发送多次验证码请求,后端可以检查最新的请求时间戳与上次请求时间戳的间隔,如果间隔时间太短,就拒绝处理额外的请求。:在前端实现点击发送验证码按钮后,禁用按钮一段时间,防止用户连续点击发送。可以在发送验证码后,将按钮禁用一段时间,以防止用户误操作多次点击发送。功能,并使用拦截器、JWT和Redis缓存来提高系统的安全性和性能。发送验证码,可能不小心点了两下等重复提交操作。像登录页面的路径就不要拦截了,否则都不能登录了。

2024-05-18 10:08:42 788

原创 IDEA中一些常见操作【持续更新】

因为这些操作偶尔操作一次,不用刻意记忆,有个印象即可,需要的时候就查一查。我觉得有必要记录一下,下次操作更快。熟悉一些快捷操作有时候真的很方便!

2024-05-17 11:15:46 479

原创 Mybatis分页插件【附例子】

引入依赖:确保你的项目中已经添加了PageHelper的依赖。配置PageHelper启动分页功能:在执行查询之前,使用方法来启动分页功能。该方法接受两个参数:当前页码和每页显示的记录数。执行查询:执行你的查询操作,使用MyBatis的Mapper接口来获取数据列表。创建PageInfo对象:将查询到的数据列表封装成PageInfo对象,这个对象包含了分页查询的详细信息,如当前页码、总记录数、总页数等。返回结果。

2024-05-16 19:48:00 508

原创 Redis分布式锁【简单版】

Redisson解决了:锁过期释放,业务没执行完。

2024-05-15 22:41:08 625

原创 简单的mysql主从复制搭建

MySQL主从复制是一种常见的数据库复制技术,用于在不同的MySQL数据库之间同步数据。这种配置通常包括一个主数据库(Master)和一个或多个从数据库(Slave)。在MySQL数据库中,主从复制是一种常见的数据复制和备份方案,它允许将数据从一个主数据库服务器同步到一个或多个从数据库服务器上。从数据库服务器(Slaves):负责处理读操作,从主服务器复制数据以保持与主服务器数据的同步。主数据库服务器(Master):负责处理所有的写操作,保持数据的一致性。第三步:创建用于主从复制用户账号并授权。

2024-05-14 13:47:56 526

原创 局域网内访问vue3项目|Network: use --host to expose

这意味着只有在同一台计算机上的浏览器才能访问你的应用程序。通过指定一个公共的主机名,你可以使你的应用程序能够被网络中的其他设备访问,这对于在。上的设备,局域网是指在某一区域内由多台计算机互联成的计算机组,同一局域网不一定要接同一个交换机或者HUB。选项告诉开发服务器监听所有的网络接口,而不仅仅是本地主机。是一个特殊的 IP 地址,代表所有可能的 IP 地址。我希望在相同的局域网内,通过手机访问我在Vue 3项目中展示的效果。中的其他设备来访问你正在开发的应用程序。中的其他设备上测试你的应用程序特别有用。

2024-05-13 11:04:05 660

原创 Vue3项目打包部署到云服务器的Nginx中

放到docker安装的nginx中的。推荐使用docker安装nginx,nginx配置文件容易出错!

2024-05-12 22:17:28 657 2

原创 kafka生产者消费者举例

Kafka是一款分布式流处理平台,它被设计用于高吞吐量、持久性、分布式的数据流处理。Kafka 简介Kafka 是一个高吞吐、分布式、基于发布订阅的消息系统。Kafka 具有高吞吐量、低延迟、可扩展性、持久性、可靠性、容错性、高并发等特性。Kafka 应用场景日志收集:公司可以使用 Kafka 收集各种服务的日志,然后通过 Kafka 统一接口服务的方式将这些日志开放给各种消费者,例如 Hadoop、Hbase、Solr 等。消息系统:Kafka 可以解耦生产者和消费者,缓存消息等。用户活动跟踪。

2024-05-11 10:15:00 1213

原创 解决电脑睡眠后,主机ping不通VMware虚拟机

重启电脑即可,凡是遇到电脑有毛病,重启能解决90%问题。但是重启电脑比较慢,而且重启电脑会关闭所有正在运行的应用程序。(Network Connections Properties Application 网络连接属性应用程序)原因:电脑休眠一段时间,再次打开电脑就ping不通VMware虚拟机。是 Windows 操作系统中的一个控制面板项,用于配置网络连接。(Control Panel Item 控制面板项),每次重启电脑虚拟机ip都可能发生变化。如果你虚拟机没有配置。

2024-05-10 19:55:04 487

原创 SpringBoot配置热部署devtools工具

是一组开发工具,其中包括热部署功能。spring-boot-devtools的热部署功能允许开发人员在开发过程中对应用程序进行快速修改并立即看到变化而不需要重新启动整个应用程序。Spring Boot DevTools通过监视应用程序的类文件和资源文件的变化,在检测到变化时自动重新加载应用程序。这样可以大大提高开发效率,因为开发人员可以更快地查看和测试他们的更改,而不必等待长时间的重新启动过程。

2024-05-10 11:52:23 450

原创 Java中实现定时任务

在软件开发中扮演着重要的角色,满足了许多业务需求。常见的业务场景:数据备份:订单自动取消:数据抓取:定时推送:计算和通知:总之,定时任务允许我们在特定的时间点或延时后执行特定的任务,满足了业务需求中的周期性工作、异步处理、定时通知等功能。 是 Spring 框架提供的一种任务调度和异步处理的解决方案。它可以按照约定的时间自动执行某个代码逻辑,帮助开发者在 Spring 应用中轻松地实现、异步任务等功能,提高应用的效率和可维护性基于 Spring Task 实现定时任务方式之一:注意:使用 注解的方

2024-05-09 10:30:00 1024

原创 基于Spring AOP自动填充字段

Spring AOP(Aspect-Oriented Programming)是 Spring 框架中的一个核心模块,用于实现面向切面编程。它提供了一种将横切关注点(cross-cutting concerns)与核心业务逻辑分离的机制。在传统的面向对象编程中,我们通常按照功能模块对代码进行划分,比如将业务逻辑、数据访问、日志记录等功能分别封装在不同的类中。然而,某些功能可能会跨越多个模块,比如日志记录、事务管理、权限控制等,这就是所谓的横切关注点。横切关注点的存在会导致代码的重复性。

2024-05-08 11:13:09 1137

原创 java项目跑不起来 端口已被使用

用于在Windows操作系统中查看端口8443的使用情况。,这是一个命令行工具,用于显示网络连接、路由表、网络接口统计等网络相关信息。:这是管道操作符,它的作用是将前一个命令的输出作为下一个命令的输入。使用数字形式显示地址和端口号,而不是尝试解析为主机名或服务名。:这是一个命令行工具,用于在文本数据中搜索指定的字符串或模式。显示每个连接的拥有者,即关联的进程ID(PID)。Springboot项目跑不起来,原因端口被占用。命令要搜索的字符串,即端口号8443。,它的作用是显示所有连接和监听端口。

2024-05-08 09:30:00 497

原创 Docker常用命令【表格】

Docker是一个开源的平台,用于开发、部署和运行应用程序。它使用容器化技术,能够将应用程序及其依赖项打包到一个可移植的容器中,使其能够在任何环境中运行,而不受环境差异的影响。

2024-05-07 09:45:00 426

原创 Docker重启容器失败

认真看日志,然后百度解决,然后记录觉得有用的可以留个关注❤。

2024-05-06 19:49:21 525

原创 解决github的remote rejected|git存储库的推送保护

git存储库的推送保护。当你试图推送代码到GitHub仓库时,由于存在与主分支(master)相关的仓库规则违规行为,推送会被拒绝了。这种保护机制帮助确保只有经过授权和符合规定的代码才能被合并到主分支,从而保护了主分支的稳定性和安全性。在尝试了网络上各种方法无效后,我认真查看推送日志。恍然大悟,日志中清楚地列出了问题所在。这次经历让我知道了潜意识中害怕英文是我的阻碍之一。我意识到了直接查看日志的重要性,它提供了最准确的信息,让我能够理解问题并找到解决方案。

2024-05-06 17:36:38 803 1

原创 IDEA访问不到静态资源

我在resources下创建static文件夹,再创建front文件夹放前端资源,里面有index.html,游览器输入localhost:8011/front没反应。(resources/static/front/index.html)当我写完整路径就能访问了(http://localhost:8011/front/index.html),好奇怪。重启idea,清楚idea缓存,清楚游览器缓存也没见效。

2024-05-05 17:56:56 479

空空如也

空空如也

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

TA关注的人

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