驾考
参考资料科目一考试题库2023_C1驾照科目一模拟考试试题_驾校机动车驾驶人科目一【驾考宝典】 (jiakaobaodian.com)
起因突然想复习一下
笔记
实习期需要在车后粘贴统一式样的实习标志
驾驶证丢失驾驶为无证驾驶
初次申领驾驶证有效期为6年,满期可换发10年,再满期换发长期
C1准予驾驶C2、C3、C4准驾车型。
《机动车驾驶证申领和使用规定》第十四条,申请机动车驾驶证的人,应当符合下列规定:(一)年龄条件:1.申请小型汽车、小型自动挡汽车、残疾人专用小型自动挡载客汽车、轻便摩托车准驾车型的,在18周岁以上;2.申请低速载货汽车、三轮汽车、普通三轮摩托车、普通二轮摩托车或者轮式专用机械车准驾车型的,在18周岁以上,60周岁以下;3.申请城市公交车、中型客车、大型货车、轻型牵引挂车、无轨电车或者有轨电车准驾车型的,在20周岁以上,60周岁以下;4.申请大型客车、重型牵引挂车准驾车型的,在22周岁以上,60周岁以下;第十六条,初次申领机动车驾驶证的,可以申请准驾车型为城市公交车、大型货车、小型汽车、小型自动挡汽车、低速载货汽车、三轮汽车、残疾人专用小型自动挡载客汽车、 ...
哈夫曼树
基本概念一棵节点带权值的二叉树,若带权路径长度达到最小,称为最优二叉树,也叫哈夫曼树。权值越大离根节点越近。
带权路径
指当前节点值乘当前节点的层数
树的带权路径长度 WPL 为所有叶子节点的带权路径长度之和,注意是叶子节点,不包括分支节点
构造方法
给定N个权值,N个权值将会构造出一个有N个叶子节点的哈夫曼树。
将N个权值作为N个森林,每个森林的树只有一个节点
在森林中选出两个根节点的权值最小的树合并,作为一棵新的树,新树的根节点权值为其左右子树根节点权值之和。
从森林中删除选取的两棵树,并将新树加入森林。
重复3,4,直到森林中只剩一棵树,该树即为所求哈夫曼树
哈夫曼编码出现频率高的字符编码成较短的二进制数,而出现频率低的字符编码成较长的二进制树,这样可以用更少的比特数表示更多的字符,可应用于如数据压缩。
举例:
对字符串“aaa bb cccc dd e”其中的字符进行哈夫曼编码
统计各个字符出现的次数
a
空格
b
c
d
e
3
4
2
4
2
1
根据出现次数为权值进行哈夫曼树的构造
在树上进行编码,左分支编0,右分支编1
a
空格 ...
字符集
参考资料ASCII码一览表,ASCII码对照表 (biancheng.net)
UTF-8 到底是什么意思?unicode编码简介 - 知乎 (zhihu.com)
相关概念字节序字节序是指计算机存储数据时采用的字节排列顺序,在计算机科学中有两种字节序:大端字节序和小端字节序,大端字节序(Big-Endian)是指最高有效位在最低地址的字节序。小端字节序(Little-Endian)是指最低有效位在最低地址的字节序
BOMBOM是一个特殊的标记符,用于表示文本文件的字节序。
编码ASCII占用一个字节:8位,有效信息存储位7位,首位为0,一共128个字符
二进制
十进制
十六进制
字符/缩写
解释
00000000
0
00
NUL (NULL)
空字符
00000001
1
01
SOH (Start Of Headling)
标题开始
00000010
2
02
STX (Start Of Text)
正文开始
00000011
3
03
ETX (End Of Text)
正文结束
00000100
4
04
EOT (End Of Tran ...
fastjson
参考资料https://alibaba.github.io/fastjson2/spring_support_cn.html
spring框架集成fastjson2fastjson2在集成到spring框架时,引用的模块应该是fastjson-extension
且fastjson针对不同版本的springboot版本做了不同的封装
12345678910111213<dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-extension-spring5</artifactId> <version>2.0.40</version></dependency>or<dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-exten ...
log4j2
简介log4j2也是slf4j的实现之一,且在logback之后(融入了logback中的特性)
单独使用依赖1234567891011<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.22.0</version></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.22.0</ve ...
各种license
一张图来自阮一峰的博客,翻译自乌克兰程序员Paul Bagwell
jackson
参考资料https://blog.csdn.net/qq_41834086/article/details/111152470
序列化与反序列化实例实体类
12345678910111213141516171819202122package com.example.demo;public class Person { public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } String username; int age;}
...
encrypt
AES加密AES支持三种长度的密钥:128位、192位、256位,分别称之为AES128、AES192和AES256。
AES加密会把明文拆成一个一个的明文块,每个明文块128bit,如果最后一块长度不足128位,则默认使用缺失的字节数填充。接着对这些明文块分别加密,将加密结果拼接形成最终加密结果。
在加解密过程,每个明文块会作为4*4字节的矩阵进行处理
加密过程包括如下四步
AddRoundKey(轮密钥加)
矩阵中的每个字节都与该次轮密钥(round key)做异或运算
SubBytes(字节替代)
通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节
ShiftRows(行移位)
将矩阵中的每个横列进行循环式移位
MixColumns(列混淆)
为了充分混合矩阵中各个直行的操作,使用线性转换来混合每列的四个字节。
填充方式
不填充 NoPadding
不进行填充,要求明文必须位16个字节的整数倍。
长度填充 PKCS5Padding(默认)
填充的数据为16-最后一块字节数:相差长度
若明文为16个字节的整数倍,则填充16个字节的数据,其值都为16(16- ...
南京大学计算机科学实验
开发环境配置
非root用户使用sudo执行命令,需将其添加到sudo中,使用命令
123su -add username sudoexit
重启之后生效
在修改镜像的过程中,原教程操作为
1sudo echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stable main" > /etc/apt/sources.list
虽然使用了sudo,但仍然会报权限问题,经查找,得知该段指令会被分为两步运行,echo 会使用sudo执行,但 > 会使用非sudo身份。
第一种解决方案(避免使用su)
1sudo su -c "echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stable main" > /etc/apt/sources.list"
第二种(更安全)
1echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stabl ...
https
参考资料HTTPS原理和TLS认证流程全解析 - 知乎 (zhihu.com)
TLS 1.0 至 1.3 握手流程详解 - en_oc - 博客园 (cnblogs.com)
HTTPS协议http协议是明文传输,内容容易被中间人拦截后获取,且中间人可伪装为服务器,向客户端发送伪装的响应。
https在http应用层和tcp传输层中间加了一层SSL安全层,整个加密过程都没有侵入原先的http协议,故对http协议进行了很好的兼容。
TLS/SSLTLS协议就是SSL协议,SSL在被网景公司(Netscape)开发出来后,SSL1.0未公布,2.0具有重大缺陷,96年发布3.0,在SSL3.0的下一个版本便是TLS1.0,在此之后迭代TLS1.0、1.1、1.2和1.3,目前应用最广泛的为TLS1.2。
TLS加密原理类似于TCP会通过握手来建立连接,TLS也会通过握手来交换一些必要的基础信息。
既然TLS是为了保证传输安全,那肯定要对传输的数据进行加密,加密的方式一般有对称加密和非对称加密。
对称加密加密和解密都用的同一个密钥,由于CS方式的特殊性,如果采用对称加密,则会存 ...