笔记
开心码农1号
我很懒,我不想添加简介!
展开
-
Git命令
git merge A:将A分支merge到当前分支;1、如果A分支包含了当前分支的所有历史记录,那么可以快速合并成功。2、如果A分支没有包含当前分支的所有历史记录,那就就有可能产生冲突,merger失败:解决:(1):get diff 冲突文件,找到冲突的地方,编辑冲突文件,删除冲突标志,解决和同事商量冲突代码。git commit直接提交(注意:git commit 后面不要带文件),就可以解决merge冲突,完成merge合并。...原创 2021-07-27 19:03:46 · 81 阅读 · 0 评论 -
mysql事务操作
Mysql数据库知识事务基本要素(acid):1、原子性(atomicity):事务开始后,所有操作要么全部做完,要么全部不做,如果中间出错,会回滚到事务开始前的状态,不会停滞在中间环节。2、一致性(consistency)事务开始结束后,数据库完整性没有破坏,如a向b转账,不可能a扣了钱,b却没有收到。3、隔离性(isolation)同一时间,只允许一个事务请求同一个数据。不同事务间彼此没有干扰。4、持久性(durability)事务完成后,事务对数据库的所有更新将被保存到数据库,不可回原创 2021-07-07 16:08:55 · 162 阅读 · 0 评论 -
堆、栈的理解
一般情况下,全局变量保存在堆中,局部变量及函数保存在栈中,go的局部变量则不一样具体:go局部变量:go语言会做逃逸分析,分析局部变量的作用域是否逃出函数作用域,如果没有,那就放在栈上,如果超出了函数作用域,那就自动放到堆上。go有强大的垃圾回收机制,不用担心内心溢出,程序员不用担心内存未释放,只关心程序逻辑本身。对于new出来的局部变量,也不一定放在堆上,而是根据其是否超出函数作用域来判断是否放在堆上还是栈上,这点跟C语言不同。go全局变量:全局变量的生命周期属于整个包,全局变量既不在堆上也不在栈上原创 2021-07-06 09:40:31 · 229 阅读 · 0 评论 -
go slice切片的理解
切片slice是对数组连续片段的引用,所以切片是一个引用类型。切片的结果定义是一个结构体:type slice struct{array unsafe.Pointerlen intcap int}array是指向数组的指针,cap总是大于等于len的。利用构造底层数据结构体,来造个切片:1、可以go内存地址中构造个切片:构造个虚拟结构体,把切片数据结果拼出来。s := ([]byte)(unsafe.Pointer(&结构体对象))2、还可以利用反射,go的反射中就存在一原创 2021-07-02 15:04:08 · 144 阅读 · 0 评论 -
Go读写锁和互斥锁
go读写锁:读写锁可以让多个读操作并发,同时读取,但是对于写操作是完全互斥的,也就是说,当一个goroutinue进行写操作时,其他goroutine既不能进行读操作,也不能进行写操作。1:读锁可以被任意多个读goroutine持有,当一个goroutine获取读锁后,其他goroutine也可以获取到读锁,但如果这时候有goroutine尝试获取写锁,则获取写锁的线程将会被阻塞,这时候如果再有goroutine尝试获取读锁,则也会被阻塞。2:当一个goroutine获取写锁后,其他获取读锁/写锁的线原创 2021-07-02 09:41:45 · 1967 阅读 · 0 评论 -
指针详解及unsafe.Pointer、uintptr转换
变量的本质是对一块内存空间的命名,我们通过引用变量名来使用这块内存空间存储的值,而指针则用来指向这些变量值所在的内存地址值。变量值所在的内存地址的值不等于内存地址存储的变量值。如果一个变量是指针类型,那么则可以用这个变量存储指针类型的值。通过*指针变量来获取指针指向内存地址的变量值,我们把这种引用称之为间接引用。切片类型:由指向数组起始元素的指针、元素数量和容量组成,所以切片与数组不同,是引用类型,而非值类型。指针传值之所以节省内存空间:是因为指针指向的内存地址的大小是固定的,32位机器占4字节原创 2021-07-02 09:21:42 · 761 阅读 · 0 评论 -
微服务
概念:1:是一种架构风格,大型复杂软件应用由一个或多个微服务组成。各个微服务可被独立部署,微服务之间是松耦合,每个微服务仅关注一个业务模块。2:微服务指开发单个小型的但有业务功能的服务,都有自己的处理和轻量通信机制,可部署在单个或多个服务器上。3:它是松耦合的,有一定的有界上下文的面向服务架构,修改某个业务功能,只需要修改对应的微服务,其他微服务不需要修改。...原创 2021-06-30 17:22:11 · 87 阅读 · 0 评论 -
Go各种占位符详解
引用类型:原创 2021-06-21 11:04:51 · 2944 阅读 · 0 评论 -
进程、线程、协程的区别
1. 进程通俗的讲,程序运行起来就是进程每个进程都有自己的独立内存空间,拥有自己独立的地址空间、独立的堆和栈,既不共享堆,亦不共享栈。进程由操作系统调度原创 2021-06-04 01:15:10 · 827 阅读 · 0 评论 -
关系形数据库与非关系数据库
一、关系型数据库有:mysql、oracle、sql server等原创 2021-05-06 11:43:15 · 76 阅读 · 0 评论