数组
数组基本概念 基本定义 线性结构 相同类型 固定大小 特点 访问速度快:O(1)O(1)O(1) 插入与删除效率低,需要移动其他元素,时间复杂度O(n)O(n)O(n) 备注 在C++中,需要区分vector与array,vector底层为array,其本身严格讲为:容器。 常见算法与代码 二分查找 对于nnn个元素的有序数组numsnumsnums与目标值targettargettarget,查找数组中是否存在目标值,如果存在,返回目标元素下标。数组元素不重复,下标唯一。 12345678910111213141516171819202122232425class Solution {public: int search(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; while (left <= right) { ...
前端总体概述
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。 项目文件夹预览 前端项目的基本目录结构我将参照若依,但是具体的演示截图,我将使用我自己的项目。一般情况下我们只需要看下图中的四个部分就可以,下文依次进行。 依赖——package.json 此部分并无过多解释,重点集在依赖项的书写方式、版本对应关系,引擎打包工具等设定,基于ruoyi的二次开发的情况下,可以暂且不深入研究,直接套用即可。截取部分展示。 1234567891011121314151617181920212223"scripts": { "dev": "vite", "build:prod": "vite build", "build:stage":...
后端总体概述
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。 前言 在初次接触Java web开发时看着项目中一大堆文件夹,还是有些无从下手的,所以在写每个功能前还是需要了解一下后端整体的项目结构的。 业务A == iams-业务A 后端项目打开会看到好多模块,每个模块在业务逻辑上是独立的,相互之间是可以被调用的(但是不能A调用B,B同时再调用A,会导致循环依赖)。 比如若依的项目,在这个视频中介绍了课程类的添加方式,实现了对课程数据的增删查改,只不过它把后端的代码都放到了admin模块下面,其实我们也可以新增一个模块,将这个代码放进去,就像下图一样,每个模块负责各自的业务。 如何形象化一个后端模块?——以用户管理为例 其实不是很想用添加用户这个作为演示,他的服务、实体、数据库映射放在了system模块里面,但是控制层却放到了admin的web文件夹下,总体上不影响的 ...
MySQL的增删查改
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。 概述 暂不考虑MySQL的一些底层实现,仅从基本的增删查改功能来看,我们似乎要使用大量的sql语句去实现这些功能,使用JDBC(Java Database connect)?这个实在是太麻烦了,要手动建立连接,写sql语句传值,小项目凑活一下应该问题不大,但是复杂项目就比较麻烦了,笔者没有试过跑JDBC,在这里贴一段GPT给出的插入数据的代码,当属性变多的时候,这代码就显得有些麻烦了。 1234567891011121314151617import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public void insertUser(String username, String email)...
全文检索Elasticserarch
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。 全文检索 回想一下我们查找知网的时候,我们可以搜索标题得知一些信息,同样,我们有的时候需要检索他的摘要才能得到一些算法和方法的信息。 所以,这个时候单纯去模糊查找MySQL数据库就不太合适了,我们需要一个新的数据库,他能保存文件的一些关键信息,包括{标题、作者、摘要(甚至是全文)}等,相比MySQL的一条条轻量化的记录数据(比如文档实际的保存位置、标题、ISBN等),我们期望新的数据库能将文本的全文进行保存,能让我们:翻开书看,查找书中内容。而不是只看封面获得一些“表面信息”。 这个时候就可以使用Elasticserarch:分布式搜索和分析引擎 ...
Activiti8后端部分概述
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。 概述 Activiti8 是一个强大的流程管理工具,可以实现流程相关的业务,包括申请、任务发放、审批等操作。通过 Spring Boot 的 Security 进行鉴权,能够实现流程的部署、激活、挂起等功能。其核心目的是自动化实现流程图中的各个节点,对节点任务进行监控以及流程的执行。在流程测试员环节,可以规定由哪些用户或用户组负责,这些用户登录系统后就能看到当前需要处理的任务。 权限要求 Activiti7 及以上版本对权限有严格要求,主要涉及 GROUP_、ROLE_ACTIVITI_USER 等字段。需要将所有登录用户划分到对应的组内,暂时用 post_code(岗位代码)表示。例如,HR 人力资源部门需要添加 GROUP_HR 权限,也可以根据实际的部门(如...
Java配置文件解析(GPT生成)
这是一个 Maven 项目的配置文件(pom.xml),用于管理依赖、构建和其他项目配置。以下是对该文件各部分的详细解释: 文件结构 XML 声明: 1<?xml version="1.0" encoding="UTF-8"?> 声明 XML 文档的版本和编码方式。 根元素 <project>: 定义了 Maven 项目的基本信息,包括命名空间和版本。 主要元素 <modelVersion>: 1<modelVersion>4.0.0</modelVersion> 指定 POM 模型的版本,通常为 4.0.0。 <parent>: 123456<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...
计网知识点整理
所以说,写博客才是最快的学习方法,慢慢更 计算机网络知识点梳理——以谢希仁第七版为教材 细节处不完全按照原书标题顺序 第一章 概述 1.1 计算机网络 大众熟悉的三大类网络:电信网络、有线电视网络、计算机网络。其中发展最快并起核心作用的是计算机网络。其中,互联网是目前技术最成功的、应用最广泛的计算机网络。 计算机网络的定义:主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用于来实现某一特定目的。这些可编程的硬件能用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。 计算机网络的特点:连通性,共享。 1.2 互联网概述 互联网=因特网=Internet,专有名词 互连网=internet,泛指多个计算机互连而成的网络 互联网,特指Internet,起源于美国由数量级极大的各种计算机网络互连起来,采用TCP/IP协议族作为通信规则。 1.2.1...