01 2024 档案
摘要:基本语法 var 变量名 map[key-type]value-type 例如 var a map[int]string->key是int类型,value是string类型。 注意:通常key为int,string类型,而slice,map和function不可以作为Key,因为这几个没法用==来判
阅读全文
摘要:切片的基本介绍: 切片的英文名字是slice,切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。 切片的使用和数组类似,遍历,访问切片元素,切片长度都跟数组是一样的。 切片的长度是可以变化的,因此切片是一个可以动态变化的数组。 切片定义的语法: var 切片名 []类型 比
阅读全文
摘要:数组 数组是可以存放多个同一类型的数据。在GO中,数组是值类型。也是一种数据结构。 数组的简单案例: func main() { //定义一个数组 var hens [3]float64 //给数组每一个元素赋值 从下标为0开始 共3个元素 hens[0] = 1.0 hens[1] = 2.0 h
阅读全文
摘要:GO中引入的处理方式为:defer,panic,recover。GO中可以抛出一个panic的异常,然后再defer中通过recover捕获这个异常,然后正常处理。 func test() { //使用defer+recover 捕获异常 test函数出栈后defer修饰的函数会执行 defer f
阅读全文
摘要:explain中的每个列的信息: SET SESSION optimizer_switch='derived_merge=off'; #关闭mysql5.7新特性对衍生表的合并优化 EXPLAIN SELECT (SELECT 1 FROM actor WHERE id = 1) FROM (SEL
阅读全文
摘要:两种传递方式: 值传递:基本数据类型int系列,float系列,bool,string,数组,结构体struct。(值类型) 引用传递:指针,slice切片,map,chan管道,interface等都是引用传递。(引用类型) 其实不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传
阅读全文
摘要:闭包基本介绍: 闭包就是一个函数和与其相关的引用环境组合的一个整体。 package main import "fmt" func main() { //使用AddUpper函数 //当反复调用f函数,因为n是初始化一次,因此每调用一次就进行累计。 //我们要搞清楚闭包的关键,就是要分析出返回的函数
阅读全文
摘要:init函数: 每一个源文件中都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是init会在Main函数之前被调用。通常可以在init函数中完成初始化工作。 import "fmt" func main() { fmt.Println("main函数")//后输出
阅读全文
摘要:INNODB支持事务,而MYISAM不支持事务。 INNODB支持外键,而MYISAM不支持外键。 MYISAM中B+Tree的数据结构存储的内容是实际数据的地址值,它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。 InnoDB 中 B+ 树的数据结构中存储
阅读全文
摘要:索引是帮助MySql高效获取数据的排好序的数据结构。(B+tree) 为何是B+Tree这个数据结构呢? 二叉树:对于单边增值的数据会造成数据倾斜,最终导致数据查询效率不高。 红黑树:对于数据量大的时候树的高度会很高,也会导致查找次数变高。 B-Tree 叶节点具有相同的深度,叶节点的指针为空。 所
阅读全文
摘要:Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里): java ‐Xms2048M ‐Xmx2048M ‐Xmn1024M ‐Xss512K ‐XX:MetaspaceSize=256M ‐XX:MaxMetaspaceSize=256
阅读全文
摘要:func 函数名(参数列表{参数名1 类型,参数名2,类型})(返回值列表{返回值名1 类型,返回值名2 类型}){ 方法体 } 细节梳理: 函数的形参列表可以是多个,返回值列表也可以是多个。 形参列表和返回值列表的数据类型可以是值类型和引用类型。 函数的命名遵循标识符命名规范,首字母不能是数字,首
阅读全文
摘要:本地方法栈:加载nativ修饰的方法。(线程独享) java栈(线程栈):存储8种基本类型的变量+对象的引用变量+实例方法,它的生命期是跟随线程的生命期。每个方法在栈中已栈帧的形式存在。(线程独享) 程序计数器:存储指向下一条指令的地址。(线程独享) 方法区(元空间):线程共享的运行时内存区域,存储
阅读全文
摘要:自定义类加载器只需要继承java.lang.ClassLoader类,该类有两个核心方法,一个是loadClass(String, boolean),实现了双亲委派机制,还有一个方法是findClass,默认实现是空方法,所以我们自定义类加载器主要是重写findClass方法。 public cla
阅读全文
摘要:引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等,java中无法获取因为它是由c++编写的。 扩展了加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包。 应用程序类加载器:负责加载ClassPa
阅读全文
摘要:加载:只有使用的类才会被加载例如调用Main方法或者new对象等等。这个阶段会把类的字节码文件读取到JVM虚拟机中然后生成对应的java.lang.Class对象,作为这个类的访问入口。 验证:校验字节码的文件的正确性。 准备:给类的静态变量初始化内存,并赋予默认值。 解析:将符号引用替换成直接引用
阅读全文