【Go笔记】哈希表 简介 map又称哈希表,是一种KV结构,分散存储在桶中 第一步计算键的哈希值,其结果与桶的数量无关 第二步通过取模得到下标 通常认为map是一种O(1)时间复杂度的操作,通过一个键快速查找到一个值 哈希碰撞与解决方法 哈希碰撞即不同的键通过哈希函数可能产生相同的哈希值,可能会导致同一个桶中可能存在多个元素 有两种主要策略可以避免哈希碰撞:拉链法以及开放寻址法 ¶拉链法 即将同一个哈希桶( 2025-08-13 go-note #Go笔记
【Go笔记】字符串 字符串的本质 一般的字符串分为编译时指定长度和动态长度两种,Go使用的是前者 字符串的终止有两种方式,一种是C中的隐式申明,以\0结尾;一种是Go中的显示声明 Go中的字符串本质上是字符数组,可以用下标访问,但是不能被修改 空间方面,一般字符占1字节,特殊字符如中文,日文等占3个字符 符文类型 (rune) 设计者认为,因为有些字符非常相似,用于表示字符串可能会有歧义,而其不同的本质是编码之 2025-08-12 go-note #Go笔记
【Go笔记】数组与切片 数组的特性 声明时需要确定类型和长度,可以不指定长度,在编译时推断 声明的同时可以赋值 Go中数组在赋值和函数调用时的形参都是值复制,是两个完全不同的数组 数组在复制之后是两个不同的数组,涉及到内存的复制操作,可能需要考虑性能开销,是深复制 数组的底层原理 数组在编译时就要确认长度和类型 AST阶段的数据类型为TARRAY,内部的Arraystruct存储了数组的类型及大小,新数组的Op操作 2025-08-12 go-note #Go笔记
【Go笔记】类型 类型推断 ¶特性 已经确定的类型不能进行隐式转化,因此类型被推断出来之后就不能隐式转换了 不允许对变量标识符引用的值进行转换,如b := a + 1中,a必须和b的类型相同 int和int64,float32和float64是四种不同的类型 ¶原理 在词法解析阶段,右边的常量会被解析为一个未定义的类型 全是0~9的就是整数,字符中有小数点的就是浮点数,字符串的首字符为"或',识别0 2025-08-10 go-note #Go笔记
【Go笔记】浮点数 定点数和浮点数 定点数用固定的大小表示整数部分和小数部分 浮点数使用以2为底的科学计数法来表示和存储一个小数 使用IEEE-754浮点数标准来存储小数 IEEE-754 分为系数、底数与指数三个部分 单精度(32位) - 符号1位、指数8位、小数23位、偏移量127 双精度(64位) - 符号1位、指数11位、小数52位、偏移量1023 使用以2为底的科学计数法,系数的整数部分一定是1,所以 2025-08-09 go-note #Go笔记
【Go笔记】编译器 三段式结构 ¶前端 处理,理解,解析源程序 进行精准的语义表达 ¶IR(中间阶段) 多个IR,多种数据结构表示代码 识别冗余代码,识别内存逃逸等代码优化工作 需要前端记录的各种细节 ¶后端 生成特定目标机器的最终产物 如可执行文件,obj文件,汇编语言等 语法解析 ¶自上而下的递归下降算法 (Top-Down Recursive-Descent) https://www.youtub 2025-08-08 go-note #Go笔记
【SE笔记】一些Jvav复习的东西 数据类型 & 运算符 float型字符必须在变量最后面加上F或f 高精度可以用java.math.BigDecimal(没讲) 数组 定义 - double[] marks,double [5]marks, marks = new double[5], marks = new double[]{1, 2, 3, 4, 5} public static void a 2025-05-21 se-note #SE笔记
【前端笔记】CSS的各种选择器们 图片来源:表严肃https://biaoyansu.com/ 这上面的课讲得挺好的,建议去听一听。 id选择器 123#id1 { ...} 元素选择器 123h1 { ...} 类选择器 123.class { ...} 属性选择器 1234/* 以botton的属性为例 */[title="abc"] { 2025-05-17 front-end #前端笔记
【SE笔记】一些地方的网络代理设置 由于众所周知的原因,下载一些资源的时候需要代理,下面是几种常见情况的代理设置 终端 macOS终端和Windows终端是一样的。首先打开命令行的rc文件,macOS一般为~/.zshrc(用的zsh环境),Linux一般为~/.bashrc(用的bash环境),没有就新建一个。在文件末尾加上以下配置 12alias proxy='export all_proxy=socks5://127 2025-05-17 se-note #SE笔记
【Qt笔记】C++大作业项目报告 项目地址 Github:https://github.com/stephen-zeng/Mobile-Mouse/ Gitee:https://github.com/stephen-zeng/Mobile-Mouse/ QQ空间吃链接是真的蚌埠住🤣 调用的框架&编译框架 Qt - 项目大框架,负责调用蓝牙通信,处理传感器数据,连接前后端 GUI - 使用QtQuick,类CSS与JS语 2025-05-17 ml-note #Qt笔记