- 博客(71)
- 收藏
- 关注
原创 WebSocket基础知识
在实时通信需求日益增长的今天,传统的 HTTP 请求-响应模式已难以满足即时消息推送、在线协作等场景。WebSocket 作为一种基于 TCP 的全双工通信协议,凭借其低延迟、高效率的特点,成为实时通信的核心技术之一。
2025-03-27 15:48:57
788
原创 docker基础知识
该文章仅介绍了一些关于Docker的基础知识孤儿卷是 Docker 中未被任何容器关联或使用的数据卷。容器被删除时未使用-v参数同步清理关联卷;手动创建了数据卷但未挂载到容器;容器意外终止或配置错误导致卷未被正确释放。孤儿卷会持续占用宿主机存储空间,若未及时清理可能引发资源浪费。方法一:手动删除单个体积docker volume rm <孤儿卷名称>方法二:批量清理所有未使用卷注:此命令会删除所有未被任何容器或服务引用的孤儿卷,操作前会要求用户确认。
2025-03-27 11:32:14
1034
原创 【LeetCode:80】删除有序数组中的重复项 II(中等)
因为给定数组是有序的,所以相同元素必然连续,因此本题可以使用双指针来解决,通过定义左left 右right 两个指针,来遍历整个数组进行判断即可实现。注:数组的前两个数必然可以被保留,因此定义left和right的初始位置为2即可。, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。
2025-02-16 02:45:00
641
原创 【LeetCode:26】删除有序数组中的重复项(简单)
此时循环判断结束后,nums数组中,区间 [ 0,left ) 之间就是所有唯一的数,因为left记录的是数组的下标,所以。因为第一个数肯定是唯一的,所以right起始位置在1即可。不需要考虑数组中超出新长度后面的元素。如果所有断言都通过,那么您的题解将被。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度 2。的前两个元素被修改为 1。函数应该返回新的长度 5。的前五个元素被修改为 0。数组的唯一元素的数量。
2025-02-16 02:15:00
546
原创 百度智能云—千帆 ModelBuilder API的简单调用(Java)
百度(Baidu)是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。“百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于2000年1月1日在中关村创建了百度公司。百度拥有数万名研发工程师,这是中国乃至全球都顶尖的技术团队。
2025-02-15 21:31:54
1483
原创 深度求索—DeepSeek API的简单调用(Java)
DeepSeek(深度求索)是由中国人工智能公司深度求索(DeepSeek Inc.)研发的大规模语言模型(LLM),专注于提供高效、智能的自然语言处理能力,支持多种场景下的文本生成、对话交互和多模态任务。
2025-02-15 19:28:35
875
原创 【LeetCode:27】移除元素(简单)
你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。因为right永远等于或者领先于left,所以left所处位置前的数字都是不等于val的,此时获得的数组,在区间 [0,left) 中的元素都不等于val。中的前两个元素均为 2。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你的函数函数应该返回 k = 2, 并且 nums。如果所有的断言都通过,你的解决方案将会。
2025-02-15 18:02:42
409
原创 【LeetCode:88】合并两个有序数组(简单)
需要合并的数组是 [] 和 [1]。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。将两个数组看作队列,为两个数组分别设置一个指针 p1 与 p2 来作为队列的头部指针,每次从两个数组头部取出比较小的数字放到结果数组中。最简单直接的方法就是将数组 nums2 中元素放进数组 nums1 的尾部,然后直接对整个合并后的数组进行排序。需要合并 [1,2,3] 和 [2,5,6]。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。中,使合并后的数组同样按。
2025-02-15 15:48:23
339
1
原创 【LeetCode:9】回文数(简单)
从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。从右向左读, 为 01。因此它不是一个回文数。是一个回文整数,返回。
2025-02-15 15:15:38
465
原创 银行家算法:死锁避免的经典策略
银行家算法是操作系统中用于避免死锁的经典算法,由Edsger Dijkstra提出。它通过模拟资源分配来确保系统始终处于安全状态,从而避免死锁的发生。本文将通过原理讲解和Java代码实现,带你彻底掌握这一算法。
2025-02-11 22:28:47
274
原创 操作系统中的任务调度算法
目录一、 先来先服务 (FCFS, First-Come-First-Served)二、短作业优先 (SJF, Shortest Job First)三、优先级调度 (Priority Scheduling)四、时间片轮转 (RR, Round Robin)五、高响应比优先 (HRRN, Highest Response Ratio Next)六、多级队列调度 (Multilevel Queue Scheduling)七、多级反馈队列 (MLFQ, Multilevel Feedback Queue)八、实
2025-02-11 18:46:09
787
原创 面向对象的程序设计的封装、继承、多态
封装:隐藏细节,暴露接口。继承:复用代码,建立层次,扩展功能。多态:同一操作,不同表现。这些特性共同提升了代码的可维护性、复用性和扩展性。
2025-02-06 21:51:35
269
原创 Java抽象类和接口的区别
当一个类中没有包含足够的信息以描绘一个具体的对象时,这样的类就是抽象类;“抽象类”是用关键字 abstract 修饰的,抽象类中有一种特殊方法,即用abstract 关键字来修饰的方法,这些方法被称为“抽象方法”如果不想实现抽象类中的抽象方法,那么该此子类必须是个抽象类注:构造器的作用是构建对象的同时赋初始值,但抽象类的构造器只能进行初始化操作而不能进行创建对象。
2025-02-06 21:40:44
487
原创 为什么重写equals的同时一定要重写hashCode?
hashCode 和 equals 两个方法是用来协同判断两个对象是否相等的,采用这种方式的原因是可以提高程序查询的速度。如果在重写 equals 时,不重写 hashCode,就会导致在某些场景下,例如将两个相等的自定义对象存储在 Set 集合时,就会出现程序执行的异常,为了保证程序的正常执行,所以我们就需要在重写 equals 时,也一并重写 hashCode 方法才行。
2025-02-06 21:40:04
530
原创 从零开始启动一个Vue项目
也可以在别的软件中打开,效果同上,都是打开终端使用npm run serve命令启动vue。如果项目是前后端分离的话,则是在前端文件目录下使用此命令,而不是在项目文件目录下使用此命令。使用npm run serve,比如这里的话是在vue-project目录下使用此命令。在浏览器输入下面链接即可打开vue的初始界面。上面两条命令都可以查看脚手架版本。③ 对创建的项目进行相关配置。1、进入管理员模式的命令行。① 首先进入创建项目页面。⑥ 查看创建好的项目文件。② 点击在此创建新项目。⑤ 等待项目创建完成。
2025-01-17 21:52:45
2445
原创 NodeJs的安装及环境配置
经过npm安装模块时都是去国外的镜像下载的,因此有时可能因为网络等缘由致使安装模块失败,因此我们可以选择更换淘宝 NPM 镜像,网站内附使用说明,可自行查看。
2025-01-17 21:00:51
1428
原创 MybatisPlus 实现乐观锁
乐观锁就是持比较乐观态度的锁。在操作数据时非常乐观,认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断在此期间别的线程有没有更新过这个数据。
2025-01-17 14:16:18
1606
原创 Mybatis Plus代码生成器
实体类:对应数据库表的 Java 实体类。Mapper 接口:用于数据库访问的 Mapper 接口。Mapper XML:与 Mapper 接口对应的 SQL 映射文件(可选)。Service 和 ServiceImpl:业务逻辑层的接口和实现类。Controller:处理 HTTP 请求的控制层代码(可选)。通过代码生成器,开发者只需要配置好数据库连接和表名等信息,即可自动生成一套基础的代码结构,节省大量重复性工作。
2025-01-17 14:16:02
382
原创 MybatisPlus 通用枚举
数据库表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatisPlus的通用枚举来实现。mybatisplus使用通用枚举二、数据库表添加字段sex。
2025-01-17 14:15:44
373
原创 Mybatis Plus 分页实现
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能,当然也可以通过XML自定义实现分页功能,两种方法实现分页皆可。UserMapper中定义接口方法/*** 根据年龄查询用户列表,分页显示* @param page 分页对象 ,xml中可以从里面进行取值 ,传递参数 Page 即自动分页 ,必须放在第一位* @param age 年龄* @return*/
2025-01-16 16:45:21
1810
原创 Mybatis Plus常用注解
测试删除功能,真正执行的是修改SETid=?ANDi测试查询功能,被逻辑删除的数据默认不会被查询SELECTidusernameASnameageemailisdeletedFROMtuserWHEREisdeleted=0。
2025-01-16 15:08:37
1498
原创 Mybatis Plus 条件构造器(condition,LambdaQueryWrapper,LambdaUpdateWrapper)
在真正开发的过程中,组装条件是常见的功能,而这些条件数据来源于用户输入,是可选的,因。此我们在组装这些条件时,必须先判断用户是否选择了这些条件,若选择则需要组装该条件,若。思路一的实现方案没有问题,但是代码比较复杂,我们可以使用带。没有选择则一定不能组装,以免影响。询条件,简化代码的编写。参数的重载方法构建查。
2025-01-16 13:12:32
236
原创 Mybatis Plus 条件构造器(QueryWrapper和UpdateWrapper)
Wrapper: 条件构造抽象类,最顶端父类: 用于查询条件封装,生成sql的where条件: 查询条件封装Update条件封装: 使用Lambda语法:用于Lambda语法使用的查询WrapperLambda更新封装Wrapper。
2025-01-15 18:52:41
342
原创 Spring Boot配置文件
spring为开发者提供了一个名为的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用在pom.xml中引入热部署依赖引入依赖后可以通过ctrl+f9来实施热部署。
2025-01-15 16:34:18
1261
原创 SpringBoot 自动装配原理及源码解析
getAutoConfigurationEntry方法通过一系列步骤,包括检查自动配置是否启用、获取候选配置、去除重复项、获取排除配置、检查排除的类是否有效、移除排除项、过滤配置,最终生成一个包含自动配置类和排除配置类的AutoConfigurationEntry对象。springboot 的自动装配(Auto-Configuration)是一种特性,它可以基于类路径上的条件以及属性文件中的设置自动配置 Spring 应用程序,简化开发人员需要编写的配置代码。
2025-01-14 15:03:53
795
原创 Spring Boot 的基础入门,教你如何从零开始创建一个基础的SpringBoot项目
简化了Spring应用开发的一个框架,对整个Spring技术栈的一个大整合,提供了J2EE开发的一站式解决方案。
2025-01-14 15:03:30
1187
原创 SpringBoot项目的创建方式(五种)
这里可以进行勾选自己所需要的依赖,springboot会自动完成依赖的引入,也可以不做选择直接进行下一步,后续自己进行手动添加。类名可以自定义,只要保障下面代码中使用的类名和你自己定义的名称一样即可,也就是run方法中的那个class对应的名称。PS:8080为默认端口号,即此处不设置的话默认为8080,此处可以更改成别的端口号。各选项所填内容同之前一样,自己进行选择,选择完毕后点击下图所示按钮即可。点击Spring Boot进去,向下拉,点击下图中框出蓝字部分。
2024-12-21 22:54:31
4416
原创 Spring框架IOC
Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring的核心是控制反转(IoC控制反转)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。IOC -- Inverse of Control,控制反转,将对象的创建权力反转给Spring框架!!
2024-12-21 19:17:31
763
原创 git分支开发流程
Pull Request:简称PR,在GitHub中,使用于公开库的合并,如fork了别人库,改完后,想合并到主库中,得请求合并到主库中。Merge Request :简称MR,在GitLab中,使用内部仓库中,单个仓库的不同分支进行合并的场景。更多的用于代码校验,审核。在开发过程中会涉及到很多分支,不同公司的分支可能也会有差异;我理解的是两个都是做合并的操作,只是审核的对象不同。
2024-12-20 20:27:31
944
原创 腾讯云服务器部署SSM项目
这是一个帮助你在电脑和服务器之间传输文件的软件,用起来就像在电脑上复制粘贴文件一样简单,而且传输过程是加密的,保证文件安全。:这是一个让你可以在电脑上远程操作服务器的软件,就像直接在服务器前敲键盘一样。打开腾讯云管理控制台,设置安全组,与前面配置tomcat端口号的步骤一样,将各个子模块的端口号全都加上。,推荐使用这两个,因为可以直接在该软件上进行文件传输,不用像Xshell一样需要下载Xftp。下面是通过网络自动安装配置jdk的方法(不建议使用,虽然确实方便,但容易出现自己不知道的错误)
2024-12-12 18:02:01
1185
原创 SpringMVC框架——入门
SpringMVC的概述是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。
2024-12-12 18:00:21
880
原创 Tomcat项目本地部署
6、将下面代码复制到conf目录下的server.xml文件中,注意对项目端口号和项目名称的修改(仅修改这两处即可),需要部署几个就加几个,如果只有两个则只加两个即可,这里是因为文件服务器也一起部署了所以加了三个。4、MavenWeb项目打的是war包,普通Maven项目则打的是jar包,右键打好的包,按下图在文件资源管理器中打开,找到这个包所在位置。1、本篇文章使用的项目案例为一个聚合项目,hami_parent为父模块,其余为子模块,项目目录如下图所示。conf目录下多了如下文件。
2024-12-10 23:38:48
1783
原创 Maven私服
Nexus是Maven仓库管理器, 通过nexus可以搭建maven仓库,同时nexus还提供强大的仓库管理功能,构件搜索功能等。
2024-10-20 23:37:20
1245
原创 Maven的进阶
我们可以使用Maven的继承功能,把公共的配置信息写到父模块中,子模块只要继承了该父模块,也会继承父模块的配置信息。当编写Java代码时,我们总是需要一些库,例如,做单元测试我们需要JUnit库,对于更大的项目,我们可能需要创建自己的库并在不同的部分使用它的项目,每个外部JAR可能还依赖于其他外部JAR文件等,以递归方式下载所有这些外部依赖JAR文件并确保下载正确的版本是一项巨大的任务,而且不同的项目需要不同版本的库, 保持项目最新的库JAR文件的正确版本不是一个容易的事。
2024-10-20 16:32:41
1210
原创 使用Maven前的简单准备
LICENSE, NOTICE, README.txt为针对Maven版本,第三方软件等简要介绍。设置MAVEN_HOME环境变量,把maven的解压后的路径添加为变量值。lib:含有Maven运行时所需要的java类库。至此,使用Maven前的简单准备已经完成。1、设置MAVEN_HOME环境变量。解压到相应目录即可(无中文路径)bin:含有mvn运行的脚本。三、Maven的环境变量配置。二、Maven目录的分析。2、设置Path环境变量。版本:Maven3.6。一、Maven的准备。
2024-10-20 12:30:14
443
原创 mysql事务
在数据库中,通常会碰到下图中的问题,张三给李四转账,看似只需要两条sql语句即可实现,但是如果这两条sql语句一条执行成功了,一条执行失败了,这时候会发生什么情况呢,张三的钱少了,而李四的钱没有增加,凭空丢失了100,那么我们该如何应对这种情况的发生?1、事务是最小的不可分割的工作单元,通常一个事务对应着一个完整的业务2、一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成3、事务只和DML语句有关,或者说DML语句才有事务。
2024-10-19 15:38:40
551
原创 JDK目录介绍
bin目录:存放了jdk的所有可执行程序,如java,javac。lib:java开发所用到的工具包。.zip文件:存放了jdk的源码。include:本地接口编程。jre:Java运行环境。
2024-10-19 11:32:51
262
原创 Java基础(包装类)
该篇文章创作时参考查阅了如下文章Java种的包装类Java包装类(自动拆装箱)Java--自动拆箱/装箱/实例化顺序/缓存--使用/原理/实例若想详细了解可自行进入相关文章进行查看Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char相对应地,Java提供了8种包装类对应这8种基本数据类型Byte、Short、Integer、Long、Float、Double、Boolean、Character。
2024-08-27 20:05:28
468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人