对码当歌,猿生几何?
#最热 #最新

GO值复制

GO语言本身是值传递,先给结论,再看case.标量类型是赋值是值传递,如int float string数组和结构体赋值也是值传递,如[2]string  struct{}指针赋值也是值传递,只不过传递的是地址而已map和slice赋值是引用传递,如map[string][string] []string字符串遍历,得到值是字符,索引是不连续的。如下标量类型func TestInt(t *testing.T) {    num1 := 123    num2 := num1    num1 = 456    fmt.Println(& 查看全文

goland The selected directory is not a valid home for Go SDK 解决

The selected directory is not a valid home for Go SDK 解决方案Navigate to the Go SDK root (execute go env and find GOROOT entry), then navigate to src/runtime/internal/sys inside the Go SDK root.Edit zversion.go file and add an entry on a new line: const theVersion = `go1.17`zversion.go// Code generated by go too 查看全文

MySQL的事务隔离级别及MVCC机制

MySQL实现了四种隔离级别,分别是读未提交(RU)、读已提交(RC)、可重复读(RR)和串行化读(SERIALIZABLE)。读未提交(RU):不管其他事务是否提交更新都可以实时看到最新数据,隔离级别最低,脏读的问题没有解决,更别说可重复读和幻读了。读已提交(RC):只可以看到其他事务已经提交事务后的更新,解决了脏读的问题,但没有解决可重复读和幻读。可重复读(RR):在事务中的任何时间点看查询到的数据都是一样的,解决了脏读和可重复读的问题,但没有解决幻读的问题。串行化读(SERIALIZABLE)所有数据库请求都只用一个线程执行,不管读写并发的事情,所以在这个隔离级别下隔离效果最好,性能最差。相关概念解析脏读:同时两个事务A和B,  A修改了记录1 ,同时B读取了记录1,此时A记录回滚,那么B读到的就是一条未提交的脏数据,RU级别就会出现 查看全文

redis整数集合数据结构源码解析

整数集合是集合键的底层实现之一,当一个集合只包含整数时,redis会使用整数集合作为集合的底层实现,整数集合类型会尽可能的节约内存空间,只有新插入的数据大于encoding时,才会升级集合类型。数据结构整数集合的定义包含三个部分,encoding表示集合元素的数据类型,length表示集合包含多少元素,contents存储集合成员的一段连续的地址空间。1、整数集合typedef struct intset {     // 集合的编码,可以为16 32 64位的整数类型     uint32_t encoding;     // 集合长度  & 查看全文

redis跳跃表数据结构源码解析

跳跃表,是一种有序的数据结构,可以在一个节点中维护多个执行其他节点的指针,从而快速访问其他节点。大多数情况下跳跃表的效率可以跟平衡树相媲美,并且跳跃表的实现相对简单,redis使用跳跃表做有序集合的底层实现。数据结构redis的跳跃表包含头尾指针、跳跃表的长度以及维护的跳跃表中的最大层数。跳跃表的接点由key、score、前驱节点以及多个后继节点的指针组成。1、跳跃表typedef struct zskiplist {     // 头节点和尾节点     struct zskiplistNode *header, *tail;     // 跳跃表的长 查看全文

redis字典数据结构源码解析

字典,又称关联数组或者映射,是用于保存键值对的数据结构,字典中的每一个key都是唯一的。通常用作hash类型和string类型的数据存储结构。数据结构redis的字典是由两张hash表组成的,以用户字典的扩容,hash表的基本数据类型是hash表节点。具体定义如下。1、字典typedef struct dict {     dictType *type;     // 保存了type中需要用的私有数据     void *privdata;     // ht[0]用来正常访问,ht[1]用来rehashing   查看全文

redis链表数据结构及源码解析

链表在redis中使用非常频繁,常用的list数据就是使用链表数据结构,除此之外,还有发布与订阅、监视器也用到了链表。数据结构redis的链表由多个链表节点组成,每个链表节点分别保存了前驱和后继节点,形成了一个双向链表。最终的链表会包含一个头节点、尾节点以及链表长度。具体定义如下。1、链表节点typedef struct listNode {     // 前驱节点     struct listNode *prev;     // 后继节点     struct listNode *next; &nbs 查看全文

redis字符串——sds源码解析

redis没有直接使用C语言传统的字符串(以空字符结尾的字符串数组),而是自己构建了一种为简单动态字符串(simple dynamic strring, SDS), 并将SDS作为redis默认的字符串表示。数据结构redis定义的SDS由协议头和字符串组成,根据字符串的长度分为五种不同类型的字符串,不同长度的字符串分别使用不用的类型。header组成header = len  + alloc  + flag + bufheader释义len字符串的长度alloc字符串实际占用的存储空间(不包含header和null)flag字符串类型, sdshdr5 ... sdshdr64buf字符串指针SDS类型类型字符串长度备注sdshdr50 - 31空字符串使用sdshdr8表示sdshdr832 - 255sdshdr1 查看全文
加载更多

js使用protobuf——支持web端交互使用

ProtoBuf简介Protocol Buffer的简称。Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式,适合用于数据存储,作为不同应用、语言之间相互通信的数据交换格式,序列化后的数据为二进制数据(pb格式的数据),类比XML、JSON。protobuf最先支持C++ C# Go JAVA Python PHP语言,最近发布的代码包又支持了JavaScript,今天就来谈下,js怎么使用protobuf。官网地址 https://developers.google.com/protocol-buffers/安装protobuf编译器从github上下载编译器源码安装包,https://github.com/protocolbuffers/protobuf/releases 编译安装, 目前仅支持unix类型的系统。定义 查看全文

分享345本关于java的pdf电子书,附书单和下载链接

1 21天学通JAVA 第6版 链接:https://pan.baidu.com/s/1HrK-UaWrBLwYqYThy_oYVQ 密码:q2vx2 EFFECTIVE JAVA  第2版 链接:https://pan.baidu.com/s/1rKMWRqGjY-sZfzZi_FJ1Kw 密码:97rs3 Effective_Java_中文版 链接:https://pan.baidu.com/s/18rS4QvzU_D7WeT8IqNpNZg 密码:mh614 HEAD FIRST JAVA(中文版)第二版 链接:https://pan.baidu.com/s/1SFz6DicXxZzaVl9YhepWAg 密码:r2of5 JAVA 8 编程参考官方教程(第9版) 链接:https://pan.baidu.com/s/1IS-V5pJ 查看全文

Ubuntu安装L2TP VPN服务器和客户端

一、服务器端一键安装l2tp,参考网址 https://teddysun.com/448.html wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh  chmod +x l2tp.sh   ./l2tp.sh安装的时候IP-Range保持默认,PSK为预授权秘钥(预共享秘钥),用户名和密码都要设置并记住,相当于一个账号。然后再次验证ipsec(L2TP)并重启相关服务service ipsec restart   service xl2tpd restart   查看全文

多种机器学习算法优缺点总结

  1、分类算法2、回归算法3、集成算法决策树(Decision Tree)支持向量机(SVM)K近邻(kNN,k-NearestNeighbor)朴素贝叶斯逻辑回归线性回归多项式回归Adaboost算法GBDT(梯度提升决策树)XGBoost随机森林a、bagging(Bootstrapped Aggregation)b、boosting算法1、聚类算法:Kmeans2、关联规则算法:Apriori一、无监督算法:二、有监督算法一、无监督算法:1、聚类算法:KmeansKmeans中心思想:事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定 查看全文

(新手上路)nginx运行报错:could not open error log file和mkdir fail

问题:nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) 2018/08/12 00:01:05 [emerg] 1977#0: mkdir() "/usr/local/nginx/client_body_temp" failed (13: Permission denied)分析:error.log 日志记录文件 查看全文

2020最新phpstorm激活码

jetbrains全家桶的激活码,这个激活码肯定是没问题的,亲测可用!分享给大家,免得再浪费时间去找老半天。激活码1812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mIIOaOiOadgyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9LHsiY29kZSI6IkF 查看全文

hive默认分隔符

hive的默认分割符,hive使用不可见的字符作为分割符,如下表。分隔符描述\n行分隔符^A字段分隔符,八进制表示为\001, ^Barray或struct中为元素分隔符,map中为key-value分隔符\002^Cmap中为key和value间的分隔符\003php中使用是使用分隔符的八进制表示方式,并使用双引号引住。eg,implode("\001", $arrFields);vim中:set list可以查看到hive数据文件的默认分隔符显示指定创建表时的默认分割符。eg,create EXTERNAL table IF NOT EXISTS tbl_test (   id   &nb 查看全文

Python 求1~n的累加和

版权声明:。          https://blog.csdn.net/weixin_43778797/article/details/90243289n = int(input("请输入要求累加到的数:")) sum = 0 for i in range(n+1):  # 实际遍历到n     sum += i print(sum) 查看全文
加载更多