Git使用
Git集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。
集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。
集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。
集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件会慢的无法让人忍受。而分布式版本控制不需要连网就能工作。
分布式版本控制新建分支、合并分支操作速度非常快,而集中式版本控制新建一个分支相当于复制一份完整代码。
中心服务器中心服务器用来交换每个用户的修改,没有中心服务器也能工作,但是中心服务器能够 24 小时保持开机状态,这样就能更方便的交换修改。
Github 就是一个中心服务器。
工作流新建一个仓库之后,当前目录就成为了工作区,工作区下有一个隐藏目录 .git,它属于 Git 的版本库。
Git 的版本库有一个称为 Stage 的暂存区以及最后的 History 版本库,History 存储所有分支信息,使用一个 HEAD 指针指向当前分支。
git add files 把文件的修改添加到暂存区
git commit 把暂 ...
Redis缓存
Redis一、概述Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。
键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。
Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。
二、数据类型
数据类型
可以存储的值
操作
STRING
字符串、整数或者浮点数
对整个字符串或者字符串的其中一部分执行操作\</br> 对整数和浮点数执行自增或者自减操作
LIST
列表
从两端压入或者弹出元素 \</br> 对单个或者多个元素进行修剪,\</br> 只保留一个范围内的元素
SET
无序集合
添加、获取、移除单个元素\</br> 检查一个元素是否存在于集合中\</br> 计算交集、并集、差集\</br> 从集合里面随机获取元素
HASH
包含键值对的无序散列表
添加、获取、移除单个键值对\</br> 获取所有键值对\</br> 检查某个键是否存在
ZSET
有序集合
添加、获取、删除元 ...
正则表达式
正则表达式一、概述正则表达式用于文本内容的查找和替换。
正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。
正则表达式在线工具
二、匹配单个字符. 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符;
. 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。
正则表达式一般是区分大小写的,但也有些实现不区分。
正则表达式
1C.C2018
匹配结果
My name is CyC2018 .
三、匹配一组字符[ ] 定义一个字符集合;
0-9、a-z 定义了一个字符区间,区间使用 ASCII 码来确定,字符区间在 [ ] 中使用。
- 只有在 [ ] 之间才是元字符,在 [ ] 之外就是一个普通字符;
^ 在 [ ] 中是取非操作。
应用
匹配以 abc 为开头,并且最后一个字母不为数字的字符串:
正则表达式
1abc[^0-9]
匹配结果
abcd
abc1
abc2
四、使用元字符匹配空白字符
元字符
说明
[\b ...
剑指Offer 部分编程题
斐波那契数列题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39
问题分析:
可以肯定的是这一题通过递归的方式是肯定能做出来,但是这样会有一个很大的问题,那就是递归大量的重复计算会导致内存溢出。另外可以使用迭代法,用fn1和fn2保存计算过程中的结果,并复用起来。下面我会把两个方法示例代码都给出来并给出两个方法的运行时间对比。
示例代码:
采用迭代法:
123456789101112131415int Fibonacci(int number) { if (number <= 0) { return 0; } if (number == 1 || number == 2) { return 1; } int first = 1, second = 1, third = 0; for (int i = 3; i <= number; i++) { third = first + sec ...
Linux命令手册
关机/重启/注销
常用命令
作用
shutdown -h now
即刻关机
shutdown -h 10
10分钟后关机
shutdown -h 11:00
11:00关机
shutdown -h +10
预定时间关机(10分钟后)
shutdown -c
取消指定时间关机
shutdown -r now
重启
shutdown -r 10
10分钟之后重启
shutdown -r 11:00
定时重启
reboot
重启
init 6
重启
init 0
⽴刻关机
telinit 0
关机
poweroff
⽴刻关机
halt
关机
sync
buff数据同步到磁盘
logout
退出登录Shell
系统信息和性能查看
常用命令
作用
uname -a
查看内核/OS/CPU信息
uname -r
查看内核版本
uname -m
查看处理器架构
arch
查看处理器架构
hostname
查看计算机名
who
显示当前登录系统的⽤户
who am i
显示登录时的⽤ ...
SQL语法
SQL 语法一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。
主键的值不允许修改,也不允许复用(不能将已经删除的主键值赋给新数据行的主键)。
SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。
SQL 语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体的 DBMS 以及配置。
SQL 支持以下三种注释:
12345## 注释SELECT *FROM mytable; -- 注释/* 注释1 注释2 */
数据库创建与使用:
12CREATE DATABASE test;USE test;
二、创建表1234567891011CREATE TABLE mytable ( # int 类型,不为空,自增 id INT NOT NULL AUTO_INCREMENT, # int 类型,不可为空,默认值为 1,不为空 col1 INT NOT NULL DEFAUL ...
Typora的使用技巧
this is my blog
markdown的使用说明一、标题语法:# (一级标题) ## (二级标题) ### (三级标题) ……
代码:
12# 这是一级标题## 这是二级标题
效果:
这是一级标题这是二级标题快捷键:
Ctrl+数字1~6可以快速将选中的文本调成对应级别的标题
Ctrl+0可以快速将选中的文本调成普通文本
Ctrl+加号/减号对标题级别进行加减
二、段落1、换行代码:12这是一个段落这是一个段落
效果:
这是一个段落这是一个段落
2、分割线语法: —-或者*+回车
代码:1---或者***
效果:
三、文字显示1、字体语法:
粗体: 用一对双星号包裹
删除线: 用一对双飘号包裹
下划线: 用一对u标签包裹
斜体: 用一对单星号包裹
高亮: 用一对双等号包裹
代码:12345**这是粗体**~~这是删除线~~<u>这是下划线</u>*这是斜体*==这是高亮==
效果:这是粗体这是删除线这是下划线这是斜体==这是高亮==
快捷键:
加粗: Ctrl+B
删除线: Shift+Alt+5
下划线: Ct ...
计算机-网络
计算机网络 - 概述网络的网络网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。
ISP互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。
目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。
主机之间的通信方式
客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。
对等(P2P):不区分客户和服务器。
电路交换与分组交换1. 电路交换电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
2. 分组交换每个分组都有首部和尾部,包含了源地址和目的地址等控 ...
计算机-操作系统
计算机操作系统 - 概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
操作系统通过引入进程和线程,使得程序能够并发运行。
2. 共享共享是指系统中的资源可以被多个并发进程共同使用。
有两种共享方式:互斥共享和同时共享。
互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
3. 虚拟虚拟技术把一个物理实体转换为多个逻辑实体。
主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。
多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。
虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。
4. 异步异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
基本功能1. 进程 ...
项目总结
项目总结1 请介绍一下你的项目:《学成在线》项目是一个B2B2C的在线教育平台,本项目包括了用户端、机构端、运营端。
核心模块包括:内容管理、媒资管理、课程搜索、订单支付、选课管理、认证授权等。
下图是项目的功能模块图:
项目采用前后端分离的技术架构,使用Spring Cloud技术栈构建微服务,数据库采用MySQL,还使用了Redis、RabbitMQ、Elasticsearch等技术。
技术栈如下图:
2 项目技术架构相关2.1 项目采用什么技术架构?项目采用前后端分离的技术架构,使用Spring Cloud技术栈构建微服务,数据库采用MySQL,还使用了Nacos、Spring Cloud Gateway、Redis、RabbitMQ、Elasticsearch、XXL-Job等技术。
2.2 微服务都用了哪些技术?所有微服务基于Spring Boot构建,分为接口层、模型层、业务层。
1)接口层
提供与前端的HTTP接口实现。
Spring MVC、Spring Security Oauth2 、Swagger
2)模型层
提供PO类、DTO类统一管理。
3)业务层
包括业 ...














