摘要: 查询基本原则 基本操作 select 从哪里选,选什么? show用法 use `student` -- 切换数据 show databases; -- 查看数据库 show tables; -- 查看有多少表 show columns from student; -- 有多少列 order by 阅读全文
posted @ 2021-07-28 03:09 沧海一声笑rush 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 例一 去除一个字符串中连续的空格,即"H__el___lo 变成 H_el_lo" ; 就是相当于使用 flag 定义了不同的状态,进行操作 func main() { a := "h__el___lo" str := []byte(a) flag := 1 for _, v := range st 阅读全文
posted @ 2021-07-25 05:07 沧海一声笑rush 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 给定不同面值的 m 种硬币 coins 和一个总金额 S,请编写一个函数来计算用这些硬币可以凑成总金额 S 的方案数。(每种硬币的数量是无限的, S以及coins中元素都是正整数,且不考虑每种方案中硬币的顺序) 分析一下就会发现,这个问题和普通的动态规划问题,其实是不一样的,前边的动态规划问题,都牵 阅读全文
posted @ 2021-07-25 04:01 沧海一声笑rush 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 什么是竞态 如果两个或者两个以上的 goroutine 在没有相同同步的情况下,访问某个资源,并同时试图读写,就会出现竞争态,竞争态会让代码编写变得复杂,引起潜在危险。 例1 比如下面的例子,我们对a加了一百次,但是由于存在竞争问题,所以最后输出的结果是 88 func main() { a = 0 阅读全文
posted @ 2021-07-24 18:34 沧海一声笑rush 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 概括 本文后端使用 netcore 3.1,前端使用 vue 2.x 开发,本文也借鉴了很多人写的博客,但是其中相当一部分代码根本跑不通。再者就是没有充分使用element-ui封装好的组件,大量的自己书写js代码,看起来比较费劲,还有部分未做到前后端的分离,把本应该前端做的事情,交给了后端。这大概 阅读全文
posted @ 2021-07-24 13:48 沧海一声笑rush 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 动态规划问题 动态规划(Dynamic Programming)(简称 DP 问题),是运筹学的一个分支,通常用来解决多阶段决策过程最优化问题,动态规划的基本思想,是将原问题,转化为一系列相互联系的子问题,然后通过逐层递推来求的最后的解。 斐波拉契数列 斐波拉契数列的样子 0 ,1, 1, 2, 3 阅读全文
posted @ 2021-07-22 05:53 沧海一声笑rush 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 内存的使用 存在磁盘中的程序,转成汇编指令以后,用 call 40 ,表示调用位置为 40 地方的代码。但是程序的执行,是需要将程序加载到内存中实行的,那么此时的 call 要用到的地址,就必须是真实的物理地址,这个过程是如何实现的呢? 具体过程 先在内存中,找到一段空白的内存。 把程序加载到这一段 阅读全文
posted @ 2021-07-21 19:12 沧海一声笑rush 阅读(290) 评论(0) 推荐(0) 编辑
摘要: HTTPS的过程 服务器端的公钥和私钥,用来进行非对称加密。 客户端生成的随机密钥,用来进行对称加密。 【浏览器】向服务器发起HTTPS请求,连接到服务器的443端口。(或者浏览器不知道服务器仅支持 https 请求,使用http协议发送到80端口,服务器一般会使用 302 进行重定向处理) 【服务 阅读全文
posted @ 2021-07-20 15:26 沧海一声笑rush 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 分层名称 功能 每层功能概览 应用层 针对特定的应用协议 Hppt协议,邮件协议 表示层 网络标准数据格式 接受不同形式的文本、图像、声音 会话层 通信的管理 何时建立连接,何时断开连接,保持多久连接 传输层 TCP协议 两个进程之间的数据传输 网络层 地址管理和路由选择 经过哪个路由器传递到目标地 阅读全文
posted @ 2021-07-19 10:29 沧海一声笑rush 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 图的基本该概念 边 为了将图和树做区分。往往将图中的节点,叫做顶点。两个定点中间存在边,则为相邻关系。 注意有向图的边称为 弧,分为弧头还有 弧尾;无向图的边依旧称为 边。 有向图还分 如度 和 出度 完全有向图和完全无向图 在有向图中,有n个顶点,那么最多有 n(n-1) 条边,那么有 n(n-1 阅读全文
posted @ 2021-07-17 17:40 沧海一声笑rush 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 操作系统 操作系统说白了,也是个程序,一开始的时候,操作系统相对于其他的应用程序。会优先加载到内存中,所以他加载到内存从0开始的位置,其他的应用程序将放到高位置的内存中。 操作系统接口 使用命令,相当于调用了 shell 程序,然后通过 shell 程序来运行程序。所以 shell是个程序,他调用了 阅读全文
posted @ 2021-07-17 16:47 沧海一声笑rush 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 参考模型各层总结 5层参考模型 功能 应用层 任务: 提供系统与用户的接口协议: HTTP协议 传输层 **传输单位:**报文段 **任务:**负责两个进程之间的通信 协议: TCP、UDP 协议 **功能:**提供端到端的可靠传输,流量控制 网络层 **传输单位:**数据报**任务:**将传输层传 阅读全文
posted @ 2021-07-17 13:34 沧海一声笑rush 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 树的定义 由唯一的根和若干互不相交的子树,每一颗子树又是一棵树。 相关概念 结点的度:拥有子树的个数 树的度:树中各节点度的最大值 双亲节点: 祖先节点:他上边所有的节点都是祖先节点 森林:把树的根去掉,剩下的树就构成了森林 树的存储结构 树的存储有两种方式:顺序存储、链式存储 顺序存储:一般使用称 阅读全文
posted @ 2021-07-17 00:55 沧海一声笑rush 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 各种算法对比 排序方法 时间复杂度 空间复杂度 稳定性 直接插入(插入排序) n2 1 稳定 直接选择(选择排序) n2 1 不稳定 堆排序(选择排序) nlog2 n 1 不稳定 冒泡排序(交换排序) n2 1 稳定 快速排序(交换排序) n2 nlog2 n 不稳定 排序算法的稳定性大家应该都知 阅读全文
posted @ 2021-07-16 21:05 沧海一声笑rush 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一.链表 1.1双向链表的基本操作 package main import "fmt" type Node struct { Data int PrePoint *Node NextPont *Node } type LinkList struct { head *Node current *Nod 阅读全文
posted @ 2021-07-16 17:11 沧海一声笑rush 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 流量控制和可靠传输,都是属于传输层的功能 在传输层,使用 TCP 连接的时候,是可以保证端到端的可靠传输的,只要主机 B 发现 TCP 数据传输有差错,就告诉主机A,将有差错的部分重传。直到这部分数据正确传到 B 为止。 TCP连接管理 TCP连接四原组:源地址,源端口,目的地址,目的端口 流量控制 阅读全文
posted @ 2021-07-16 16:54 沧海一声笑rush 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 操作系统的五大基本功能 处理器管理:处理器的分配和运行都是以进程为基本单位 存储器管理:对内存进行分配、保护和扩充 设备管理 文件管理 用户接口:cmd 核心态和用户态 为了避免操作系统以及其他的关键数据收到用户程序 有意或无意的破坏,通常将 处理器的执行状态 分为 用户态 和 核心态。 核心态: 阅读全文
posted @ 2021-07-16 15:15 沧海一声笑rush 阅读(738) 评论(0) 推荐(0) 编辑
摘要: Redis持久化 redis将所有的数据都存储在内存中,所以访问速度很快,但是一旦 redis 重启,所有存储在 redis中的数据都会丢失。所以要持久化到硬盘中,重启以后可以恢复数据。 redis 持久化的方式有两种,一种是 RDB 方式,一种是 AOF 方式, RDB 是按照规则,“定时”将内存 阅读全文
posted @ 2021-07-16 00:09 沧海一声笑rush 阅读(331) 评论(0) 推荐(0) 编辑
摘要: go语言操作redis有个包,一个是 go-redis,另一个是redigo,官方推荐第二种,但是个人比较喜欢用第一种。 连接数据库 package main import ( "fmt" "log" "math/rand" "sync" "time" "github.com/go-redis/re 阅读全文
posted @ 2021-07-15 02:32 沧海一声笑rush 阅读(6041) 评论(2) 推荐(0) 编辑
摘要: 简单实现 实现消息队列,只需要发布者在 list 中,使用lpush 往队列里添加值,订阅者在另一侧,使用 RPOP , 从队列中往外取值。 lpush list01 1 2 3 4 5 6 #往队列里面添加值 rpop list01 #从队列里面取值 存在的问题 上面就是一个简单的消息队列,但是存 阅读全文
posted @ 2021-07-14 17:47 沧海一声笑rush 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 切片和结构体的声明 切片的扩容,只有使用 append 的时候管用 指针如果没有声明指向哪里,那么就是 nil 结构体使用 type M struct , 匿名结构体使用var M struct { } 来声明 报错infinite recursive call 无限递归调用 map 不需要使用数组 阅读全文
posted @ 2021-07-13 19:40 沧海一声笑rush 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 基于session 的方式存在的问题 服务器端需要存储 session,并且由于 Session 需要经常快速查找,所以通常存储在内存中,或者内存数据库中。如果同时又大量用户在线,就会占用大量的服务器资源 当需要扩展时候,创建 session 的服务器可能不是验证 session的服务器,所以还需要 阅读全文
posted @ 2021-07-12 21:42 沧海一声笑rush 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 概念 并发是同一时间段执行多个任务,(你同时和两个女生聊天) 并行是同一时刻执行多个任务,(你和你朋友在和女生聊天) Go 语言的并发是通过 goroutine 实现的,goroutine 类似于线程,属于用户态的线程(程序员自己编写的) ,我们可以根据需要创建成千上万的 goroutine 并发工 阅读全文
posted @ 2021-07-12 03:35 沧海一声笑rush 阅读(87) 评论(0) 推荐(0) 编辑
摘要: map 基础操作 map 的声明 m := make(map[string]int, 2) m["hah"] = 15 m["mmm"] = 20 m["wwm"] = 30 m["wsegewwm"] = 40 fmt.Println(len(m)) //输出是 4,输出的会是总长度 m := m 阅读全文
posted @ 2021-07-11 23:47 沧海一声笑rush 阅读(319) 评论(0) 推荐(0) 编辑
摘要: Zap 日志库 常见的日志级别 panic:(error)错误已经发生,会导致系统退出 error:错误虽然发生,但是不影响系统的继续进行 warn:表明会出现潜在的错误 info:通知你一声 debug:调试输出,对于调试应用程序非常用帮助 基本配置 登录测试 package main impor 阅读全文
posted @ 2021-07-10 20:56 沧海一声笑rush 阅读(173) 评论(0) 推荐(0) 编辑
摘要: # MySQL的结构 ![](https://img2020.cnblogs.com/blog/1979227/202107/1979227-20210731131055833-2025587716.png) # MySQL数据引擎 InnoDB 和 MyISam 的区别 ### 事务方面 `Inn 阅读全文
posted @ 2021-07-10 15:21 沧海一声笑rush 阅读(196) 评论(0) 推荐(0) 编辑
摘要: # 锁 ## 排他锁和共享锁(按照锁的属性分) - 排他锁 ,也叫 写锁 简称 `X锁`,即事务 A 读数据对象加上 `X锁`以后,只能有事务 A 完成读取和修改操作,其他任何事物在此期间,都不能再加任何类型的锁,直到锁释放为停止。 - 共享锁, 又叫 读锁,简称`S锁`,即事务 A 可以对对象添加 阅读全文
posted @ 2021-07-10 00:27 沧海一声笑rush 阅读(59) 评论(0) 推荐(0) 编辑
摘要: redis 雪崩、穿透、击穿的区别 这都是涉及到服务器的高可用的部分。他们之间的区别如下 雪崩:同一时刻,大量的key 过期 穿透:就是访问的 redis 里面都没有,直接 击穿:某一个热点的 key 突然过期了,所有的请求都打到了 mysql 上 缓存雪崩 产生雪崩的是指一个时间段内,大量的key 阅读全文
posted @ 2021-07-09 19:24 沧海一声笑rush 阅读(872) 评论(0) 推荐(0) 编辑
摘要: MySQL数据库(使用原始包) 尝试连接 package main import ( "database/sql" // sql接口 "fmt" _ "github.com/go-sql-driver/mysql" //使用了 init() 方法 "time" ) var db *sql.DB fu 阅读全文
posted @ 2021-07-08 19:38 沧海一声笑rush 阅读(216) 评论(0) 推荐(0) 编辑
摘要: ## 创建、增、删、改 ### 创建数据库和表 ```sql create database school; #创建数据库 use school; #使用数据库 ### 创建班级表 ,注意最后一行没有逗号 CREATE TABLE `school`.`class` ( `id` int NOT NU 阅读全文
posted @ 2021-07-08 03:38 沧海一声笑rush 阅读(80) 评论(0) 推荐(0) 编辑
摘要: DockerFile 构建一个简单的镜像 # 可以通过冒号添加引用 FROM alpine # 在哪个目录下工作 WORKDIR /app # 把src下的文件,复制到 workdir 中 ,Add可以使用url COPY src/ /app # 将echo复制到 1.txt下 # 构建的时候执行的 阅读全文
posted @ 2021-07-06 21:57 沧海一声笑rush 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 一.历史原因 go发展史上采用过的一些方法 go 1.3 之前使用标记清除 go 1.5 三色标记法 go 1.8 三色标记法 + 混合写屏障机制 垃圾回收设计的名词 自动释放 垃圾回收 三色标记法 内存管理 STW(stop the world) 全部停止执行 标记清除法 标记清除法过程 暂停程序 阅读全文
posted @ 2021-07-04 21:26 沧海一声笑rush 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 镜像概念 解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。 Docker 本身就是一个容器运载体,我们把应用程序和配置依赖打包形成一个可交付的运行环境,这个打包好的运行环境就是 image 镜像文件,只有通过这个文件才能形成 docker 容器, image 文件可 阅读全文
posted @ 2021-07-04 21:24 沧海一声笑rush 阅读(71) 评论(0) 推荐(0) 编辑
摘要: Socket 编程 服务器端代码 package main import ( "fmt" "net" ) func processConn(conn net.Conn) { // 与客户端通信 for { var tmp [128]byte n, err := conn.Read(tmp[:]) i 阅读全文
posted @ 2021-07-04 16:00 沧海一声笑rush 阅读(150) 评论(0) 推荐(0) 编辑
摘要: # 索引的数据结构 索引是一种排好序的数据结构,比如排好序的二叉树, ### 几种可供选择的索引树 - 二叉树 - 红黑树 - Hash 索引 - B+ 树 ## B树和B+树的特点 **B树的特点:** 1. 节点排序 2. 一个节点可以存多个元素,多个元素也是排好序的。 **B+树的特点:** 阅读全文
posted @ 2021-07-04 00:58 沧海一声笑rush 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 内存空间在逻辑上分为三部分,代码区,静态变量区,动态数据区,其中动态数据区又分为堆区和栈区 阅读全文
posted @ 2021-07-01 17:03 沧海一声笑rush 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 一. Golang协程调度器得由来 1.1多线程和多进程带来的弊端 以单核操作系统为例,根据时间片轮转机制,不同的线程就要不断的切换,那么 线程的数量越多,切换成本也就越大,也就越浪费,同样,多线程随着同步竞争(如锁、竞争资源冲突等),让开发变得越来越复杂 简单点来说,携程就是用户级的多线程。 而且 阅读全文
posted @ 2021-07-01 14:36 沧海一声笑rush 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 文章目录 一. Golang协程调度器得由来1.1多线程和多进程带来的弊端1.2 Go 怎么做的? 二. Goroutine调度... 阅读全文
posted @ 2021-06-30 20:46 沧海一声笑rush 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 文章目录 一. map 基础操作前提:键不重复,可哈希 二.原理1.1 hash的基本存储原理1.2 Map的整体存储... 阅读全文
posted @ 2021-06-29 21:01 沧海一声笑rush 阅读(150) 评论(0) 推荐(0) 编辑
摘要: apt: Advanced Packaging Tool 高级包装工具cp: Copy file 复制文件cat: Concate... 阅读全文
posted @ 2021-06-24 13:29 沧海一声笑rush 阅读(38) 评论(0) 推荐(0) 编辑