当前位置: 首页 > news >正文

【JavaEE】Maven配置

一、Maven简介

什么是Maven?

Maven是一个基于项目对象模型(POM)构建的自动化工具,主要用于Java项目构建、依赖管理和项目信息管理

我理解的Maven:自动下载和管理“代码零件”(比如别人写好的工具包)。其实就是把别人写好的工具包拿过来自己使用,会比较方便

核心优势

·标准化构建:通过pox.xml定义项目结构、依赖和构建流程

·依赖管理:自动下载和管理项目依赖(JAR包)

·多模块支持:轻松管理多模块项目

·插件机制:通过插件扩展功能(如编译、打包、测试)

二、创建Maven项目

社区版创建

我们这里以IDEA2021.3.2版本为例

1.新建项目

File->New->Project->Maven,勾选Create from archetype(可选),然后点击Next

注意:前提是项目SDK已正确配置(如JDK17或更高版本)

2.配置坐标

填写GroupId(组织标识)、ArtifactId(项目名)、Version(版本号)、Name(项目名)、Location(项目路径)

然后点击Finish即可创建成功

专业版创建

我们这里以IDEA2021.1版本为例

专业版与社区版在Maven项目创建上流程一致,但专业版支持更多框架集成(如Spring Boot),可直接选择框架模板生成项目。(我们后续在讲解Spring Boot时,就是使用的专业版)

三、Maven核心功能

接下来,我们结合项目,介绍Maven在项目开发中的作用

项目构建

Maven提供了标准的,跨平台(Linux、Windows、MacOS等)的自动化项目构建方式

当我们开发了一个项目之后,代码需要经过编译、测试、打包、发布等流程。每次代码的修改,都需要经过这些流程,如果代码反复调试修改,这个流程就需要反复进行,就显得特别麻烦,而Maven给我们提供了一套简单的命令来完成项目的构建

Maven通过生命周期阶段(Lifecycle Phases)构建项目,常用命令:

·clean :清除target目录

·compile:编译源码

·test:运行单元测试

·package:打包项目(如JAR/WAR)

·install:安装到本地仓库

比如,点击package,就可以完成项目的打包操作

我们之前学习过一个java代码要经过以下过程,才能保证“Write once,Run anywhere”

打包就是把所有的class文件,全部放在一起,打成jar包或者war包

jar包和war包都是一种压缩文件

jar包就是把开发人员已经写好的一些代码进行打包。打好的jar包就可以引入到其他项目中,也可以直接使用这些jar包中的类和属性。另外也可以打成可执行jar包,这样的包就可以通过java -jar命令来执行

war包可以理解为是一个web项目,里面是项目的所有东西,通常用于网站

依赖管理

上面说到,Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包

获取的jar包,其实就是依赖

pom.xml就是maven的配置文件,用以描述项目的各种信息

依赖配置

依赖:指当前项目运行所需要的jar包

比如前面学习JDBC时,我们需要手动下载mysql-connector-java的包,并且添加到项目中

如果使用Maven,我们只需要在pom.xml中引入mysql-connector-java的依赖就可以了

<dependencies><!--里面放置项目的依赖坐标,可以为多个-->
</dependencies>

1.在pom文件<dependencies>标签内,添加依赖坐标

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>4   <version>8.0.30</version>
</dependency>

2.点击刷新按钮,引入新加入的依赖jar包

后续有添加新的jar包,或者修改jar包版本,都需要通过该方式在项目中添加依赖

3.刷新完之后,就可以在项目中看到新加入的jar包了

依赖传递

定义:Maven会自动解析依赖的依赖(传递性依赖)。例如,引入spring-boot-starter-web会自动引入其依赖的Tomcat、Spring MVC等

早期我们没有使用maven时,向项目中添加依赖的jar包,需要把所有的jar包都复制到项目工程下。比如A依赖B,B依赖C,那么A项目引入B的同时,也需要引入C,如果我们手动管理这个依赖,这个过程就会比较麻烦,我们需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的

比如我们要吃火锅,需要有锅,有调料,有食材,以及确认什么样的锅,什么样的食材

比如去医院看病,需要带上以往的病历,检查结果,处方等,并且要确认带的资料是正确的,如果日期错了,或者患者错了,带少了,就需要回去重新拿

但使用maven的话,就可以避免管理所需依赖的关系。我们只需要在pox文件中,定义直接依赖就可以了,由于maven的依赖具有传递性,所以会自动把所依赖的其他jar包也一起导入

比如吃火锅,现在我们可以点一个海底捞外卖,直接就把所有食材都送过来了,包括什么锅,配什么菜。

比如去医院看病,借助“互联网”,实现了信息共享,只需要带上身份证,以往的病历和检查结果就可以都看到了

如上图,项目A通过Maven引入JarA时,会自动引入Jar B和Jar C

Jar A和项目B就是项目A的直接依赖

Jar B和Jar C是项目A的间接依赖

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

依赖排除

定义:指主动断开依赖的资源(被排除的资源无需指定版本)

比如,我下了一个快递单子,默认会有一个服务,就是快递小哥会上门取件,但是我刚好要出门,而且顺路经过站点,也可以选择自己送过去

当前阶段我们需要依赖的库并不多,但随着项目越来越复杂,库之间的依赖关系也会变得越来越复杂

如上图中,如果项目A不需要JarB,也可以通过排除依赖的方式来实现

通过<exclusions>排除特定传递性依赖:

xml
<dependency><groupId>com.example</groupId><artifactId>example-lib</artifactId><version>1.0</version><!--排除依赖--><exclusions><exclusion><groupId>unwanted-group</groupId><artifactId>unwanted-artifact</artifactId></exclusion></exclusions>
</dependency>

maven还有一些功能是依赖调解,可选依赖等

依赖调解:

当项目中的依赖存在依赖冲突时,例如:存在这样的依赖:

A->B->C->X(1.0)

A->D->X(2.0)

Maven会采用最短路径优先的原则去选择依赖,这里2的依赖路径更短,所以会选择X(2.0),当然我们也可以选择指定某个依赖的版本

四、Maven Help插件

当项目比较复杂时,我们就有jar包冲突的问题,这时候就需要去解决依赖冲突。解决冲突之前,需要先找到冲突,我们可以使用Maven Help插件来观察包和包之间的依赖关系

理解“插件”(plugin)

像IDEA这样的程序虽然功能强大,但是也无法做到面面俱到。对于一些特定场景的功能,开发者就可以开发一些“插件”。如果需要这个插件,就单独安装

插件就是对程序的一些特定场景,做出一些特定的功能的扩展

安装插件

File->Settings->Plugins->搜索“Maven Help”->找到对应插件,点击 Install安装即可,安装后需要重启下 idea,才能生效

安装之后,打开pom文件,就可以看到Jar包之间的依赖关系

也可以右键排除掉一些依赖。右键后选择Exclude即可

五、Maven仓库

我们通过短短几行代码,就把依赖jar包放在了项目里,具体是如何做的呢?

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>4   <version>8.0.30</version>
</dependency>

这个代码,我们称之为“坐标”,也就是唯一的

在Maven中,根据groupId(组织标识)、artifactId(项目名)、version(版本)的配置,来唯一识别一个jar包,缺一不可。

还记得不:我们在创建Maven项目时,就是用这三个参数配置坐标的

当我们在pom文件中配置完依赖之后,点击刷新,Maven会根据坐标(<dependency>)的配置,去仓库里寻找Jar包,并把她下载下来,添加到项目中。这个Jar包下载的地方就成为仓库

仓库:用于存储资源,管理各种Jar包

Maven仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(jar包、插件等)

Maven仓库分为两大类:本地仓库和远程仓库。其中远程仓库又分为中央仓库,私服和其他公共库

本地仓库

定义:自己计算机上的一个目录(用来存储jar包)

当项目中引入对应依赖的jar包后,首先会查找本地仓库中是否有对应的jar包

·如果有,则在项目中直接引用

·如果没有,则去中央仓库中下载对应的jar包到本地仓库

本地仓库地址可以通过Maven配置查看:

File->Settings->搜索maven->Local reposi的地址即为本地仓库

查看该仓库目录,可以看到该目录下有很多的jar(最开始是空的,随着Maven的使用,该仓库下文件会越来越多)

中央仓库

定义:Maven软件中内置一个远程仓库地址,就是中央仓库,服务于整个互联网。由Maven团队维护,全球唯一

仓库地址https://repo1.maven.org/maven2/

我们可以看到仓库里的jar包,但是并不方便使用。

我们可以通过https://mvnrepository.com 这个网站来查询并下载

我们可以把自己写好的Jar包上传到中央仓库(具备一定的要求),也可以从中央仓库下载Jar包

查找Jar的坐标

1.访问https://mvnrepository.com

2.进行查找,比如mysql

3.选择要添加的Jar包版本

4.查看Jar包对应坐标

我们只需要复制后,到pom文件下,粘贴即可

私有服务器(私服)

私服:一般由公司团队搭建的私有仓库

私服属于某个公司,或者某个部门,往往需要一定权限

有了私服之后,Maven依赖下载的顺序又发生了变化

当Maven需要下载资源的时候

1.先从本地仓库获取,本地仓库存在,则直接返回

2.如果本地仓库没有,就从私服请求,私服存在该资源,就直接返回

3.如果私服上不存在该资源,则从中央仓库下载,中央仓库不存在,就报错了

4.如果中央仓库中存在,就先缓存在私服上之后,再缓存到本地仓库里,再为Maven的下载请求提供服务

私服是很多人在使用的,所以只需要第一个使用者下载一次就可以了

Maven设置国内源

因为中央仓库在国外,所以下载起来会比较慢,所以咱们选择借助国内一些公开的远程仓库来下载资源

接下来介绍,如何设置国内源

配置当前项目Settings

File->Settings->搜索maven->找到User setting file

1.查看配置文件的地址,如上图所示,Maven配置文件地址为:D:\Maven\.m2\settings.xml

不同电脑设置的Maven路径不同

User settings file和Local repository可以修改设置为其他路径,但两个路径中不要有中文

2.配置国内源

Maven仓库默认在国外 https://mvnrepository.com/  ,国内使用时会比较慢,我们可以更换为阿里云的仓库,当然也可以选择别的仓库,我们这里参考:Maven 镜像地址大全 - 知乎

打开settings.xml(上述配置文件的地址),在mirrors节点上,添加内容如下:

settings.xml内的字符很多,我们下滑找到<!--mirrors  ,然后把从 Maven 镜像地址大全 - 知乎 中复制的阿里云镜像地址添加到<!--mirrors 中即可

设置新项目的setting

上述配置的内容,只对当前项目生效,为了让后续新建的项目也生效,需要重新设置一下新项目的Settings

只需要保证:当前项目和新项目共用一个settings文件即可,所以新项目的设置,只需要确认一下settings文件的路径即可

步骤:File->New Projects Setup->Settings for New Projects

只需要新项目的User settings file和Local repository如下即可:

相关文章:

【JavaEE】Maven配置

一、Maven简介 什么是Maven&#xff1f; Maven是一个基于项目对象模型&#xff08;POM&#xff09;构建的自动化工具&#xff0c;主要用于Java项目构建、依赖管理和项目信息管理 我理解的Maven&#xff1a;自动下载和管理“代码零件”&#xff08;比如别人写好的工具包&#x…...

Java排序算法百科全书:原理、实现与实战指南

一、排序算法全景视图 1. 算法分类体系 graph TDA[排序算法] --> B[比较排序]A --> C[非比较排序]B --> B1[基本排序]B1 --> B11[冒泡排序]B1 --> B12[选择排序]B1 --> B13[插入排序]B --> B2[高效排序]B2 --> B21[快速排序]B2 --> B22[归并排序]…...

大模型在教育领域的五大应用

大模型在教育领域的五大应用 随着人工智能技术的迅猛发展&#xff0c;特别是大模型&#xff08;如GPT-3、BERT等&#xff09;的出现&#xff0c;教育领域正迎来一场前所未有的变革。大模型不仅能够处理复杂的自然语言任务&#xff0c;还能够通过深度学习算法理解和生成高质量的…...

Lesson 12 Goodbye and good luck

Lesson 12 Goodbye and good luck 词汇 luck n. 运气&#xff0c;幸运 相关&#xff1a;lucky a. 幸运的    luckily ad. 幸运地    unlucky a. 不幸的 搭配&#xff1a;lucky number 幸运数字    lucky color 幸运色    lucky day 幸运日    lucky dog 幸运儿…...

数据结构-前缀树

一、引言 前缀树又叫字典树&#xff0c;可以快速查找字符串或字符串前缀出现的次数&#xff0c;方便进行前缀匹配、词频统计 二、字典树模型 现有一个字典树&#xff0c;里面有money、mother、salary、salary、say五个单词 其中根节点位置还没有字符&#xff0c;相当于空串&am…...

搭建 vue 项目环境详细步骤

在平常的开发工作中&#xff0c;我们经常需要对项目进行打包&#xff0c;后端项目打包及部署在前面总结过。那么&#xff0c;现在前端基本都是 vue 项目&#xff0c;那么应该如何搭建一个 vue 环境呢&#xff1f;下载一个前端项目应该如何启动呢&#xff1f;今天&#xff0c;我…...

【2025最新版】火鸟门户v8.5系统源码+PC、H5、小程序 +数据化大屏插件

一.介绍 火鸟地方门户系统V8.5源码 系统包含4端&#xff1a; PCH5小程序APP 二.搭建环境 系统环境&#xff1a;CentOS、 运行环境&#xff1a;宝塔 Linux 网站环境&#xff1a;Nginx 1.2.22 MySQL 5.6 PHP-7.4 常见插件&#xff1a;fileinfo &#xff1b; redis 三.测…...

【eNSP实验】OSPF单区域配置

简介 OSPF&#xff08;开放最短路径优先&#xff09;是一种基于链路状态算法的内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于自治系统内部动态路由。其核心机制为&#xff1a;各路由器通过泛洪链路状态通告&#xff08;LSA&#xff09;同步网络拓扑&#xff0c;构…...

e实例性能测评:Intel Xeon Platinum处理器,经济型入门级服务器

阿里云服务器ECS经济型e系列是阿里云面向个人开发者、学生、小微企业&#xff0c;在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器&#xff0c;阿里云百科分享CPU处理器采用Intel Xeon Platinum架构处理器&#xff0c;支持1:1、1:2、1:4多种处理器内存配…...

uniapp APP端 DOM生成图片保存到相册

<template> <view class"container" style"padding-bottom: 30rpx;"> <view class"hdbg pr w100 " style"height: 150rpx;"> <top-bar content分享 Back"Back"></top-b…...

Leetcode刷题 由浅入深之哈希表——242. 有效的字母异位词

目录 &#xff08;一&#xff09;字母异位词的C实现 写法一&#xff08;辅助数组&#xff09; &#xff08;二&#xff09;复杂度分析 时间复杂度 空间复杂度 &#xff08;三&#xff09;总结 【题目链接】242.有效的字母异位词 - 力扣&#xff08;LeetCode&#xff09; …...

Opencv函数及练习题

一、函数整理&#xff1a; 1、cv2.adaptiveThreshold&#xff08;&#xff09; 2、 cv2.split&#xff08;&#xff09; 3、cv2.merge&#xff08;&#xff09; 4、cv2.add&#xff08;&#xff09; 5、cv2.bitwise_and&#xff08;&#xff09; 6、 cv2.inRange&#xff08;&…...

16-算法打卡-哈希表-两个数组的交集-leetcode(349)-第十六天

1 题目地址 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09;349. 两个数组的交集 - 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a;输入&#xff1a;nu…...

计算机视觉——JPEG AI 标准发布了图像压缩新突破与数字图像取证的挑战及应对策略

概述 今年2月&#xff0c;经过多年旨在利用机器学习技术开发一种更小、更易于传输和存储且不损失感知质量的图像编解码器的研究后&#xff0c;JPEG AI国际标准正式发布。 来自JPEG AI官方发布流&#xff0c;峰值信噪比&#xff08;PSNR&#xff09;与JPEG AI的机器学习增强方法…...

【JavaWeb后端开发01】Maven入门

课程内容&#xff1a; 初始Maven Maven概述 Maven模型 Maven仓库介绍 Maven安装与配置 IDEA集成Maven 依赖管理 单元测试 文章目录 1. 初始Maven1.1 介绍1.2 Maven的作用1.2.1 依赖管理1.2.2 项目构建1.2.3 统一项目结构 2. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Ma…...

【Leetcode】16. 最接近的三数之和

一、题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums = [-1,2,1,-4], target = 1 输出:2解释: 与 target 最接近…...

目标检测概述

为什么基于卷积网络的目标检测模型在预测后要使用非极大值抑制 基于卷积网络的目标检测模型可能会在目标的相邻区域生成多个相互重叠框&#xff0c;每个框的预测结果都是同一个目标&#xff0c;引起同一目标的重复检测。造成这一现象的原因主要有两个&#xff0c; 基于卷积网络…...

摄影跟拍预定|基于java+vue的摄影跟拍预定管理系统(源码+数据库+文档)

摄影跟拍预定管理系统 目录 基于SprinBootvue的摄影跟拍预定管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3摄影师功能模块 4用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…...

--图--

并查集 并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述…...

Python中的count()方法

文章目录 Python中的count()方法基本语法在不同数据类型中的使用1. 列表(List)中的count()2. 元组(Tuple)中的count()3. 字符串(String)中的count() 高级用法1. 指定搜索范围2. 统计复杂元素 注意事项 Python中的count()方法 前言&#xff1a;count()是Python中用于序列类型&a…...

通过gird布局实现div的响应式分布排列

目标&#xff1a;实现对于固定宽度的div盒子在页面中自适应排布&#xff0c;并且最后一行的div盒子可以与前面的盒子对齐。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" con…...

Edge 浏览器推出 Copilot Vision:免费实时解析屏幕内容;Aqua Voice:极速 AI 语音输入工具丨日报

开发者朋友们大家好 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看…...

Linux 防火墙( iptables )

目录 一、 Linux 防火墙基础 1. 防火墙基础概念 &#xff08;1&#xff09;防火墙的概述与作用 &#xff08;2&#xff09;防火墙的结构与匹配流程 &#xff08;3&#xff09;防火墙的类别与各个防火墙的区别 2. iptables 的表、链结构 &#xff08;1&#xff09;规则表 …...

Hook插件

hook插件 1.概念 在JavaScript中&#xff0c;hook是一种能够拦截和修改函数或方法行为的技术。通过使用hook&#xff0c;开发者可以在现有的函数执行前、执行后或者替换函数的实现逻辑。hook目的是找到函数入口以及一些参数变化&#xff0c;便于分析js逻辑。 2.hook的作用&a…...

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],

因客户机房断电&#xff0c;2台主机和共享存储全部断电&#xff0c;来电后&#xff0c;集群启动正常&#xff0c;实例无法正常启动&#xff0c;手动启动报错如下 SQL > startup; ORACLE instance started. Total System Global Area 3.9551E10 bytes Fixed Size …...

R4打卡——tensorflow实现火灾预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 1.检查GPU import tensorflow as tf import pandas as pd import numpy as npgpus tf.config.list_physical_devices("GPU") if gpus:…...

基于AI大语言模型的历史文献分析在气候与灾害重建领域中的技术应用

随着人工智能技术的快速发展&#xff0c;大语言模型&#xff08;如GPT、BERT等&#xff09;在自然语言处理领域取得了显著进展&#xff0c;特别是在非结构化文本数据的分析方面&#xff0c;极大地拓展了我们的研究视角。这些技术不仅提高了处理和理解文本数据的效率&#xff0c…...

CSS 字体背景波浪

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>字体背景波浪</title><style>/* HTML: <div class"loader"></div> *//* HTML: <div class"loader"…...

2025能源网络安全大赛CTF --- Crypto wp

文章目录 前言simpleSigninNumberTheory 前言 大半年以来写的第一篇文章&#xff01;&#xff01;&#xff01; simpleSignin 题目&#xff1a; from Crypto.Util.number import * from gmpy2 import * import osflag bxxx p next_prime(bytes_to_long(os.urandom(128))…...

Redis面试——日志

一、RDB&#xff08;Redis DataBase&#xff09; RDB 全程是 Redis DataBase&#xff0c;它是一种将 Redis 在某一时刻内存中的数据以快照形式保存到磁盘的机制 &#xff0c;相当于给执行save/bgsave命令时刻的内存数据库数据拍了一张快照我们如果通过save命令来执行快照&…...

计算机视觉与深度学习 | 基于YOLOv8与光流法的目标检测与跟踪(Python代码)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 目标检测与跟踪 关键实现逻辑检测-跟踪协作机制‌特征点选择策略‌运动…...

nginx-基础知识

目录 相关协议&#xff1a; HTTP协议特点 HTTP协议的原理 HTTP协议的请求方式 HTTP协议的状态码 nginx的功能 nginx缓存 nginx异步非阻塞 nginxI/O多路复用 nginx常用模块以及其功能 相关协议&#xff1a; HTTP协议&#xff0c;超文本传输协议&#xff0c;占用端口80…...

class的访问器成员

class的访问器成员 本质是 class 的语法糖 等价于对象的defineProperty对象里面也能使用 class Product{constructor(count, price){this.count count;this.price price;}get total(){ // 相当于getterreturn this.count * this.price;}}const product new Product(10, 10…...

学习海康VisionMaster之矩形检测

这几天太忙了&#xff0c;好几天没有学习了&#xff0c;今天终于空下来了&#xff0c;继续学习之路吧。 一&#xff1a;进一步学习了 今天学习下VisionMaster中的矩形检测&#xff0c;这个一开始我以为是形态学方面的检测&#xff0c;实际操作下来其实还是边缘直线的衍生应用&…...

【已更新】2025华中杯C题数学建模网络挑战赛思路代码文章教学数学建模思路:就业状态分析与预测

完整内容请看文末最后的推广群 先展示问题一代码和结果、再给出四个问题详细的模型 按性别分析就业与失业状态&#xff1a; employment_status 失业 sex 0 182 1 163 按学历分析就业与失业状态&#xff1a; employment_status 失业 edu_level 0 10 1 172 2 163 按年龄区间分…...

CS144 Lab1实战记录:实现TCP重组器

文章目录 1 实验背景与要求1.1 TCP的数据分片与重组问题1.2 实验具体任务 2 重组器的设计架构2.1 整体架构2.2 数据结构设计 3 重组器处理的关键场景分析3.1 按序到达的子串&#xff08;直接写入&#xff09;3.2 乱序到达的子串&#xff08;需要存储&#xff09;3.3 与已处理区…...

Linux信号三部曲:产生机制、处理方式与内核接口

Linux系列 文章目录 Linux系列前言一、背景知识铺垫1.1 信号的基本概念1.2 进程对信号的处理 二、信号的产生2.1 前台进程和后台进程2.2 键盘组合键2.3 kill 命令2.4 系统调用2.4.1 signal()接口2.4.2 kill()接口2.4.3 raise()接口2.4.4 abort()接口 总结 前言 Linux中&#x…...

对抗生成进化:基于DNA算法的AIGC检测绕过——让AI创作真正“隐形“

一、技术背景与核心思想 2025年&#xff0c;AIGC检测工具&#xff08;如Originality.AI 5.0&#xff09;的识别准确率已达99.3%。本研究提出基于染色体编码的对抗进化框架&#xff08;CAEF&#xff09;&#xff0c;通过模拟生物进化过程动态优化生成模型&#xff0c;成功将检测…...

探索大语言模型(LLM):马尔可夫链——从诗歌分析到人工智能的数学工具

提出背景与灵感起源 马尔可夫链由俄国数学家安德雷马尔可夫于1906年提出&#xff0c;最初是为了挑战当时概率论中“独立性假设”的局限性。他希望通过研究相依变量序列&#xff0c;证明即使随机变量之间存在依赖关系&#xff0c;大数定律和中心极限定理仍然成立。 灵感来源&am…...

深入解析Java Socket服务器实现:从基础到优雅停机

本文将详细解析一个基于Java Socket实现的服务器程序&#xff0c;涵盖线程池管理、心跳检测、优雅停机等关键特性&#xff0c;并最终提供完整代码实现。 1. 架构概述 这个Socket服务器实现具有以下核心特性&#xff1a; 基于Java原生Socket API实现使用线程池处理客户端连接…...

AI+SWAT模型革命性应用!ArcGIS Pro流域水循环/水生态智能模拟实战;SWAT模型下载 安装 运行 建模流程

⚠️您是否面临&#xff1a; 传统水文模型效率低下&#xff1f; 多源空间数据处理耗时&#xff1f; 复杂生态过程难以量化&#xff1f; &#x1f4a1;当SWAT模型遇见"ArcGIS ProAI"&#xff1a; → 传统需要1个月的参数率定缩短至3天 → 多情景分析报告自动生成&a…...

《AI大模型应知应会100篇》第23篇:角色扮演技巧:让AI成为你需要的专家

第23篇&#xff1a;角色扮演技巧&#xff1a;让AI成为你需要的专家 摘要 在当今人工智能快速发展的时代&#xff0c;大模型已经不仅仅是简单的问答工具&#xff0c;它们可以通过角色扮演技巧模拟各类专家身份&#xff0c;从而为用户提供更专业、更有针对性的服务。本文将深入探…...

【17】数据结构之图的遍历篇章

目录标题 图的遍历深度优先遍历 Depth First Search广度优先遍历 Breadth First Search 图的遍历 从图中某一个顶点出发&#xff0c;沿着一些边访遍图中所有的顶点&#xff0c;且使用每个顶点仅被访问一次&#xff0c;这个过程称为图的遍历.Graph Traversal. 其中&#xff0c…...

【gpt生成-其一】以go语言为例,详细描述一下 ​:语法规范​​BNF/EBNF形式化描述

在 Go 语言中通过 EBNF 形式化描述语法规范需要结合语言规范文档的结构&#xff0c;以下是详细实现方法及标准规范示例&#xff1a; 一、Go 语法规范结构&#xff08;基于 Go 1.21 标准&#xff09; ebnf 复制 // 基础元素定义 letter "A" ... "Z&quo…...

深度剖析:GPT-3.5与GPT-4的主要区别及架构解析

随着自然语言处理技术的飞速发展&#xff0c;OpenAI推出的各类语言模型备受瞩目。尤其是GPT-3.5和GPT-4这两个版本之间的差异&#xff0c;成为了技术爱好者、研究人员和企业关注的焦点。在这篇文章中&#xff0c;我们将探讨这两个版本的主要区别以及它们的架构特点&#xff0c;…...

协同推荐算法实现的智能商品推荐系统 - [基于springboot +vue]

&#x1f6cd;️ 智能商品推荐系统 - 基于springboot vue &#x1f680; 项目亮点 欢迎来到未来的购物体验&#xff01;我们的智能商品推荐系统就像您的私人购物顾问&#xff0c;它能读懂您的心思&#xff0c;了解您的喜好&#xff0c;为您精心挑选最适合的商品。想象一下&am…...

【运维学习】lvs + keepalived + 主从dns 项目搭建

需求 主机规划 环境搭建 配置主从dns 主dns 从dns 配置web服务 搭建lvs keepalived 配置master 配置backup 更改dns配置 添加VIP 配置内核参数 更改web配置 添加VIP 配置内核参数 客户端测试 需求 主机规划 主机名IP角色lvs-master192.168.239.105主lvs&#x…...

ESP32-idf学习(二)esp32C3作服务端与电脑蓝牙数据交互

一、当前需求 目前是想利用蓝牙来传输命令&#xff0c;或者一些数据&#xff0c;包括电脑、手机与板子的数据传输&#xff0c;板子与板子之间的数据传输。构思是一个板子是数据接收终端&#xff0c;在电脑或手机下发指令后&#xff0c;再给其他板子相应指令&#xff0c;也需要…...

考道路运输安全员证应具备哪些经验?

考道路运输安全员证&#xff0c;通常没有明确的工作经验年限要求&#xff0c;但具备以下相关经验会对考试有很大帮助&#xff1a; 驾驶经验&#xff1a;报考要求取得相应的机动车驾驶证 1 年以上。有实际驾驶经验&#xff0c;能更好地理解驾驶员的操作规范、疲劳驾驶等问题&…...

ubtuntu安装docker拉取iwebsec镜像

docker安装&#xff1a; --可以在这之前换源&#xff08;非必要&#xff09;没有权限直接加sudo sudo apt-get update ​ sudo apt-get upgrade 安装依赖&#xff1a; sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-re…...