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

JavaEE 的入门

1. 学习JavaEE

        Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开 发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习JavaEE主要是学习Java在 企业中如何应⽤.

        前⾯学习的是Java基础, JavaEE 主要学习Java的应⽤, 也就是学习Java在企业中是如何应⽤ 的 Java更多场景是业务开发, 更狭义点可以理解为web开发. 所以我们的学习也是围绕着如何使⽤Java来 做web开发

1.1 什么是Web开发

        web(World Wide Web)即全球⼴域⽹,也称为万维⽹. 简单来说, 就是可以通过浏览器来和我们的程序进⾏交互.⽐如京东, bilibili等⽹站项⽬.

1.2 Web⽹站的⼯作流程 

        ⽬前用户对PC端应⽤的开发结构模式主要分为C/S和B/S结构.

         CS即Client/Server(客户机/服务器)结构. 常⻅的C/S架构的应⽤⽐如QQ,CCTALK,各种⽹络游戏 等等,⼀般需要安装并且与服务器进⾏⽹络通信的都属于此类。

        BS即Browser/Server(浏览器/服务器)结构.B/S架构全称是浏览器 / 服务器(Browser/Server)结构, 分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构⼀种改进, 由于所有的业 务逻辑都由服务器程序处理, 所以客⼾端仅使⽤浏览器就可以完成所有操作,⼤⼤降低了客⼾端的维护 成本

        下图是两个结构的比较:

        我们以后学习的JavaEE项⽬都是基于 B/S架构的. 下图将简单说明一下b/s结构下,数据在浏览器显示,服务器程序,数据库三方之间的调动情况;

1. 通过浏览器访问前端程序. 前端程序返回前端代码.

2. 前端程序调⽤后端程序, 进⾏数据的获取(也可能由浏览器进⾏访问)

3. 后端返回数据后, 前端根据后端返回的数据进⾏⻚⾯渲染, 显示页面;

1.3 了解框架

        在JavaEE课程中, 我们主要是对各种框架的学习, 以及如何把这些框架应⽤在企业中, 来实现⼀些web开 发.

        随着技术的发展, 无论是后端开发还是前端开发, 开发的时候都很少使⽤原⽣的代码,⽐如:JDBC、JS 等. 取⽽代之的是各种开发框架. 如:后端框架:Spring, SpringBoot, Mybatis等,前端常⽤的框架: Vue、Node等.;

        所谓框架,在计算机领 域, 可以看做是为应⽤开发者定制的应⽤骨架.通俗的来讲: 框架是实现某种功能的半成品, 他提供了⼀些常⽤的⼯具类, 我们在框架的基础上, 可以更 加⾼效的进⾏开发. 也就是⼀些程序员把之前你需要写的, ⼀些复杂的功能写好了, 并且封装了起来, 放在那⾥, 你只需要调 ⽤他提供的接⼝就可以实现⼀些之前你需要花费很⼤精力才能实现的功能

        Java EE 共涉及4个框架的学习: Spring, Spring Boot, Spring MVC,Mybatis 其中Spring, SpringBoot, Spring MVC 可以看做是⼀家⼈, 属于Spring 家族的产品. Mybatis 是⼀个持久层框架, 主要是⽤来帮助我们更好的操作数据库.

2. Maven项目的管理和创建

        学习这一部分前要先检查IDEA版本,社区办要求 2021.1~2022.1.4,专业版则无要求。

        上图显示idea为专业版;

        所谓maven,是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通 过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件

        即: Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包

        q:为什么要学Maven?

        a:简单、方便,能提高我们的开发效率,减少我们的开发BUG。

        Maven提供的功能非常多,下面的体现主要是以下两个方面:1、项目构建     2、管理依赖

2.1 创建一个maven项目

        IDEA本⾝已经集成了Maven, 我们可以直接使⽤, ⽆需安装

        以下截图的idea版本为: 2022.2.4, 不同版本的idea界⾯展⽰会有所不同

        步骤如下:File -> New -> Project

        点击create,就创建好了一个Maven项目,还会自动生成一个pom.xml文件,如图:

2.2 Maven 核心功能 

2.2.1 项⽬构建

        Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式

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

        右侧maven命令:
       

        点击package,进行打包,就可以完成项⽬的打包操作,打包成功如图所示:

        

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

q&a:

        q:jar包和war的使用区别?

        a:jar包和war包都是⼀种压缩⽂件

        1、jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直 接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执 ⾏

        2、war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西, 通常⽤于⽹站

2.2.2 依赖管理

        Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包 获取的jar包, 其实就是依赖. pom.xml 就是maven 的配置⽂件,⽤以描述项⽬的各种信息

2.2.2.1 依赖说明

        依赖: 指当前项⽬运⾏所需要的jar包,我们之前学习JDBC时, 我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中.

        我们当前创建并使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了

2.2.2.2 添加依赖

        1、在pom.xml文件李里面找到下图部分:

<properties><!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</properties>

         <dependencies>标签是.xml文件的,格式有点像html的标签;依赖可以理解为就是经纬度,给你经纬度,你就可以在找到相应的目标位置。 

        2、 在pom.xml文件内写入下面代码

        3、点击刷新按钮, 引⼊新加⼊的依赖jar包(后续有添加新的 jar包,或者修改 jar包 版本,都需要通过上述方式在项目中添加依赖)

刷新按钮的点击,有下面两种方式:

        1、每次修改完依赖之后就会出现在页面的右上角,如下所示:

        2、在maven指令界面:

         添加成功如下所示:

2.2.2.3 查看所添加的依赖

        刷新完成后,在左边这里的目录下就有对应的jar包了

        

2.2.3 依赖传递

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

        但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以 了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊,如下图分析:

        

如上图, 项⽬A 通过Maven 引⼊ Jar A 时, 会⾃动引⼊ Jar B 和Jar C.

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

        Jar B, Jar C是间接依赖. 

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

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

2.2.4 依赖排除 

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

        当前阶段我们需要依赖的库并不多,但随着项目的越来越来复杂,库之间的依赖关系也会变得越来越复杂。像上面图中,如果项目A不需要 Jar B,也可以通过排除依赖的方式来实现。

        pom.xml文件配置如下:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version><!--排除依赖--><exclusions><exclusion><artifactId>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions>
</dependency>

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

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

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

        A->D->X(2.0)

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

 2.3 Maven Help插件

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

        像 IDEA 这样的程序虽然功能强⼤, 但是也⽆法⾯⾯俱到. 对于⼀些特殊场景的功能, 开发者就可以开 发⼀些 "插件". 如果需要这个插件, 就单独安装. 插件就是对程序的⼀些特定场景, 做出⼀些特定的功能的扩展

        安装插件过程:File -> Setting -> Plugins -> 搜索 “Maven Help” -> 找到对应插件,点击 Install 安装即可,按照后要重启 IDEA,才能生效。如下图:

        点击 Restart IDE,重启IDEA。

        安装完后,打开 pom.xml 文件,就可以看到 Jar包 之间的依赖关系,如图:

 

         也可以右键排除掉一些依赖,如图: 

3. Maven 仓库

3.1 仓库的介绍

        下面几行代码, 就把依赖jar包放在了项⽬⾥, 具体是如何做的呢?

    <dependencies><!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version></dependency></dependencies>

        这个代码, 我们称之为 "坐标", 也就是唯⼀的.

        在Maven中, 根据 groupId、artifactId、version 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可. 当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他 下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库

        仓库:⽤于存储资源,管理各种jar包

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

 

Maven仓库分为两⼤类: 本地仓库和远程仓库. 其中远程仓库⼜分为中央仓库, 私服 和其他公共库

3.1.1 本地仓库

        本地仓库自己计算机上的一个目录(用来存储 jar包)

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

         1、如果有,则在项目中直接引用。

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

项目中引入的依赖寻找本地仓库中的jar包的路线,如下图所示:

        本地仓库地址可以通过 Maven 配置查看:File -> Settings,如图:

User settings file:Maven的配置文件。

Local repository:Maven的本地仓库地址。

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

3.1.2 中央仓库

        中央仓库:Maven 软件中内置一个远程仓库地址,也就是中央仓库的地址,服务于整个互联网。由 Maven 团队维护,这是全球唯一的。我们也可以把自己写好的 Jar包 上传到中央仓库(需具备一定的要求),也可以从中央仓库下载 Jar包。

仓库地址:Central Repository:

查询Jar包在仓库的坐标(位置):https://mvnrepository.com/

        如何查找 Jar 的坐标?

        1、访问  https://mvnrepository.com/  。

        2、进行查找,比如要找的是 MySQL。

        3、选择要添加的 jar包 版本

         4、查看 jar包 对应的坐标

        

         框出来的文本就是jar包对应的坐标,复制框出来的文本,粘贴进 IDEA 的 pom.xml 文件中。

 3.1.2 私有服务器

        私有服务器,简称为:私服,一般由公司团队搭建的私有仓库。私服属于某个公司,或者某个部门,往往需要一定权限;

        当有了私服之后,Maven依赖下载顺序就会发生变化,如图:

 当 pom.xml 写入一个依赖时,是先到本地仓库查找

1、如果本地仓库有,就直接从本地仓库拿。

2、如果本地仓库没有,就到私服中查找,私服中有,就从私服上下载这个依赖到本地仓库中。

3、如果私服没有,就会在中央仓库上查找,中央仓库有,私服就会从中央仓库中下载下来,然后再传给本地仓库。

4、如果中央仓库没有,也会从中央仓库下载,但中央仓库没有这个资源,就会报异常。

        私服是很多⼈在使⽤的, 所以只需要第⼀个使⽤者下载⼀次就可以了 

3.2  Maven 设置国内源

        因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源 ,接下来介绍, 如何设置国内源

3.2.1 配置当前项⽬setting

        步骤如上;File -> Settings

        1、查看配置⽂件的地址, 如上图所⽰, Maven配置⽂件地址为: E:\Maven\.m2\settings.xml, 不同电脑设置的Maven路径不同 ,settings和repository 可以修改设置为其他路径, 两个路径不要有中⽂

        2. 配置国内源

        Maven 仓库默认在国外https://mvnrepository.com/, 国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库 ;

        也可以选择别的仓库, 参考: Maven 镜像地址⼤全https://zhuanlan.zhihu.com/p/627320558

        打开settings.xml, 在 mirrors 节点上,添加内容如下下面内容是我的setting.xml文件中的配置:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><mirrors><!-- mirror| Specifies a repository mirror site to use instead of a given repository. The repository that| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.|<mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://my.repository.com/repo/path</url></mirror>--><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>uk</id><mirrorOf>central</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://uk.maven.org/maven2/</url></mirror><mirror><id>CN</id><name>OSChina Central</name><url>http://maven.oschina.net/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror><mirror><id>nexus</id><name>internal nexus repository</name><!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>--><url>http://repo.maven.apache.org/maven2</url><mirrorOf>central</mirrorOf></mirror></mirrors>
</settings>

3.2.2 设置新项目的setting: 

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

        当前项⽬和新项⽬共⽤⼀个setttings⽂件即可, 所以新项⽬的设置, 只需要确认⼀下settings⽂件的路 径即可.

ps:本次的内容就到这里了,如果对你有所帮助的话,就请一键三连哦!!!

电子签名:上嘉路

相关文章:

JavaEE 的入门

1. 学习JavaEE Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开 发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习JavaEE主要是学习Java在 企业中如何应⽤. 前⾯学习的是Java基础, JavaEE 主要学习Jav…...

vue3+ts 前端word文档下载文件时不预览直接下载方法(支持 doc / excel / ppt / pdf 等)

前端word文档下载文件时不预览直接下载方法支持 doc / excel / ppt / pdf 等 根据需要&#xff0c;要实现一个下载文档的需要 最简单的方法就是使用a标签 如果是相同域可以直接下载&#xff0c;但如果是不同域的&#xff0c;就会先打开一个预览页&#xff0c;在预览页再点下载…...

Java 空值与null 形参与实参学习

Java系列文章目录 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 空值与null的区别4.1.1 空值&#xff08;Empty Value&#xff09;4.1.2 Null 4.2 形参与实参区别 五、总结&#xff1a;5.1 学习总结&#xff1a; 一、前…...

【QT常用技术讲解】QTableView添加QCheckBox、QPushButton

前言 QT展示列表信息的时候通常用到列表&#xff08;比如用户信息、机构信息、设备信息等菜单&#xff09;&#xff0c;当需要对某列进行修改、删除操作时&#xff0c;就需要加入按钮&#xff08;QPushButton&#xff09;&#xff0c;当需要对多列进行右键菜单操作时&#xff0…...

linux监控命令

在 Linux 中&#xff0c;有许多命令可以用于监控系统的性能和状态。以下是一些常用的监控命令及其用途&#xff1a; 1. top​ 和 htop​ top ​top​ 命令显示当前系统中运行的进程列表及其资源使用情况。 top​​ ‍ htop ​htop​ 是 top​ 命令的增强版&#xff0c;提…...

SpringBoot入门笔记

本文是看黑马老师讲课视频学习笔记整理 目录 入门案例 基于IDEA联网 基于Springboot官网创建 基于阿里云创建项目 手工创建 隐藏文件 入门案例解析: parent​编辑 starter 引导类 内嵌tomcat 入门案例 基于IDEA联网 RestController RequestMapping("/books&…...

python 华为od 单词接龙

sd[word,dd,da,dc,dword,d] # 计算出下一个接龙单词 def jl(sd,st):# sd.remove(st)sd list(set(sd))sends list(st)[-1]lg []sd.sort()for i in sd:if i.startswith(sends):lg.append((i, len(i)))if lg[]:return 0,0lg.sort(keylambda x: x[1],reverseTrue)maxlen lg[0][…...

Vue+Echart实现地图省市区三级下钻

采用在线地图数据&#xff0c;整体简约&#xff0c;扩展也方便 参考 <template><div><div ref"mapContainer" style"width: 100%; height: 600px;"></div><button click"goBack">返回上一级</button></…...

Apache Tomcat 信息泄露漏洞排查处理CVE-2024-21733)

一、漏洞描述 Apache Tomcat作为一个流行的开源Web服务器和Java Servlet容器并用于很多中小型项目的开发中。其中,Coyote作为Tomcat的连接器组件,是Tomcat服务器提供的供客户端访问的外部接口,客户端通过Coyote与服务器建立链接、发送请求并且接收响应。 近日发现Apache To…...

51单片机-LED实验

实现了按下独立按键&#xff0c;LED灯亮&#xff0c;松开独立按键&#xff0c;LED灯灭的功能 #include <8051.h>void delayms(unsigned char t){unsigned char i,j;i900;jt;do{jt;while (j--){/* code */}}while(i--); }void main(){// P2_01;while (1){if(P3_00){delay…...

无人机开启农林植保新篇章

嘿&#xff0c;小伙伴们&#xff0c;你们知道吗&#xff1f;无人机已经悄悄在农业领域大展拳脚&#xff0c;成为现代农业的“黑科技”新宠儿啦&#xff01; 想象一下&#xff0c;广袤的田野上空&#xff0c;无人机如同勤劳的蜜蜂&#xff0c;精准高效地完成着各项任务&#xff…...

第N4周:NLP中的文本嵌入

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 任务要求&#xff1a;加载第N1周的.txt文件&#xff0c;使用Embeddingbag与Embedding完成词嵌入 第N1周的.txt文件的名称为“任务文件.txt”&#xff0c;内容为&#xff1a; 比较直观的编码方式是采用上…...

C++高精度减法

高精度减法其实跟加法差不多&#xff0c;首先就是需要逆序存入整数数组&#xff0c;其次就是做运算&#xff0c;最后就是删除前导0逆序输出。 不过在做高精度减法需要考虑一下两个数的关系是有三种的&#xff0c;a>b,a<b ab;思考全面咱们的程序才能拿满分。 以下是完整…...

protobuf cmakelist,msvc utf-8设置

源字符集和执行字符集 源字符集指的是cpp文件中字符串的编码方式 执行字符集指的是exe文件中字符串的编码方式 msvc编译器设置的命令行参数 /source-charset:utf-8 /execution-charset:utf-8 cmake中设置 add_compile_options(“ < < <<CXX_COMPILER_ID:MSVC>…...

Haproxy讲解

Haproxy: haproxy是一个开源的高性能反向代理和负载均衡器&#xff0c;主要用于‌TCP和‌HTTP流量管理。 功能和特点&#xff1a;haproxy能够处理大量的并发连接&#xff0c;支持TCP和HTTP协议&#xff0c;具有高可用性和负载均衡功能。它特别适用于需要处理大量流量的网站&am…...

K8S系列——一、Ubuntu上安装Helm

在使用K8S搭建集群服务时&#xff0c;有时候需要用到Helm&#xff08;一个用于Kubernetes应用管理的工具&#xff09;&#xff0c;下面是在Ubuntu上安装Helm的过程。 1.更新系统软件包列表 sudo apt-get update2.安装必要的依赖项 sudo apt-get install apt-transport-https…...

排序: 插入\希尔\选择\归并\冒泡\快速\堆排序实现

1.排序的概念及应用 1.1概念 排序:所谓排序&#xff0c;就是一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 1.2运用 购物筛选排序&#xff1a; 1.3常见排序算法 2.实现常见的排序算法 int a[ {5,3,9,6,2,4,7,1,8}; 2…...

OpenCV图像处理——按最小外接矩形剪切图像处理ROI后映射回原图像

引言 在图像处理过程中&#xff0c;提取感兴趣区域&#xff08;ROI&#xff09;并在其上进行处理后&#xff0c;往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤&#xff1a; 找到最小外接矩形&#xff1a;使用 cv::boundingRect 或 cv::minAreaRect 提取感兴…...

Linux中以单容器部署Nginx+ASP.NET Core

强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器&#xff0c;本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程。 Nginx->ASP.NET Coe部署架构容器化 在Docker中部署Nginx--->ASP.NETCore 有两种选择&#xff0c; 第一种是在单容器…...

【秋招笔试】8.11大疆秋招(第三套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…...

别再死记硬背了!用Kahn算法搞定LeetCode 207课程表,保姆级C++代码逐行解析

从课程表到任务调度&#xff1a;Kahn算法在LeetCode 207中的实战应用 每次打开LeetCode看到那道课程表问题&#xff0c;你是不是也感到一阵头疼&#xff1f;先修课程、依赖关系、环状检测……这些概念堆在一起&#xff0c;简直比大学选课系统还让人崩溃。但别担心&#xff0c;今…...

如何实现Flomo到Obsidian的高效迁移与无缝衔接?一站式数据迁移工具全解析

如何实现Flomo到Obsidian的高效迁移与无缝衔接&#xff1f;一站式数据迁移工具全解析 【免费下载链接】flomo-to-obsidian Make Flomo Memos to Obsidian Notes 项目地址: https://gitcode.com/gh_mirrors/fl/flomo-to-obsidian 当你需要将积累已久的Flomo笔记迁移到Obs…...

保姆级教程:MogFace人脸检测模型-large快速上手,无需代码轻松体验

保姆级教程&#xff1a;MogFace人脸检测模型-large快速上手&#xff0c;无需代码轻松体验 1. 认识MogFace人脸检测模型 1.1 什么是MogFace MogFace是目前最先进的人脸检测方法之一&#xff0c;在Wider Face六项榜单上长期保持领先地位。这个模型通过三个创新点显著提升了检测…...

WeChatExporter深度解析:如何三步搞定iOS微信聊天记录完整导出

WeChatExporter深度解析&#xff1a;如何三步搞定iOS微信聊天记录完整导出 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 还在为无法备份微信聊天记录而烦恼吗&#xff…...

3步释放华硕笔记本潜能:G-Helper轻量化控制工具的极致优化指南

3步释放华硕笔记本潜能&#xff1a;G-Helper轻量化控制工具的极致优化指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models …...

Simcenter Amesim 2023与Matlab 2023a联合仿真:从环境配置到实战例程详解

1. 联合仿真环境搭建前的准备工作 在开始Simcenter Amesim 2023与Matlab 2023a的联合仿真之前&#xff0c;我们需要做好充分的准备工作。这就像盖房子前要打好地基一样重要&#xff0c;否则后续工作可能会遇到各种意想不到的问题。 首先说说硬件要求。根据我的实测经验&#xf…...

Atomics探究(四)-- atomic flag

本篇将研究atomic_flag相关函数底层汇编指令,以及与其他原子操作函数进行比较,探讨其存在的意义。 1、标准描述: 2、定义 gcc 头文件中定义如下 typedef _Atomic struct { #if __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1_Bool __val; #elseunsigned char __val; #endif } at…...

实战构建c盘清理桌面应用,快马ai生成可部署完整解决方案

今天想和大家分享一个实战项目&#xff1a;用Python开发一个C盘清理桌面应用。这个工具不仅能解决日常C盘空间不足的烦恼&#xff0c;还具备完整的图形界面和实用功能。最近在InsCode(快马)平台上尝试了快速生成和部署&#xff0c;整个过程特别顺畅。 项目背景与核心功能 开发这…...

DOL-CHS-MODS实战指南:从入门到精通的5个关键步骤

DOL-CHS-MODS实战指南&#xff1a;从入门到精通的5个关键步骤 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 副标题&#xff1a;一站式解决Degrees of Lewdity汉化与Mod整合难题&#xff0c;让你轻…...

七牛云图床避坑指南:如何避免CNAME解析和HTTPS配置中的常见错误

七牛云图床高阶配置实战&#xff1a;CNAME与HTTPS深度排错手册 第一次用七牛云图床时&#xff0c;我在凌晨三点对着屏幕上的404错误发呆——明明按照文档一步步操作&#xff0c;为什么图片死活加载不出来&#xff1f;后来才发现是CNAME解析的TTL缓存问题。这种看似简单的配置背…...