自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 base64Captcha 生成验证码

验证码的生成与校验使用了 github.com/mojocn/base64Captcha官方文档:https://mojotv.cn/go/refactor-base64-captcha。

2022-08-18 16:30:56 1806

原创 HTTP、HTTPS、Session Cookie与JWT

HTTP各版本HTTP的特点:无状态:对事物处理没有“记忆”能力通信使用明文,请求和响应不会对通信方进行确认、无法保护数据的完整性基于请求和响应:基本的特性,由客户端发起请求,服务端响应简单快速、灵活缺点:通信使用明文,内容可能被窃听不验证通信方身份,可能遭遇伪装HTTP/1.0默认使用短连接;每次请求都需要建立TCP连接,即每次发送数据都需要三次握手、四次挥手,传输完成立即断开,开销大,效率低。可以设置 Connection:keep-alive,强制开启长连接错误状态响应

2022-04-24 16:02:51 2392

原创 浅谈三次握手、四次挥手

先了解下跟三次握手、四次挥手相关的TCP标志位SYN:同步序号,用来建立连接,SYN=1,ACK=0:连接请求报文段SYN=1,ACK=1:同意连接ACK:确认序号,ACK=1确认号有效,ACK=0确认号无效Sequence number(seq):顺序号,发送数据中第一个字节的序列号Acknowledge number(ack):确认号,响应前面seq,即seq+1三次握手第一次握手(发送连接请求报文SYN=1,ACK=0,seq=x),发送完毕后,客户端就进入S

2022-04-17 16:30:44 2312

原创 MySQL解决幻读详解

简单来说就是通过mvcc + next-key locks 防止幻读幻读是什么?当前事务读取了一个范围的记录,另一个事务在该范围内插入了新记录,当前事务再次读取该范围内的记录就会发现新插入的记录,这就是幻读以下MySQL的隔离界别都是可重复读(RR)mvcc与next-key分别在什么情况下起作用?在快照读的情况下,会通过mvcc来避免幻读在当前读的情况下,会通过next-key来避免幻读快照读与当前读快照读:所有普通的select语句都算快照读,它并不会给表中任何记录做加锁操作,其

2022-04-03 14:43:47 2716 1

原创 蓝桥杯 子串分值问题详解

题目地址:https://www.lanqiao.cn/problems/499/learning/根据题意,遇到重复的字母不计,只有不同的字母才能+1,最直接的想法就是暴力求解,因为都是小写字母,可以用一个数组来记录字母出现的次数。出现次数为1,就+1次数为2,说明出现了该字母两次,-1(相当于把第一步加的减掉)其它情况不进行操作(出现三次是0,四次还是0)结果就超时了。。。。。public class Main { public static void main(String[.

2022-03-21 16:58:48 519 1

原创 go中字节切片转换字符串乱码问题

如果需要将int类型变量的值加入到字节切片,byte()转换后一定要加字符’0’,不要傻傻的只用byte()转换!!!练习算法的时候,有时候需要将字节切片转换字符串如下代码:func main() { test1 := []byte{} test1 = append(test1, 't', 'e', 's', 't', byte(1)) fmt.Println(string(test1)) }本意是想将 ‘t’, ‘e’, ‘s’, ‘t’, ‘1’ 加入切片,然后转换成字符串,结

2022-03-12 15:41:18 1889

原创 go切片扩容遇到的一些问题

大家都知道切片的扩容规则:如果原Slice容量小于1024,则新Slice容量将扩大为原来的2倍如果原Slice容量大于等于1024,则新Slice容量将扩大为原来的1.25倍当我去实践的时候,发现有一些怪异如下:func main() { slice := make([]int, 1024) slice = append(slice, 1) fmt.Println(len(slice), cap(slice)) // 1025 1344}超过1024,不是扩容1.25吗,那cap

2022-03-12 11:07:01 1355

原创 数据结构 二叉树的遍历(go实现)

定义:二叉树是指树中节点的度不大于2(只能0、1、2)的有序树如下图就是一个二叉树:下面是关于二叉树遍历的代码实现。定义二叉树type TreeNode struct { Val int Left *TreeNode Right *TreeNode}遍历二叉树遍历二叉树有四种方式:先序遍历:先访问跟根节点,再访问左子树,最后访问右子树中序遍历:先访问跟左子树,再访问根节点,最后访问右子树后序遍历:先访问跟左子树,再访问右子树,最后访问根节点层次遍历:每一层从左到右访问每一个

2022-03-11 14:12:01 442

原创 数据结构 链表(go实现)

单链表// 定义结点type Node struct { val int next *Node}// 定义链表type MyLinkedList struct { dummy *Node}// 初始化链表func Constructor() MyLinkedList { return MyLinkedList{ &Node{}, }}// 获取链表中第 index(从0开始)个节点的值。如果索引无效,则返回-1func (this *MyLinked

2022-03-07 19:12:34 527

原创 回溯算法(组合问题)总结

组合问题:n个数里按一定规则找出k个数的集合(大多都是这样问)比如leetcode组合这道题题目要求:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例2:输入:n = 1, k = 1输出:[[1]]以实例1为例,这道题就是在 1,2,3,4(...

2022-02-23 11:01:29 331 1

原创 MySQL下载,并用eclipse连接

目录一.安装MySQL1.下载2.配置二.eclipse连接mysql1.下载JDBC2.连接一.安装MySQL1.下载先来到官网 https://www.mysql.com/ 接着按下图操作就可以完成下载2.配置win+R 输入 cmd cirl+shift 点击回车 打开windows命令处理程序输入 cd /d mysql/bin目录的地址输入 mysql --in...

2021-08-24 10:46:22 515

原创 vue组件通信

目录一.父子通信(props, $emit)(1)父传子:子组件实例上用v-bind绑定父组件数据,在组件上用props接收(2) 子传父:子组件通过$emit传参数,父组件v-on绑定事件​二.$attrs 和 $listerens(1)祖先传给后代($attrs)(2)后代传给祖先($listerens)三.provide 和inject四.&refs ,$parent ,$children(1)$refs(2) $children(3) $paren..

2021-08-19 20:38:18 179

原创 vue cli安装以及使用

在下载使用vue cli之前,需要下载node.jshttps://www.runoob.com/nodejs/nodejs-install-setup.html(菜鸟教程很详细)下载好之后就可以下载 vue cli了windows+R 输入 cmd打开之后输入 npm install vue-cli -g就开始安装了,如果速度太慢的话 重新输入 npm install -g cnpm --registry=https://registry.npm.t...

2021-07-26 21:29:09 123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除