- 博客(155)
- 收藏
- 关注
原创 golang接口
golang接口是一个和的集合,定义了对象的行为,不指定实现。只要一个类型定义了接口全部的方法,就可被认为是实现接口**动态类型:**实现接口的具体数据类型**动态值:**实现接口的数据的值或者引用。
2025-01-21 23:14:28
200
原创 Mysql InnoDB存储引擎中聚簇索引和非聚簇索引的区别
通过非聚簇索引查找时,可以得到主键如果需要的数据已找到——覆盖索引没找到,通过主键到聚簇索引中找——回表。
2024-12-24 20:58:53
481
原创 常见请求头
Cookie 是一个小型数据片段,服务器在用户浏览器上存储的,用于维护会话状态、存储用户偏好、跟踪用户行为等。:用于指示客户端首选使用HTTPS而不是HTTP来进行请求。:指示当前请求的来源页面,即用户是从哪个页面点击链接来到当前页面的。keep-alive:保持TCP连接打开,允许在同一连接上发送多个请求/响应对,这样可以减少连接的建立和关闭的开销。:指定请求的目标主机和端口号。:用于标识发出请求的客户端应用程序。close:指示在当前的请求/响应对完成后关闭TCP连接。
2024-05-23 15:46:14
290
原创 coredns状态一直为ContainerCreating,并且报错 failed to find plugin “flannel“ in path [/opt/cni/bin]]
github下载地址:https://github.com/containernetworking/plugins/releases/tag/v0.8.6。(在1.0.0版本后CNI Plugins中没有flannel)需要下载CNI插件:CNI plugins v0.8.6。下载后通过xftp 上传到Linux /home目录解压。复制 flannel 到 /opt/cni/bin/
2024-01-31 16:06:31
972
原创 解决UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position xxx: ordinal not in range
在调用一个库时,出现了一个异常报错类似如UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128),只要该库返回结果包含中文,该结果时就会出现该异常。Python3更换为默认使用Unicode(utf-8)编码。Python2默认使用ASCII编码处理中文。
2023-03-23 17:26:20
9424
原创 golang——channel
分类channel的三种状态channel的两种类型——有缓冲,无缓冲无缓冲有缓冲2.操作1.创建2.发送3.接收4.关闭3.使用场景4.channel底层5.channel线程安全为什么是线程安全的如何实现线程安全6.channel控制goroutine并发执行顺序7.channel共享内存的优缺点8.channel发送和接收什么时候会死锁
2022-10-07 22:09:10
3887
原创 golang——方法和函数
使用指针类型可以避免在每次调用方法时复制该值,如果值的类型为大型结构体时,会更加高效。语法糖:如果实现了接受者为值的方法,会隐含的实现一个接受者为指针的方法。语法糖:如果实现了接受者为指针的方法,会隐含的实现一个接受者为值的方法。无论调用者是对象还是对象指针,修改的都是对象副本,不影响调用者。无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者。指不属于任何结构体,类型的方法,即函数无接受者。使用指针类型能够修改调用者的值。
2022-10-07 16:40:57
343
原创 golang——array和slice
array和slice差别:长度可变函数传参计算数据长度的方式array长度不可变,初始化必须指定长度是值类型的,将一个数组赋值给另一个数组时,传递的是一份深拷贝,会占用额外的内存,函数内对数组元素值的修改,不会修改原数组内容数组需要遍历计算长度,时间复杂度是O(n)slice长度不固定,通过append追加元素,cap不够容纳元素时会进行扩容是引用类型的,将一个切片赋值给另一个切片,传递的是浅拷贝,函数传参操作不会拷贝整个切片,只会赋值len和cap,底层共用是同一个数组,不会
2022-10-07 10:31:12
926
原创 golang——map
1.map特点以键值对为元素的数据集合特点:1.键不能重复2.键必须可哈希(int/bool/float/string/array)3.无序快:可以直接根据键值找到数据存储的位置,而不用从前到后一一比对
2022-10-06 15:56:40
3265
原创 golang——defer
defer是Go语言提供的一种用于注册延迟调用的机制,让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。
2022-10-05 14:05:05
972
原创 golang——内存逃逸机制
1.栈上分配内存比堆中分配内存效率更高2.栈上分配的内存不需要GC处理,而堆需要3.逃逸分析目的是决定内存分配地址是栈还是堆4.逃逸分析在编译阶段完成无论变量大小,只要是指针变量都会在堆上分配,所以对于小变量使用传值(而不是传指针)效率更高参考:GOLANG-ROADMAP。
2022-10-05 10:29:28
2611
原创 Redis中常见数据结构和数据类型
即使一天产生一个亿的数据,Bitmap 占用的内存也不大,大约占 12 MB 的内存(10^8/8/1024/1024),7 天的 Bitmap 的内存开销约为 84 MB。位图,是一串连续的二进制数组(0和1),可以通过偏移量(offset)定位元素,通过最小的单位bit进行0|1的设置,表示某个元素的值或状态,时间复杂度O(1)在创建节点时,随机生成0-1的随机数,随机数小于0.25(25%概率),层数增加1层,然后继续生成下一个随机数,直到随机数>0.25结束,最终确定层数。.........
2022-08-17 14:46:46
490
原创 小于n的最大数
给一个数组nums=[5,4,8,2],给一个n=5416,让你从nums中选出一些元素,使得组成的数字是小于n的最大数。该位之前不变,该位改为小于n的该位的最大值,其余位为nums里最大值。遍历n的各位上的数,找到数组中不存在的数的最高位。如果都存在,则修改最低位。思路贪心+二分查找。......
2022-07-26 17:31:19
1736
2
原创 KMP模板——字符串匹配
时间复杂度:O(n+m)注意next数组在某个头文件里可能被用过,可能会报错,建议起名为ne// s[]是长文本,p[]是模式串,n是s的长度,m是p的长度求模式串的Next数组:for (int i = 2, j = 0; i <= m; i ++ ){ while (j && p[i] != p[j + 1]) j = ne[j]; if (p[i] == p[j + 1]) j ++ ; ne[i] = j;}// 匹配for (int
2022-07-24 17:52:26
604
原创 多线程冲突的解决——锁
多个线程可以共享该进程对应的资源,所以需要加锁保证多线程在共享资源时,只有一个线程能访问,避免因资源竞争而导致数据错乱锁的选择加锁的成本开销分析业务场景中访问共享资源的方式考虑并发访问共享资源时的冲突概率。......
2022-07-17 21:17:36
2330
原创 Mysql——2.事务
事务4个特性:原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节,而且事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样; 一致性(Consistency):数据库的完整性不会因为事务的执行而受到破坏,比如表中有一个字段为姓名,它有唯一约束,也就是表中姓名不能重复,如果一个事务对姓名字段进行了修改,但是在事务提交后,表中的姓名变得非唯一性了,这就破坏了事务的一致性要求,这时数据库就要撤销该事务,返回初始化的状态。
2022-07-10 19:40:54
591
原创 Mysql——1.索引
1.索引是什么?提到索引必须提到存储引擎(需要了解Mysql逻辑架构 1.Server层 2.存储引擎层)索引的具体实现与存储引擎相关,存储引擎负责将数据持久化在磁盘中,以及提供数据读写接口值得注意的是,记录是按行进行存储的,但存储引擎则是以数据页为单位进行读取(读取磁盘非常耗时,所以我们尽量一次读取尽可能多的数据)InnoDB数据页的默认大小为16KB(一次最少从磁盘中读取16K的内容到内存中,一次最少把内存中的16K内容刷新到磁盘中)学过操作系统,就会知道磁盘中数据页的结构和组织
2022-07-06 19:03:56
795
1
原创 git协作开发——goland
使用git的分支功能进行开发。每个人先在本地创建一个分支,可以通过命令,也可以使用goland提供的git功能,这会更加方便。然后第一次创建的分支会保存切换前分支的代码。1.先new一个分支2.此时就在test分支了,写完自己的代码后,可以执行git add,git commit,git push到远程,远程同样的会出现一个test分支3.此外,最重要的一点,要保证自己当前开发的代码是dev分支上的最新代码,不然大概率会发生冲突。例如,这是因为如果A push v2,而B 开发也是v2,但这时
2022-05-30 11:16:40
1799
1
原创 深入理解socket——在本地实现一次收发网络包
1. 怎样在本地实现一次收发网络包ipconfig查看本地ip适配器(即网卡):实现网络接口层协议的硬件和软件主要功能:对数据进行串/并传输转换; 对数据进行缓存; 实现以太网协议; 过滤功能; 同时能够实现帧的传送和接收,对帧进行封装等。这里前两个是VMware的虚拟网卡,第三个是真实的网卡得到本地ip为10.118.145.166...
2022-05-29 18:06:44
1493
原创 go mode tidy出现报错go: warning: “all“ matched no packages
可能原因:1.2.3.GO111MODULE参考中文:https://learnku.com/go/t/39086英文原文:https://dev.to/maelvls/why-is-go111module-everywhere-and-everything-about-go-modules-24k解析一开始发布的时候一开始go发布的时候是没有包管理的go get命令会根据路径,把相应的模块获取并保存在GOPATH/src也没有版本的概念,‘master‘就代表稳定的版本后来引进了G.
2022-05-17 11:20:40
9406
5
原创 gin——请求返回404原因
v1Group := r.Group("v1") { //1.添加 //前端页面填写待办事项,点击提交,会发请求到这里 //(1)从请求中把数据拿出来 //(2)存入数据库 //(3)返回响应 v1Group.POST("/bubble", func(c *gin.Context) { //(1)从请求中把数据拿出来 var todo Todo c.BindJSON(&todo) //(2)存入数据库 //err := DB.Create(&a
2022-05-16 19:54:09
3699
2
原创 go mod导入github上依赖加载缓慢,或者报错
使用mod进行依赖管理go mod initgo mod tidy如果加载缓慢,或者报错使用代理
2022-05-08 15:08:33
1772
原创 Maven导入依赖时爆红/导入依赖了却没用
问题1:大量依赖爆红把存放依赖的文件删除了重新导一下找到依赖包存放位置把local repository路径下内容全部删除,重新导入maven问题2pom.xml中<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artif
2022-04-26 03:10:59
2972
3
原创 Leetcode动态规划专题(共38道)
某一问题有很多重叠子问题每一状态一定由上一状态推导出来而贪心没有状态推导,而是直接选局部最优解决方式:确定dp数组(dp table)以及下标的含义 确定递推公式dp数组如何初始化 确定遍历顺序举例推导dp数组模拟:举例推导dp数组检查:打印dp数组1.Leetcode509. 斐波那契数class Solution {public: int fib(int n) { //第i个数的值 vector<int>n
2022-04-10 11:05:00
6464
10
原创 蓝桥31天|今天3道题Day27|C++
1.七段数码管#include <iostream>using namespace std;int g[7][7]={ {1,1,0,0,0,1,0}, {1,1,1,0,0,0,1}, {0,1,1,1,0,0,1}, {0,0,1,1,1,0,0}, {0,0,0,1,1,1,1}, {1,0,0,0,1,1,1}, {0,1,1,0,1,1,1}};bool vis[7];//是否点亮int dfs(int x){
2022-04-03 22:11:13
1371
原创 蓝桥31天|今天2道题Day26|C++
1.子串分值法一:滑动窗口O(n^2)超时#include <iostream>#include <cstring>using namespace std;const int N=1e5+10;int res[N];int st[27];char str[N];int main(){ cin>>str+1; int len=strlen(str+1); long long ans=0; for(int i=1;i<=len
2022-04-02 18:42:50
1448
1
原创 蓝桥31天|今天3道题Day25|C++
1.成绩统计#include <iostream>using namespace std;int sum;int lv1,lv2;int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ int num; scanf("%d",&num); sum++; if(num>=60)lv1++; if(num>=85)lv2++; } pr
2022-04-01 22:32:41
2355
3
原创 蓝桥31天|今天4道题Day24|C++
1.跑步锻炼#include <iostream>using namespace std;int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int week=4;bool isdate(int date){ int yyyy=date/10000; int mm=date/100%100; int dd=date%100; if(mm<1||mm>12)return false; if
2022-03-31 22:55:58
970
4
原创 蓝桥31天|今天3道题Day23|C++
1.打包二分+前缀和#include <iostream>using namespace std;const int N=1e5+10;int num[N];int s[N];int n,m;int maxx;bool check(int minl){ int num=0; for(int i=1;i<=n;i++){ int sum=0; int l=i,r=i; while(s[r]-s[l-1]&l
2022-03-30 20:03:41
2275
10
原创 蓝桥31天|今天3道题Day22|C++
1.ASC#include <iostream>using namespace std;int main(){ cout<<'L'-'A'+65; return 0;}2.排列数#include <iostream>using namespace std;const int N=510;int dp[N][N];const int mod=123456;int main(){ int n,k; scanf("%d%d
2022-03-29 16:13:50
1585
1
原创 蓝桥31天|今天3道题Day18|C++
#include <iostream>using namespace std;const int N=5e5+100;const int M=5e6+100;int prime[N],cnt;bool st[M];bool isprime(){ for(int i=2;i<M;i++){ if(cnt==100002)break; if(!st[i])prime[cnt++]=i; for(int j=0;prime[j]<=M/i;j
2022-03-26 17:28:32
1440
原创 蓝桥31天|今天4道题Day17|C++
1.距离和#include <iostream>#include <map>using namespace std;map<char,int>mp;int main(){ char t='A'; for(int i=0;i<26;i++){ mp[t]=i; t++; } string str="LANQIAO"; int len=str.size(); int ans=0; for(int i=0;i&
2022-03-24 17:57:33
2012
原创 蓝桥31天|今天4道题Day16|C++
1.金币#include <iostream>using namespace std;int main(){ int k; scanf("%d",&k); long long ans=0; int st=1,n=st,day=1; bool flag=false; while(day<=k){ while(n--){ ans+=st; //printf("%d\n",st); if(day==k)
2022-03-23 21:10:02
1479
原创 蓝桥31天|今天4道题Day15|C++
1.算式900全排列,注意输出#include <iostream>#include <vector>using namespace std;const int N=10;vector<int>ans;bool st[N];int calc(int l,int r){ int s=0; for(int i=l;i<r;i++){ s*=10; s+=ans[i]; } return s;}void check(ve
2022-03-22 20:27:57
940
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人