- 博客(381)
- 资源 (1)
- 收藏
- 关注
原创 vscode手动 安装go插件
1.vscode安装go所有插件vscode版本:1.51.0go版本:version go1.15.2 windows/amd64git客户端版本:Git-2.29.2.2-64-bit2.使用vscode自动安装需要提前安装go、vscode、git客户端,配置git环境,配置go环境,GOPATH这个环境变量 对下面的安装很重要根据go的工程目录要求(go比较奇怪,对工程目录有...
2021-04-11 11:02:22
175
原创 存储简介
存储简介简述历史存储顾名思义就是存放数据的方式,自从人类文明以来,我们可以将信息写入竹简,造纸术、活字印刷等,近代随着电子信息的发展,存储发生的变化,穿孔带,软盘,硬盘,磁盘,U盘等各种存储设备应运而生。同时各种磁盘的组合形成的磁盘阵列,可以存储更大的数据。随着海量数据的发展,数据朝向TB级,PB级,EB级的方向发展,简单的硬盘容量已经不能满足需求了,因此,出现了云存储。云存储的产品•块存...
2020-11-21 15:16:31
156
原创 2020-09-22
搭建vue开发环境的步骤在搭建vue的开发环境之前,一定一定要先下载node.js,,vue的运行是要依赖于node的npm的管理工具来实现,node可以在官网或者中文网里面下载,根据自己的电脑选择是32还是64 ,网址:http://nodejs.cn;下载下载好node之后,打开docs管理工具,先看看node安装成功了没有,输入 node -v ,回车,会输出node的...
2020-09-22 19:31:26
142
原创 实现变长数组
要实现什么函数呢?假设我们要实现一个会自动扩展的数组类,我们需要实现函数呢?先从下面 main 函数使用的功能,看看有什么函数是需要我们实现的。image输出结果:0 1 2 3 4要实现如上的功能,要做哪些事情呢?先列出来:要用动态分配的内存的方式,来存放数组元素,且需要一个指针成员变量重载赋值 = 运算符重载括号 [] 运算符重载复制构造函数实现 push_ba...
2020-07-26 11:09:13
129
原创 78中
题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets ...
2020-07-26 10:59:18
52
原创 Go 内存分配器的设计与实现
转自:Go 内存分配器的设计与实现系统设计、微服务架构和云原生技术](https://mp.weixin.qq.com/s/NgBHtBqNixfS_Qol_h8Hxw#)程序中的数据和变量都会被分配到程序所在的虚拟内存中,内存空间包含两个重要区域 — 栈区(Stack)和堆区(Heap)。函数调用的参数、返回值以及局部变量大都会被分配到栈上,这部分内存会由编译器进行管理;不同编程语言使用不同...
2020-07-19 21:59:31
73
原创 Part5
示例:package mainimport ( "fmt")func main() { // 重点1的示例。 var srcInt = int16(-255) // 请注意,之所以要执行uint16(srcInt),是因为只有这样才能得到全二进制的表示。 // 例如,fmt.Printf("%b", srcInt)将打印出"-11111111",后者是负数符号再加上srcInt的绝对值的补码。 // 而fmt.Printf("%b", uint16(srcInt))才会打印出srcI
2020-07-01 09:40:48
169
原创 Part4
变量的声明var s stringvar s2 = string("shijie")s1 := "wenxuwan"fmt.Println(s,s1,s2)第一种方式是最传统的变量声明方式,可以显式的看到变量的类型。第二种是利用go语言的类型推断,在声明s2的时候我们不需要定义s2的类型,它会根据后面表达式返回类型来自动判断s2类型第三种是在go语言的推断上加了点语法糖,只能在函数内部使用,或者写for,if,switch语句的时候用在初始化语句中来声明一些临时的变量。不能作为全局声明。
2020-07-01 09:04:33
210
原创 no copy
no copy 机制 转载Go 语言源码阅读有感:no copy 机制Golang技术分享专注于Go语言的知识分享小菜刀读Go源码时,发现一个高频注释语句“XXX must not be copied after first use“。例如sync包下的Pool、Cond、WaitGroup、Mutex、Map和atomoic.Vaule、strings.Builder等,都有该...
2020-06-30 20:30:34
83
原创 Part3
代码管理总结同一目录下面源码应该声明属于同一个代码包,而且同一个包下面的源文件之间的函数调用是可以屏蔽大小写(私有和共有接口)。源码文件声明的包的名字可以和目录不一致,但编译生成的文件的名字和父目录是一致的。如果声明的包的名字和目录的名字不一致,那么怎么引用这个包里面的接口??第一章里面写过了,go是按照文件地址寻址的。所以规则如下:import 文件夹的路径包名.接口名字()我们导入的时候肯定是文件的路径,但调用的时候要用在源码文件里面声明的package的名字。程序
2020-06-30 17:49:21
169
原创 Part2
GO语言的flag包:flag的定义:flag.String(), Bool(), Int() //这里这是列举了几个然后就是两种定义的方式:var ip = flag.Int("flagname", 1234, "help message for flagname") //ip 为指针类型,Int或者String返回的都是指针类型flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")//此处需要在外面手
2020-06-30 15:48:43
179
原创 Go简介
开发环境搭建随便学学,平时用的都是WIndows10的操作系统,就在这下面搞了。下载安装下载go安装程序,下载地址:https://golang.org/dl/ (被墙了,打不开)墙内下载地址http://www.golangtc.com/download我下的是这个:go1.9.2.windows-amd64.msi安装就下一步就好了,装完之后验证一下。默认已经把Go的路径加到环境变量中去了,所以可以直接在cmd中输入go命令执行:环境变量装完之后,我装到了D:\Go\,已经帮我们添加好了
2020-06-30 11:30:10
635
原创 Part1
Part1.GO 语言安装的时候主要有三个环境变量:GOROOT、GOPATH 和 GOBIN通过 go env 可以查看go语言的一系列的环境变量的配置.go envGOROOT:代表go的安装路径,一般你安装完go语言之后就有了。GOPATH:一个目录路径,也可以包含多个目录路径,每个目录都代表了go语言的一个“工作区”。目录下面有三个目录,src,bin,pkg。src: 用来存放源代码文件。bin: 目录里面存放的都是通过 go install 命令安装后,由 Go 命令源码文件生成
2020-06-30 11:20:34
290
原创 Go核心36讲笔记
Part1.GO 语言安装的时候主要有三个环境变量:GOROOT、GOPATH 和 GOBIN通过 go env 可以查看go语言的一系列的环境变量的配置.go envGOROOT:代表go的安装路径,一般你安装完go语言之后就有了。GOPATH:一个目录路径,也可以包含多个目录路径,每个目录都代表了go语言的一个“工作区”。目录下面有三个目录,src,bin,pkg。src : 用来存...
2020-06-30 11:18:00
59
原创 计算机是怎样跑起来的
计算机三大原则初级问题,硬件和软件的区别是什么?硬件:看得见,摸得着,真实存在的设备。软件:运行在硬件之上,计算机所执行的程序,即指令和数据。中级问题,存储字符串“中国”需要几个字节?-utf8中占3个字节,GBK中占两个字节。高级问题,什么是编码(Code)?为了便于计算机处理而及经过数字化处理的信息。计算机三大原则:1.计算机是执行输入、运算、输出的机器2.程...
2020-06-23 14:53:52
68
原创 数据结构
稀疏数组image.pngimage.pngimage.pngimage.pngimage.png代码实现:package mainimport ( "bufio" "fmt" "io" "os" "strconv" "strings")type ValNode struct { ...
2020-06-20 15:13:25
80
原创 GoAdvance
image.png指针指针就是地址,指针变量就是存储地址的变量*p : 解引用,间接引用栈帧:用来给函数运行提供内存空间,取内存于stack上。 当函数调用时,产生栈帧,函数调用结束,释放栈帧。 栈存放:局部变量,形参,内存字段描述值(栈基指针与栈顶指针)。指针使用注意: 空指针:未被初始化的指针。 ...
2020-06-13 16:43:28
153
原创 路线
超级详细Linux环境后台开发C++学习路线,已拿鹅厂offer另一篇文章面试经验:《腾讯C++后台开发面试笔试知识点总结参考笔记》整理了C++后台开发知识点,本文尝试从自身学习过程出发,介绍这些技术点的掌握途径和学习路线。工欲善其事必先利其器,好的书籍能让学习事半功倍,所以每个技能点之后我会推荐一些书,都是我读过且口碑不错的书,供参考。分享的学习路径,如果你也能顺着这个学习路径认真学一遍,...
2020-06-08 06:00:06
76
原创 Go 协程的实现原理
G (goroutine)G是goroutine的头文字, goroutine可以解释为受管理的轻量线程, goroutine使用go关键词创建.举例来说, func main() { go other() }, 这段代码创建了两个goroutine,一个是main, 另一个是other, 注意main本身也是一个goroutine.goroutine的新建, 休眠, 恢复, 停止都受到g...
2020-05-30 22:07:02
98
原创 面试题
image.png以下代码结果是什么image.png如何输出012image.pngimage.pngN=10image.pngimage.pngimage.pngimage.pngimage.pngimage.png全局只可以是以下类型:image.pn...
2020-05-26 14:47:05
62
原创 微服务
微服务:将一个服务写成多个模块。image.pngimage.pngimage.png系统性能方案:image.pngimage.pngimage.png服务管理框架与服务是通过心跳包的方式保持通信。RPC:image.pngimage.pngimage.pngimage.png...
2020-05-23 07:27:36
50
原创 子查询
image.pngimage.png进阶7:子查询/*含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询分类:按子查询出现的位置:select后面:仅仅支持标量子查询from后面: 支持表子查询where或having后面:★ 标量子查询(单行) √ 列子查询 (多行) √ ...
2020-05-21 16:02:08
47
原创 sql99语法连接查询
二、sql99语法/*语法:select 查询列表from 表1 别名 【连接类型】join 表2 别名on 连接条件【where 筛选条件】【group by 分组】【having 筛选条件】【order by 排序列表】分类:内连接(★):inner外连接左外(★):left 【outer】右外(★):right 【outer】全外:full【outer】交叉...
2020-05-19 17:19:33
70
原创 beego框架
image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png...
2020-05-16 14:54:35
37
原创 gin框架
Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。Gin框架介绍Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。Gin框架安装与使用安装下载并安...
2020-05-14 11:08:35
48
原创 influxDB
本文介绍了influxDB时序数据库及Go语言操作influxDB。InfluxDB是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。安装下载https://portal.influxdata.com/downloads/这里需要注意因为这个网站引用了google的api所以国内点页面的按钮是没反应的,怎么办呢?按照下图所示,...
2020-05-11 16:18:39
48
原创 etcd
go操作etcdetcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现,本文主要介绍etcd的安装和使用。etcdetcd介绍etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。类似项目有zookeeper和consul。etcd具有以下特点:完全复制:集群中的每个节点都可以...
2020-05-10 13:49:37
53
原创 go学习之路
转发:go编程时光[go中文学习资料](https://go.wuhaolin.cn/)下面网站比较多,将它们分成 五大类,你可以根据自己的实际 情况进行选择:入门阶段Web开发进阶阶段工具使用技术社区源码阅读另外,为了方便大家,我制作了张思维导图,这下清晰多了吧(hhhhh视频<noscript>[图片上传中...(image-81ea7-158903446...
2020-05-09 22:29:11
100
原创 函数
进阶4:常见函数/*概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:1、隐藏了实现细节 2、提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点:①叫什么(函数名)②干什么(函数功能)分类:1、单行函数如 concat、length、ifnull等2、分组函数功能:做统计使用,又称为统计函数、聚合函数、组函数常见函...
2020-05-09 21:31:42
87
原创 数据库简介
数据库优势:实现数据持久化使用完整的管理系统统一管理,易于查询。DB:database(数据库)存储数据的仓库,保存了一系列有组织的数据。DBMS:Database Managenment System (数据库管理系统),数据库软件,数据库是通过DBMS创建和操作的容器。SQL:(结构化查询语言):与DB通信的语言。 优点:通用数据库语言。简单易学灵活使用,可进行复...
2020-05-08 10:56:51
62
原创 日志收集项目
日志收集项目架构设计及Kafka目前主流的日志收集方案ELK360截图20200505170804824.jpgELK问题:增加一个日志收集项,需要手动修改配置。部署的时候麻烦,没一个filebeat都需要配置一个配置文件我们的架构图:360截图20200505170932328.jpg学习到的技能:服务端agent开发后端服务组件开发Kafka和zook...
2020-05-07 08:36:18
82
原创 23.NSQ
NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ。组件:nsqdlookupd.exe默认本机的127.0.0.1nsqd.exe -broadcast-address=127.0.0.1 -lookupd-tcp-address=127.0.0.1:4160启动adminNSQNSQ介绍NSQ是Go语言编写的一个开源的实时分布式内存消息队列...
2020-05-04 17:12:17
84
原创 21.连接MySQL
MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。360截图20200503173103802.jpggo文件不是同一个模块,关闭go mod即可。Go操作MySQL原生支持连接池,是并发安全的。这个标准库没有具体的实现,只是列出了一些需要第三方库实现的具体内容。go get 识别问题如果您使用的 Go 版本是 1.13 及以上 (推荐)go...
2020-05-01 08:53:47
49
原创 19.单元测试
不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分。 这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。go test工具Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。go test命令是一个按照一定约定和组织的测试...
2020-04-30 16:13:07
36
原创 进阶:包装类
image.pngpackage com.Hanjiangxue.javase.integer;//java中为8种基本数据类型又对应准备了8种包装类型。8种包装类属于引用数据类型,父类为Object//思考:为什么要再提供8中包装类呢?public class IntegerTest01 { //入口 public static void main(Stri...
2020-04-30 09:20:57
42
原创 17.网络编程
现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网络编程请自行检索和阅读专业资料。互联网协议介绍互联网的核心是一系列协议,总称为”互联网协议”(Internet Prot...
2020-04-29 17:37:32
39
原创 进阶:String
package com.Hanjiangxue.javase.string;//位于java.lang.String//String表示字符串类型,属于引用数据类型,不属于基本数据类型。//在Java中随便使用双引号括起来的都是String对象。//Java中规定,双引号括起来的字符串是不可变的。//在JDk双引号括起来的字符串存储在方法区的常量池中,因为字符串实际中开发频繁,为了执行...
2020-04-29 14:42:25
34
原创 数组
image.pngimage.pngpackage com.Hanjiangxue.javase.array;//Java中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object。//数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合)//数组字面就是一组数据//数组可以存储基本数据类型数据,也可以存储引用数据类型的数据//数组因...
2020-04-28 21:46:37
39
原创 16.并发
并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。Go语言中的并发编程并发与并行并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。Go语言的并发通过goroutine实现。goroutine类似于线程,属于用户态的线程,我们可以根据需要创建成千上万个gorou...
2020-04-25 18:02:14
53
原创 进阶:抽象类
image.png抽象类:类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。类本身是不存在的,所以抽象类无法创建对象(无法实例化)。抽象类属于什么类型:引用数据类型。语法:[修饰符列表] abstract class 类名{类体;}抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。abstract 和final不能同时出现...
2020-04-25 09:05:39
89
Threads.zip
2020-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人