简单入门
通过 docker 部署 mysql
123456docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
docker run : 创建并运行一个容器,-d 是让容器在后台运行
–name mysql : 给容器起个名字,必须唯一
-p 3306:3306 : 设置端口映射 宿主端口:容器端口
-e KEY=VALUE : 设置环境变量
mysql : 镜像名 [repository]:[tag] 镜像名:镜像版本
不填默认 latest
基础命令
常见命令
docker pull 获取镜像
docker build 自定义镜像 需要 dockerfile 文件
docker save 保存 docker 镜像
docker load 加载本地镜像
docker push 上传镜像到仓库
docker stop/start 开启 / 关闭容器进程
docker ps 查看容器
docker rm/rmi 删除容器 / 镜像
docker logs ...
Windows 日常
未读下载 aria2
引用站外地址
aria2 是一款开源支持多平台的下载器
aria2
下载完成后解压即可。
配置 aria2
aria2 配置文件需要自己创建 aria2.conf 以下是我个人自用的 aria2 配置文件改自 PTERX 大佬的配置文件,同时创建 aria2.session。
引用站外地址
Aria2 完美配置
PTERX
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747 ...
Vue 入门
Vue 安装
通过 ES
模块快速将 vue3 导入到一个页面中
123456789101112<div id="app">{{ message }}</div><script type="module"> import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' createApp ({ setup () { const message = ref ('Hello Vue!') return { message } } }).mount ('#app')</script>
V 提供的常用指令
指令
作用
列表渲染,遍历容器的元素或者对象的属 ...
新增文章分类
使用 validation 完成参数校验
在 service 层需要为 Category 的 createUser、createTime、updateTime 属性赋值
获取文章分类
修改传出时间的 json 格式
123456// 创建时间 @JsonFormat (pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; // 更新时间 @JsonFormat (pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime;
获取文章分页
对应非必要参数可以在参数前面加上 @RequestParam (required = false)
登录认证
目标:让为登录的用户无法访问特定网页
JWT 令牌
令牌是一段字符串
承载业务数据,减少后续请求查询数据库的次数
防篡改,保证信息的合法性和有效性
全称 JSON Web Token (https://jwt.io/)
定义了一种简洁的、自包含的格式、用于通信双方以 json 格式安全的传输信息。
组成
第一部分:Header,记录令牌类型、签名算法等。
第二部分:Payload(有效载荷),携带一些自定义信息、默认信息。
第三部分:Signature(签名),防止 Token 被篡改、确保安全性。将 header、payload,并加入指定密钥,通过与指定签名算法而来。
通过 Base64 进行编码
JWT 相关依赖
12345<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>4.4.0</version> </dependency&g ...
Spring Validation
spring 提供的一个参数校验框架,使用预定义的注解完成参数校验 -
直接写 if 语句数据校验过于繁琐一个参选可能就要写出好几个条件参数一多容易记混写错,同时代码阅读性差
注解
作用
@Pattern
通过正则表达式校验数据
@NotNull
值不能为 Null
@NotEmpty
值不能为 Null,并且内容不为空
@Email
满足邮箱格式
@URL
满足 URL 格式
@Pattern 使用步骤
引入 Spring Validation 起步依赖
12345<!-- 在 maven 项目的 pom.xml 中添加 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
在参数前面添加 @Pattern 注解
12// 使用正则 ...
数据结构与算法
未读基础
常数操作,固定时间的操作,执行时间和数据量无关
时间复杂度,一个和数据量有关、只要高阶项、不要低阶项、不要常数项的操作次数表达式
严格固定流程的算法,一定要强调最差情况!比如插入排序
算法流程上利用随机行为作为重要部分的,要看平均或者期望的时间复杂度,因为最差的时间复杂度无意义
用生成相邻值不同的数组来说明
算法流程上利用随机行为作为重要部分的,还有随机快速排序
时间复杂度的内涵:描述算法运行时间和数据量大小的关系,且当数据量很大很大时,这种关系相当的本质,并且排除了低级项、常数时间的干扰
空间复杂度,强调额外空间:常数项时间,放弃理论分析、选择实验来确定,因为不同常数操作的时间不同
什么叫最有解,先满足时间复杂度最优,然后用尽量少用空间的解
时间复杂度的均摊,用动态数组的扩容来说明(等比数列、均摊的意义)
不要用代码结构来判断时间复杂度,比如只有一个 while 循环的冒泡排序,其时间复杂度 O (N^2)
不要用代码结构开判断时间复杂度,比如:N/1+N/2+N/3+…N/N
,这个流程的时间复杂度时 O (N*logN)
时间复杂度只能是对算法流程充分理解才能分析出来,而不是简单的看 ...
数据结构与算法
未读知识点
求中点
正常想法为 mid=(L+R)/2
,但在特殊情况下可能会溢出导致结果的不准确如两个值都很大的时候
L+R 会溢出,此时可以把 L 提取出来变成 mid = L + (R-L)/2
。 > 在程序里可以写成 mid = L + ((R-L) >> 1);
算术左移一位等同于除以 2 比使用 / 性能更好。 ##
递归行为时间复杂度计算 (master 公式) T (N)=a*T (N/b)+O (N^d) 母 次 子
公式
时间复杂度
logb (a) < d
O (N^d)
logb (a) > d
O (N^logb (a))
logb (a) == d
O (N^d*logN)
数据结构与算法
未读前置知识点的学习
计算机逻辑运算
与 :当所有输入条件同时满足 1,输出 1;输入条件只要有 0 就输出 0。java :
&
或:输入条件有 1 即输出 1;一个 1 也没有才输出 0。java : |
非:输出结果与输入条件取反。0 变 1,1 变 0。 java : !
异或:仅当两输入取不同的值时异或结果为 1;否则均为 0。java : ^
可以理解为无进位加法
异或的规则: 1. 0^N= N N^N=0 2. 符合交换律和结合率
AB=BA (AB) B=A (BC)
通过异或运算交换两个变量的值
如果 a 和 b 指向同一个内存会导致 N^N=0,而出现问题,在平时不推荐使用。
123456789101112public class main { public static void main (String [] args) { int a = 234; int b = 349; a = a ^ b; b = a ^ b; a = a ^ b; System.out.println (" ...
前期准备
必要的一些软件
图吧工具箱
拥有安装系统 (重装) 后一些实用的软件,可以对硬件进行稳定性测试; 点击前往官网
加速访问 github 工具
steam++(Watt Toolkit)
下载地址
链接
官网
Watt Toolkit
github
https://github.com/BeyondDimension/SteamTools
gitee
https://gitee.com/rmbgame/SteamTools
微软商店
https://apps.microsoft.com/detail/9mtcfhs560ng?hl=en-us&gl=US
驱动安装软件(可选,推荐准备一个)
个别系统镜像安装后可能没有网卡驱动这时就需要一个带网卡驱动的驱动安装器帮忙安装驱动,如果系统安装后有网卡驱动则可以跳过 windows 会自带下载需要的驱动。
驱动精灵网卡版
系统激活工具(可选)
有能力的推荐支持正版
oem 机器一般来说不需要这个,主板有会内置激活码自动激活 windows。
kms:https://github.com/zbezj/H ...