国内最全的Spring Boot系列之七

news2024/12/23 10:07:09

• 阿里巴巴前高级研发工程师

• 三家千万级互联网企业技术顾问

• MBTI/盖洛普技术专家

• 厦门某高校外聘教师

• 51CTO特约合作讲师

• 网易云课堂签约讲师

•《深入理解设计模式》作者

一转眼马上要过年了,回首2023年,感觉自己无所事事、碌碌无为、一脸茫然,但总的还是有些事情可以记录一下…

2023年的工作是在厦门的一家做医疗短视频的公司,去这家公司也算是一种机缘。之所以有面试的机会是公司碰到了高并发以及多端并发退款的问题,在公司之前的架构师此时的能力有限,无法解决这些问题,所以我就顺利的面试通过并且轻松了这些问题。但最后的最后在23年年底,公司由于资金困难,团队解散了,庆幸的是公司结清了工资,不然…

回首23年,有这么几个事情以及感悟:

(1)书成功出版:《深入理解设计模式》(原本取名是《大话设计模式之爱你一万年》,但由于出版社要求比较严格,未通过)终于是成功出版,并且销售成果还算客观。京东地址:https://item.jd.com/13860042.html。

(2)羽毛球:羽毛球还是坚持去打,不仅仅是一项运动,也是一种社交方式,认识了一群喜欢打羽毛球的朋友,打完球一起烧烤啤酒,此时的烦恼烟消云散。

(3)坚持写博客:今年写博客,没有那么积极了,但好歹也算是坚持下来了。总的还是要关注自己的成长以及赚钱的能力。对于赚钱的能力,大家要把这个放在心上,这是生存之本,提高生活品质的基础。

(4)习惯养成到舍弃:以前有好多的习惯,比如每天微信读书、早起、学习等,但回到厦门之后这些习惯就突然随着自己的惰性以及乱七八糟的生活,统统没了。养成习惯要比很久还很久,但是要舍弃,只要3天就够了。

一、Spring Boot历史系列集合

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

二、深入理解设计模式书籍

设计模式包含了大量的编程思想,真正掌握并不容易。设计模式的书籍并不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神,就会造成这样的结果: 知道各种设计模式,但是不知道怎么使用到真实项目中。本书籍针对上述问题,有针对性的进行了升级:讲解方式采用有趣的故事,以及配合框架源码分析的方式,让文章内容生动有趣好理解。

本书共23章,主要内容如下:

l 介绍设计模式的分类、六大原则以及23种设计模式的总体介绍,让读者在学习之前对设计模式有整体的认识。

l 第2~23章,通过有趣的场景案例讲解设计模式的概念、使用场景以及使用方法,比如我的女朋友只有一个讲解了单例模式,我想让你坐在宝马里笑讲解了工厂模式女友在手说走就走讲解了策略了模式,结婚发消息不是一件简单的事情讲解了桥接模式。

💪值得每位IT人把玩的一本书:https://item.jd.com/13860042.html (长按链接“复制”到浏览器购买,内附详细信息)

如果您更青睐视频学习方式,不妨来此:https://dwz.cn/wqO0MAy7 (长按链接“复制”到浏览器购买,内附详细信息)

一顿饭钱就拿走我十年心血💔,哈哈,苦BB的IT人(互联网行业形式严峻,希望各位仔都成为金字塔尖的人物)

三、文章集合

3.1 ES系列

ElasticSearch(简称ES)是一个开源的分布式搜索和数据分析引擎,是用Java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,它专门设计用于处理大规模的文本数据和实现高性能的全文检索。

官方网站:

https://www.elastic.co/

下载地址:

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

全文检索[ES系列] - 第495篇

ElasticSearch应用场景以及技术选型[ES系列] - 第496篇

ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇

Elasticsearch可视化平台Kibana [ES系列] - 第498篇

Elasticsearch安装分词插件[ES系列] - 第499篇

ElasticSearch扫盲概念篇[ES系列] - 第500篇

3.2 15篇MyBatis-Plus系列集合篇

在当今的软件开发世界中,MyBatis-Plus 已经成为了一个不可或缺的工具。作为 MyBatis 的增强版,它不仅保留了 MyBatis 的全部功能,还通过一系列创新性的设计和改进,极大提升了开发效率,使开发者能够以更少的代码实现更多的功能。

MyBatis-Plus的出现,解决了 MyBatis 在使用过程中可能遇到的痛点。它以一种更加简洁、直观和高效的方式,帮助开发者处理数据库操作。更重要的是,MyBatis-Plus 还提供了许多高级功能,如热加载、ActiveRecord 支持、代码生成等,这些都是开发者在实际开发中非常需要的。

这里汇集了MyBatis-Plus基本的使用以及日常会碰到的一些业务场景的文章,有需要的可以收藏学习。

第一章 基础入门

1.1 MyBatis-Plus是什么以及特性[MyBatis-Plus系列]

MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

https://mp.weixin.qq.com/s/FsyThhgUwGLi_8PeTLUFIg

1.2 MyBatis-Plus快速开始[MyBatis-Plus系列]

这一节将通过一个简单的Demo 来阐述 MyBatis-Plus 的强大功能

https://mp.weixin.qq.com/s/15IeyrZpfMh9u2xRdvSnnQ

1.3 MyBatis-Plus快速实现增删改[MyBatis-Plus系列]

在前面的小节中,介绍了MyBatis-Plus的基本使用,需要添加什么依赖以及基本的注解配置就可以快速使用MyBatis-Plus的查询selectList。这一节来看一下常用的增删改如何操作呢 ?

https://mp.weixin.qq.com/s/HVy2N5U_xzK226KdTtqwyw

1.4 MyBatis-Plus实现普通查询/分页查询[MyBatis-Plus系列]

在实际的项目中,删除是最简单的,一般大部分的需求场景根据id删除;对于创建和修改可以认为是一个事情,当然如果是修改状态的话,那么就是单个字段的修改,大同小异。

因此在项目中最难的是查询操作,如果是单表查询,那到还好,但是如果是多表查询的话,那么复杂程度会增加;再者就是业务场景中常见的分页查询。

https://mp.weixin.qq.com/s/Z7UOelKpyzk-L469xnr2zQ

第二章MyBatis-Plus核心功能学习

2.1 使用LambdaQueryWrapper再也不担心字段拼写错误了 [MyBatis-Plus系列]

为了更方便的实现动态SQL,Mybatis Plus 在其基础上扩展了 LambdaQueryWrapper,LambdaQueryWrapper 提供了更加简便的查询语法,同时也避免了 SQL 注入的风险。

https://mp.weixin.qq.com/s/9BeTg_tSlh3hD_4MeoGS4g

2.2 表名注解/主键注解/字段注解/乐观锁注解[MyBatis-Plus系列]

在前面的小节中,对于MyBatis-Plus的使用已经有了一个基本的了解了,本文将介绍MybatisPlus 注解包相关类详解。

https://mp.weixin.qq.com/s/RzA5fBOuK0E9rP2cH2b4GQ

2.3 MyBatis-Plus通用Service快速实现增删改查[MyBatis-Plus系列]

在前面学习了BaseMapper封装了常见的数据库增删改查操作,在实际的项目中,控制层并不会直接操作数据层,中间还有一层服务层,所以对于服务层的增删改查操作,MyBatis-Plus进行了封装:通用Service CRUD 封装IService接口。

https://mp.weixin.qq.com/s/Crw5dTDi48698xucD3bYUQ

2.4 SpringBoot集成MyBatis-Plus + MyBatis-Plus(3.5.3版本)代码生成器[MyBatis-Plus系列]

平时在开发的过程中,对于新建的一张表难免会有对其进行增删改查的操作,而且还要写Controller、service、Mapper、Mapper.xml、PO、VO等等。如果每次都要去写这些跟业务毫不相干但是却又耗时耗力的重复代码这不仅是让开发人员不能专注于业务逻辑甚至可能由于不注意导致字段大小写或者某个字母写错而出现bug。所以我们可以利用代码生成器来生成这些固有的代码,这样不仅正确性高,毕竟代码是不会骗人的。而且还节省了时间。

https://blog.csdn.net/linxingliang/category_12491506.html

2.5 MyBatis-Plus主键生成策略[MyBatis-Plus系列]

Mybatis Plus为我们提供了三种设置主键生成策略的方式。它们的优先级顺序是:局部注解 > 全局 > 默认(雪花算法),下面我们来一一介绍。

https://blog.csdn.net/linxingliang/category_12491506.html

第三章MyBatis-Plus扩展学习

3.1 MyBatis-Plus实现逻辑删除[MyBatis-Plus系列]

在实际的项目中,在删除数据的时候,我们并不想真正的把数据删除掉,而是修改一个状态中,不查询出来而已,这个就是逻辑删除。

在MP中要实现逻辑删除,非常easy,只需要简单的配置即可。接下来就带大家实践一下。

https://blog.csdn.net/linxingliang/category_12491506.html

3.2 Mybatis-Plus通用枚举功能 [MyBatis-Plus系列]

通常在开发中,有这样的需求:枚举类型存入数据库存的是编码code,然而返回给前端的时候是名称name,我们每次入库的时候都要getCode()以及返回给前端的时候要getName(),很繁琐,并且字段属于那种枚举类型的可读性也不高

基于以上问题:我们会尝试着定制一些逻辑专门去处理,一般是自定义枚举转换器实现,然而mybatis-plus提供了优雅的实现方式。

https://blog.csdn.net/linxingliang/category_12491506.html

3.3 Mybatis-Plus自动填充功能配置和使用 [MyBatis-Plus系列]

在数据入库的时候,不管新增或者修改数据,都要手动来设置添加时间和修改时间。每个插入都需要设置,而且数据库还设置不能为空,就很烦恼。

虽然可以在数据库设置默认值,但若没有数据库表修改权限,那就从技术上来解决这个问题吧。(如果有数据库表修改权限,可直接设置相应字段属性)。

需要自动填充的字段:

l插入数据时自动填充:create_time

l更新数据时自动填充:update_time

可以数据库设置默认值,也可以通过代码的方式进行自动填充。

本节来看一下如何使用MP的自动填充功能。

https://blog.csdn.net/linxingliang/category_12491506.html

3.4 Mybatis-Plus 自定义SQL注入器,实现真正的批量插入![MyBatis-Plus系列]

在使用MyBatis-Plus时,dao层都会去继承BaseMapper接口,这样就可以用BaseMapper接口所有的方法CRUD。

在Mybatis-Plus中调用updateById方法进行数据更新默认情况下是不能更新空值字段的。

而在实际开发过程中,往往会遇到需要将字段值更新为空值的情况。

那如何让Mybatis-Plus支持空值更新呢?

https://blog.csdn.net/linxingliang/category_12491506.html

3.5 完美的输出打印 SQL 及执行时长[MyBatis-Plus系列]

在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,以及了解它的执行时间,方便分析是否出现了慢SQL问题。

MyBatis-Plus提供了两种SQL分析打印的方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。

https://blog.csdn.net/linxingliang/category_12491506.html

3.7 MyBatisX快速开发插件 [MyBatis-Plus系列]

MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率。但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可以使用MyBatisX插件。

https://blog.csdn.net/linxingliang/category_12491506.html

3.3 EasyPoi实战系列集合

01.《【EasyPoi实战系列】Spring Boot集成EasyPoi - 第467篇》

在项目的开发工程中,经常有导入导出数据的常见功能场景,Apache的POI是处理导入导出中最常用的,但是其原生的用法太复杂,很繁琐,总是在Copy… ,无意间发现一款简单粗暴的神器EasyPoi,EasyPoi也是基于POI的,在Spring Boot中也是做了很好的封装,让我们能够在Spring Boot 快速地使用EasyPoi 进行开发,很方便,而且支持多种格式的导入导出。

对于EasyPoi基本的使用的话,可以查看这一篇进行学习。

02.《【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇》

注解@Excel的基本使用以及如何导出图片的相关操作。

(1)@Excel属性width:设置列宽。

(2)@Excel属性format:设置日期格式。

(3)@Excel属性replace:类型转换。

(4)@Excel属性type和imageType:图片导出的设置。

03.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇》

在数据的项目中,导出的表格的要求是复杂多样化的,有各式各样的复杂的导出格式要满足,比如要导出如下的数据:

观察下,这里的导出结果是有合并单元格的了:课程名称和老师名称。

如果从数据结构来看的话,就是1对多的数据结构如何进行表格的导出。

04.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现多Sheet导出 - 第470篇》

在前面的几个小节中,介绍的都是单个Sheet的导出,在实际的项目中,希望导出多个Sheet的数据,实现的效果实际上就是将前面讲到的两个数据表,原先导出的是两个Excel,然后这里导出了一个Excel多个Sheet的方式。

05.《【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇》

注解的导出,规定我们必须把model写好,并且注解写好,每次导出的Excel都是固定的,无法动态控制导出的列,虽然可以通过id来处理一个案例,但是自由度远远不够,本节介绍另外一种导出的方式,自由度十足。

要实现动态导出的列,需要将前面注解的部分,通过代码的方式进行实现,这里使用的是ExcelExportEntity,对于ExcelExportEntity最重要的两个配置,是name和key;其中name是列显示的名称,key是在map中对应的key。

06.《100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇》

大数据导出是当我们的导出数量在几万,到上百万的数据时,一次从数据库查询这么多数据加载到内存然后写入会对我们的内存和CPU都产生压力,这个时候需要我们像分页一样处理导出分段写入Excel缓解Excel的压力。

07.《导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇》

在实际的excel中,会有下拉的一个选项,供用户进行下拉修改下拉的选项。

对于这样的需求如何实现呢?

@Excel加入 addressList 是否生成下拉的选项,默认false

目前下拉只支持replace和dict两个取值地方生成。

08.《数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇》

数据脱敏分为两种方法,一种是简单的,在注解或者ExcelExportEntity设置属性既可以,规则如下:

(1)规则1:采用保留头和尾的方式,中间数据加星号

如:身份证6_4 则保留 370101********1234

手机号3_4 则保留 131****1234

(2)规则2:采用确定隐藏字段的进行隐藏,优先保留头

如:姓名1,3 表示最大隐藏3位,最小一位

09.《模板文件导出Excel【EasyPoi实战系列】- 第478篇》

模板是处理复杂Excel的简单方法,复杂的Excel样式,可以用Excel直接编辑,完美的避开了代码编写样式的雷区,同时指令的支持,也提了模板的有效性。

10.《Excel的Html预览和html转Excel【EasyPoi实战系列】》

当你要导出一个比较复杂的Excel的时候,无论是使用模板还是注解都是比较难实现的,这个时候,我们应该怎么办呢?

要导出一个比较复杂的Excel,无论用模板还是注解都比较难实现,这里就可以使用到html转Excel,使用方法如下:

自己搞个html,然后用模板引擎,beetl,freemark等生成html,然后调用easypoi提供的方法转换成Excel,因为html的标签以及规则大家比Excel要熟悉的多,更容易编写复杂的table,然后easypoi转换成Excel再导出,麻烦了点,但是可以处理一些特定的情况,也同样生成两个版本的Excel都支持

11.《导入Excel数据【EasyPoi实战系列】》

看下导入整体要解决的问题:

(1)在SpringBoot中如何接收文件流:

使用MultipartFile就可以接收到前端传送到后端的文件流。

(2)如何读取Exel文件流,并且解析每一行的数据:

使用EasyPoi提供的类ExcelImportUtil的importExcel(InputStream inputstream, Class<?> pojoClass, ImportParams params)。

(3)实体类和Excel表格的单元格是如何对应的:

只需要在实体类上添加注解@Excel(name = "姓名")。

3.4 AI相关

AI部分就是ChatGPT和Midjourney的基本使用了。

1分钟快速制作思维导图「ChatGPT+XMind」—— 跟上时代的脚步,这辈子就起飞了 - 第5篇

用Midjourney画个美女,AI绘画也太强大了!!!- 第8篇

文心一言PK ChatGPT,二者究竟谁更胜一筹 - 第7篇

用Midjourney画个美女,AI绘画也太强大了!!!- 第8篇

推荐一款idea神级代码插件【Bito-ChatGPT】而且免费!- 第9篇

66个ChatGPT副业赚钱技巧 - 第3篇

ChatGPT+剪映·副业赚钱技巧实战教程·《制作阿凡达解说视频》- 第4篇

3.5 Spring Boot相关

Idea启动多个SpringBoot项目的3种方案

SpringBoot版的低代码开发平台,关联无 SQL - 第462篇

SpringBoot项目打成jar后加载外部配置文件 - 第463篇

SpringBoot版的低代码开发平台,关联无 SQL - 第462篇

SpringBoot项目打成jar后加载外部配置文件 - 第463篇

线上环境无法读取classpath下的txt文件?- 第464篇

为什么ClassPathResource可以读取到流?- 第465篇

SpringBoot配置文件拆分 - 第466篇

转眼马上要过年了,最后祝大家龙年新年快乐,祝新的年一帆风顺,二龙腾飞,三羊开泰,四季平安,五福临门,六六大顺,七星高照,八方来财,九九同心,十全十美。

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟纤学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1431923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬虫5

1.selenium交互 无页面浏览器速度更快 #配置好的自己不用管 from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options Options()chrome_options.add_argument(‐‐headless)chrome_options.add_argument(‐‐disable‐gpu)# path…

编程效率的跃升之路

编程是一门需要大量的时间和精力投入的技能&#xff0c;提高编程效率则是一个需要不断学习和实践的过程。结合笔者写bug多年的经验&#xff0c;一些学习建议和资源和大家share下。 一、编程如何提效&#xff1a; 熟悉开发工具&#xff1a;掌握常用的开发工具&#xff0c;如集…

flutter抓包绕过

lutter的证书校验 起因&#xff1a; 最近工作上让做个app的复测&#xff0c;把apk发我后&#xff0c;开始尝试挂代理抓包&#xff0c;结果发现抓不到 为是证书没弄好&#xff0c;想着前几天不是刚导入了吗&#xff08;雾&#xff09;。又重新导入了下还是不行。然后各种lsp模…

OJ_找位置

题干 代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> #include<algorithm> #include<map> using namespace std;int main() {char str[200] { 0 };scanf("%s", str);map<char, vector<int>> times…

ROS入门之通信机制及常用API

文章目录 前言一、话题通信1.话题通信理论2.话题通信常用API&#x1f357;发布者advertisepublish &#x1f356;订阅者subscribe 3.自定义msg 二、服务通信1.服务通信理论2.服务通信常用API&#x1f386;服务端advertiseService &#x1f387;客户端serviceClientros::service…

[大厂实践] Pinterest通用计算平台实践

Pinterest平台团队开发实现了名为PinCompute的高性能通用计算平台&#xff0c;支持Pinterest的大量异构用例和服务。本文介绍了团队在开发这一平台过程中的经验和实践&#xff0c;对于其他平台团队来说&#xff0c;具有很好的参考意义。原文: PinCompute: A Kubernetes Backed …

RabbitMQ面试必备:基本概念、组件原理、消息传递模型,一网打尽。解密高可用性、负载均衡,深入了解安全性配置和性能优化

一、RabbitMQ的基本概念&#xff1a; 1.什么是消息队列&#xff1f; 消息队列是一种在分布式系统中用于在不同组件之间传递消息的通信机制。它允许应用程序和服务通过异步方式进行通信&#xff0c;提高了系统的可伸缩性和松耦合性。消息队列通常包括生产者&#xff08;Produc…

node-sass版本与NodeJS版本不匹配的问题

npm install 报错如下 npm ERR! code 1 npm ERR! path D:\Project\git_Product\YYYY\user\node_modules\node-sass npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node scripts/build.js 问题原因 node-sass 与 node 版本不匹配 卸载Node…

PM圆桌派:同事不愿意告诉你的职场套路有哪些?

职场是社会的缩影&#xff0c;想要崭露头角&#xff0c;获得更多升职加薪的机会&#xff0c;就不要做着和多数人一样的事情&#xff0c;却期待着不一样的结果。 职场上有很多潜在的规则&#xff0c;要会做事&#xff0c;也要会说话&#xff0c;更要会做人。如果不懂规则&#…

day43_jdbc

今日内容 0 复习昨日 1 SQL注入问题 2 PreparedStatement 3 完成CRUD练习 4 ORM 5 DBUtil (properties) 6 事务操作 0 复习昨日 已经找人提问… 1 SQL注入 1.1 什么是SQL注入 用户输入的数据中有SQL关键词,导致在执行SQL语句时出现一些不正常的情况.这就是SQL注入! 出现SQL注入…

springcloud-gateway升级版本allowedOrigins要改allowedOriginPatterns

前言 报错: java.lang.IllegalArgumentException: When allowCredentials is true,allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin"response header. To allow credentials to a se…

AI大模型专题:OWASP大语言模型应用程序十大风险V1.0

今天分享的是AI大模型系列深度研究报告&#xff1a;《AI大模型专题&#xff1a;OWASP大语言模型应用程序十大风险V1.0》。 &#xff08;报告出品方&#xff1a;OWASP&#xff09; 报告共计&#xff1a;14页 LM01:2023_ 提示词注入 描述&#xff1a;提示词注入包括绕过过滤器…

【Linux】解决:为什么重复创建同一个【进程pid会变化,而ppid父进程id不变?】

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Java八大常用排序算法

1冒泡排序 对于冒泡排序相信我们都比较熟悉了&#xff0c;其核心思想就是相邻元素两两比较&#xff0c;把较大的元素放到后面&#xff0c;在一轮比较完成之后&#xff0c;最大的元素就位于最后一个位置了&#xff0c;就好像是气泡&#xff0c;慢慢的浮出了水面一样 Jave 实现 …

解决IntellIJ Idea内存不足

突然有一天我在IDEA打开两个项目时&#xff0c;发生了报错&#xff0c;说我内存不足&#xff0c;我这电脑内存16G怎么会内存不足。下面是我的解决方案。 IntelliJ IDEA 报告内存不足的原因通常与以下几个因素有关&#xff1a; 项目规模较大&#xff1a;如果您正在开发的项目非…

Linux 配置路由转发功能测试

测试Linux配置路由转发功能。 参考 手把手带你将 Linux 主机配置为静态路由器tcpdump详解&实战 环境 操作系统 Centos7.9 网络环境 1. 三台主机的网卡 enp0s5 均在 10.211.55.0/24 网段&#xff0c;且网络可以通讯 centos7-18的IP 10.211.55.18&#xff0c;作为路由…

【退役之重学前端】vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…

一次enq: TM - contention分析

客户反映前台业务卡住了&#xff0c;怀疑是有锁表&#xff0c;锁表时查询等待事件是enq: TM - contention&#xff0c;因为是业务高峰期&#xff0c;所以直接把锁杀掉了&#xff0c;事后想要查一下锁表原因。 客户数据库环境是11g rac&#xff0c;我采集了锁表时间段两节点的a…

C++拷贝构造函数、赋值运算符重载

1.拷贝构造函数 拷贝构造函数的写法如图所示 调用方式如下 接下来我来说说它的特征 1.1特征 拷贝构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c;在用已存在的类类型对象创建新对象时由编译器自动调用。 拷贝构造函…

算法学习——华为机考题库9(HJ56 - HJ63)

算法学习——华为机考题库9&#xff08;HJ56 - HJ63&#xff09; HJ56 完全数计算 描述 完全数&#xff08;Perfect number&#xff09;&#xff0c;又称完美数或完备数&#xff0c;是一些特殊的自然数。 它所有的真因子&#xff08;即除了自身以外的约数&#xff09;的和&…