自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

原创 动图图解!代码执行send成功后,数据就发出去了吗?

今天又是被倾盆的需求淹没的一天。有没有人知道,那种“我用3句话,就让产品为我砍了18个需求”的鸡汤课在哪报名,想报。"听懂掌声"的那种课就算了,太费手了。扯远了,回到我们今天的正题,我们了解下这篇文的目录。代码执行send成功后,数据就发出去了吗?回答这个问题之前,需要了解什么是Socket 缓冲区。Socket 缓冲区什么是 socket 缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的 socket API。socket 在操作系统层面,可以理解为一个文件

2021-07-26 08:57:38 77

原创 在网上看猫片被老板发现?不如按下F12学学HTTP

文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复【教程】获golang免费视频教程。本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。什么是HTTPHTTP 全称超⽂文本传输协议,也就是HyperText Transfer Protocol。其中我们常见的文本,图片,视频这些东西都可以用超文本进行表示,而我常看的猫片,也属于超文本,所以大家不要再说我偷偷看..

2021-02-20 08:06:43 948

原创 【吐血整理】超全golang面试题合集+golang学习指南+golang知识图谱+成长路线 一份涵盖大部分golang程序员所需要掌握的核心知识。

由于外链问题,完整版可【点击】阅读原文或到 github项目 中,欢迎关注。目录(善用Ctrl+F)基础入门新手Golang开发新手常犯的50个错误数据类型连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。golang面试题:字符串转成byte数组,会发生内存拷贝吗?golang面试题:翻转含有中文、数字、英文字母的字符串golang面试题:拷贝大切片一定比小切片代价大吗?map不初始化使用会怎么样map不初始化长度和初始化长度的区别map承载多大,..

2021-01-11 12:37:38 1925 2

原创 golang面试题:怎么避免内存逃逸?

问题怎么避免内存逃逸?怎么答在runtime/stubs.go:133有个函数叫noescape。noescape可以在逃逸分析中隐藏一个指针。让这个指针在逃逸分析中不会被检测为逃逸。 // noescape hides a pointer from escape analysis. noescape is // the identity function but escape analysis doesn't think the // output depends on the input.

2020-06-08 09:59:12 735

原创 连接一个 IP 不存在的主机时,握手过程是怎样的?

文章首发于个人公众号「小白debug」 原文链接:连接一个 IP 不存在的主机时,握手过程是怎样的?鸽了好长时间了,最近很忙。以前工作忙完,就抽空写文章。现在忙完工作,还要一三五学驾照,二四六看家具。有同感的老铁们不要举手,拉到右下角点个"在看"就好了。真的,全怪某音。扯远了,回到今天的主题。方兄最近写了篇很赞的文章 写给想去字节写 Go 的你 ,里面提到了两个问题。连接一个 IP 不存在的主机时,握手过程是怎样的?连接一个 IP 地址存在但端口号不存在的主机时,握.

2021-07-08 08:37:38 143 1

原创 硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?

首发于个人公众号:golang小白成长记原文地址:硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?你女神爱不爱你,你问她,她可能不会告诉你。但网通不通,你 ping 一下就知道了。可能看到标题,你就知道答案了,但是你了解背后的原因吗?那如果把 127.0.0.1 换成 0.0.0.0 或 localhost 会怎么样呢? 你知道这几个IP有什么区别吗?以前面试的时候就遇到过这个问题,大家看个动图了解下面试官和我当时的场景,求当时小白的心里阴影面积。话不多说,我们直接开车。.

2021-06-17 10:10:57 207 2

原创 爷青回!最近很火的朋友圈怀旧小电视源码来啦!看到最后一个视频我大呼好家伙!

原文首发于公众号:【golang小白成长记】爷青回!最近很火的朋友圈怀旧小电视源码来啦!看到最后一个视频我大呼好家伙!体验一把怀旧小电视最近朋友圈被怀旧小电视刷爆啦!点开来,是一台老式电视机!点开右下角的小按钮,电视机能被打开!这就相当有趣了。熟悉的小叮当就播起来了~右边的两道杠,还能调音量。这就相当逼真了。出于好奇心,关掉电视机,再打开,还有一定的几率能换台哈哈哈哈!我尝试了几次,有黑猫警长[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0s8O.

2021-05-30 11:51:19 290

原创 动图图解!GMP模型里为什么要有P?背后的原因让人暖心

文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复【教程】获golang免费视频教程。本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。GM模型是什么在 Go 1.1版本之前,其实用的就是GM模型。G,协程。通常在代码里用 go 关键字执行一个方法,那么就等于起了一个G。M,内核线程,操作系统内核其实看不见G和P,只知道自己在执行一个线程。G和P都是在.

2021-05-12 22:18:53 477 3

原创 i/o timeout , 希望你不要踩到这个net/http包的坑

文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复【教程】获golang免费视频教程。本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。问题我们来看一段日常代码。 1packagemain 2 3import( 4"bytes" 5"encoding/json" 6"fmt" 7"io/iouti...

2021-04-20 10:47:00 141

原创 连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jp1TlBFy-1617862011452)(http://qh1adizvv.hn-bkt.clouddn.com/nil%E5%88%87%E7%89%87%E5%92%8C%E7%A9%BA%E5%88%87%E7%89%87%E5%B0%81%E9%9D%A2.png)]连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。问题package mainimport ( "fmt" "re

2021-04-08 14:07:09 61

原创 程序猿的第一本互联网黑话指南

文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复【教程】获golang免费视频教程。本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。很烦,小侄子最近不给我打电话了。放下作为叔叔的面子,拨通电话。他说,他最近很烦。我以为他长大了,谈恋爱了。他说,最近他们学校,换了个校长。喜欢在早上升国旗之后发表演讲。“发表演讲挺好的啊,德智体美。”他说他听不懂。..

2021-04-08 09:39:29 166 4

原创 TCP粘包为什么会粘包? 背后的原因让人暖心

事情从一个健身教练说起吧。李东,自称亚健康终结者,尝试使用互联网+的模式拓展自己的业务。在某款新开发的聊天软件琛琛上发布广告。键盘说来就来。疯狂发送"李东",回车发送!,“亚健康终结者”,再回车发送!还记得四层网络协议长什么样子吗?四层网络模型每层各司其职,消息在进入每一层时都会多加一个报头,每多一个报头可以理解为数据报多戴一顶帽子。这个报头上面记录着消息从哪来,到哪去,以及消息多长等信息。比如,mac头部记录的是硬件的唯一地址,IP头记录的是从哪来和到哪去,传输层头记录到是到达目的主机后具.

2021-03-23 08:37:10 254

原创 女朋友看了会生气的回答: URI和URL有什么区别?

URL是什么URL 代表着是统一资源定位符(Uniform Resource Locator)。作用是为了告诉使用者 某个资源在 Web 上的地址。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像或一个猫片等等。上面我们请求猫片的URL就是https://upos-sz-staticks3.bilivideo.com/cmaskboss/164203142_30_1.jpg这里面细分,又可以分为好几个部分。协议部分表示该URL的协议部分为http还是https,会用**//为分

2021-02-25 12:54:10 43

原创 女朋友看了会生气的回答: URI和URL有什么区别?

URL是什么URL 代表着是统一资源定位符(Uniform Resource Locator)。作用是为了告诉使用者 某个资源在 Web 上的地址。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像或一个猫片等等。上面我们请求猫片的URL就是https://upos-sz-staticks3.bilivideo.com/cmaskboss/164203142_30_1.jpg这里面细分,又可以分为好几个部分。协议部分表示该URL的协议部分为http还是https,会用**//为分

2021-02-25 07:21:14 27

原创 程序员划水指南

快过年了,跟我可爱的小侄子通了个电话,上来就说,“叔叔你头发怎么变少了”,我很痛心,我的小侄子,年纪轻轻的,眼神已经这么不好使了。但转念一想,这也是他对我的一种关心,作为叔叔,也该回应一把,今年过年给他带一本《少儿编程》回去当礼物吧。但转念又一想,也许我真的头发变少了呢,我强壮的体魄不再足以支撑我肮脏的灵魂了呢,或许真的应了那句古语,程序员固有一死,要么骚死,要么猝死? 我好残忍,我竟然想让我的小侄走上这么一条不归路。可是我这一身编程本领好想传授予人,我还想不想那么快一"猝"而就。我还想看着小侄子长大.

2021-01-20 07:32:15 23168 72

原创 resp.Body.Close() 引发的内存泄漏goroutine个数

resp.Body.Close() 引发的内存泄漏goroutine个数。问题package mainimport ( "fmt" "io/ioutil" "net/http" "runtime")func main() { num := 6 for index := 0; index < num; index++ { resp, _ := http.Get("https://www.baidu.com") _, _ = ioutil.ReadAll(resp.Bo.

2020-11-24 12:52:23 613 1

原创 昨天那个在for循环里append元素的同事,今天还在么?

昨天那个在for循环里append元素的同事,今天还在么?问题package mainimport "fmt"func main() { s := []int{1,2,3,4,5} for _, v:=range s { s =append(s, v) fmt.Printf("len(s)=%v\n",len(s)) }}这个代码会造成死循环吗?怎么答不会死循环,for range其实是golang的语法糖,在循环开始前会获取切片的长度 len(切片),然后再执行le.

2020-09-22 09:09:00 117

原创 golang面试官:for select时,如果通道已经关闭会怎么样?如果select中只有一个case呢?

golang面试官:for select时,如果通道已经关闭会怎么样?如果select中只有一个case呢?问题for循环select时,如果通道已经关闭会怎么样?如果select中的case只有一个,又会怎么样?怎么答for循环select时,如果其中一个case通道已经关闭,则每次都会执行到这个case。如果select里边只有一个case,而这个case被关闭了,则会出现死循环。解释1.for循环里被关闭的通道c通道是一个缓冲为0的通道,在main开始时,启动一个协程对c通.

2020-07-14 08:46:58 460

原创 golang面试题:对已经关闭的的chan进行读写,会怎么样?为什么?

问题对已经关闭的的chan进行读写,会怎么样?为什么?怎么答读已经关闭的chan能一直读到东西,但是读到的内容根据通道内关闭前是否有元素而不同。如果chan关闭前,buffer内有元素还未读,会正确读到chan内的值,且返回的第二个bool值(是否读成功)为true。如果chan关闭前,buffer内有元素已经被读完,chan内无值,接下来所有接收的值都会非阻塞直接成功,返回 channel 元素的零值,但是第二个bool值一直为false。写已经关闭的chan会panic举例1.

2020-06-25 08:22:09 1300

原创 golang面试题:对未初始化的的chan进行读写,会怎么样?为什么?

问题对未初始化的的chan进行读写,会怎么样?为什么?怎么答读写未初始化的chan都会阻塞。举例1.写未初始化的chanpackage main// 写未初始化的chanfunc main() { var c chan int c <- 1}// 输出结果fatal error: all goroutines are asleep - deadlock!goroutine 1 [chan send (nil chan)]:main.main() /U.

2020-06-21 13:29:34 633

原创 golang面试题:reflect(反射包)如何获取字段tag​?为什么json包不能导出私有变量的tag?

问题json包里使用的时候,会结构体里的字段边上加tag,有没有什么办法可以获取到这个tag的内容呢?举例tag信息可以通过反射(reflect包)内的方法获取,通过一个例子加深理解。package mainimport ( "fmt" "reflect")type J struct { a string //小写无tag b string `json:"B"` //小写+tag C string //大写无tag D string `js.

2020-06-15 06:44:35 341

原创 golang面试题:json包变量不加tag会怎么样?

问题json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段?怎么答如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。如果变量首字母大写,则为public。不加tag,可以正常转为json里的字段,json内字段名跟结构体内字段原名一致。加了tag,从struct转json的时候,json的字段名就是tag里的字段名,原字段名已经没用。举例通过一个例子加深理解。package mainimport ( "encod.

2020-06-14 09:02:15 423

原创 高频golang面试题:简单聊聊内存逃逸?

问题知道golang的内存逃逸吗?什么情况下会发生内存逃逸?怎么答golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验,它就可以在栈上分配。否则就说它 逃逸了,必须在堆上分配。能引起变量逃逸到堆上的典型情况:在方法内把局部变量指针返回 局部变量原本应该在栈中分配,在栈中回收。但是由于返回时被外部引用,因此其生命周期大于栈,则溢出。发送指针或带有指针的值到 channel 中。 在编译时,是没有办法知道哪个 goroutine 会在 c.

2020-06-03 08:40:16 402

原创 golang面试题:拷贝大切片一定比小切片代价大吗?

问题拷贝大切片一定比小切片代价大吗?怎么答并不是,所有切片的大小相同;三个字段(一个 uintptr,两个int)。切片中的第一个字是指向切片底层数组的指针,这是切片的存储空间,第二个字段是切片的长度,第三个字段是容量。将一个 slice 变量分配给另一个变量只会复制三个机器字。所以 拷贝大切片跟小切片的代价应该是一样的。解释SliceHeader是切片在go的底层结构。type SliceHeader struct { Data uintptr Len int Cap int.

2020-06-02 13:02:51 437

原创 golang面试题:翻转含有`中文、数字、英文字母`的字符串

问题翻转含有中文、数字、英文字母的字符串"你好abc啊哈哈"代码实现package mainimport"fmt"func main() { src := "你好abc啊哈哈" dst := reverse([]rune(src)) fmt.Printf("%v\n", string(dst))}func reverse(s []rune) []rune { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i].

2020-06-02 13:01:58 465

原创 golang面试题:字符串转成byte数组,会发生内存拷贝吗?

问题字符串转成byte数组,会发生内存拷贝吗?怎么答字符串转成切片,会产生拷贝。严格来说,只要是发生类型强转都会发生内存拷贝。那么问题来了。频繁的内存拷贝操作听起来对性能不大友好。有没有什么办法可以在字符串转成切片的时候不用发生拷贝呢?代码实现package mainimport ( "fmt" "reflect" "unsafe")func main() { a :="aaa" ssh := *(*reflect.StringHeader)(unsafe.Pointer(.

2020-06-02 13:00:36 804 1

原创 golang面试题:能说说uintptr和unsafe.Pointer的区别吗?

问题能说说uintptr和unsafe.Pointer的区别吗?怎么答unsafe.Pointer只是单纯的通用指针类型,用于转换不同类型指针,它不可以参与指针运算;而uintptr是用于指针运算的,GC 不把 uintptr 当指针,也就是说 uintptr 无法持有对象, uintptr 类型的目标会被回收;unsafe.Pointer 可以和 普通指针 进行相互转换;unsafe.Pointer 可以和 uintptr 进行相互转换。举例通过一个例子加深理解,接下来尝试用指针的.

2020-06-02 12:59:05 444

原创 go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory E:\tttttt (outside

使用go mod的方法单独从大工程里拷出小文件想新建新文件工程时,部分文件路径名报红,出现报错go: cannot determine module path for source directory E:\tttttt (outside GOPATH, no import comments)1.在src 目录下新建 go.mod文件2. go.mod中第一行加入一行内容 module ...

2019-03-11 17:14:02 20687 3

原创 使用VS2013 实现一个简单的单例模式singleton

使用VS2013 实现一个简单的单例模式singleton1.在singleton.h 中加入以下内容#ifndef SINGLETON#define SINGLETON//方便之后的调用,MyClass::Instance()->GetVal() 太长,现在变成MyCls->GetVal();#define MyCls MyClass::Instance() class MyClass{

2017-09-21 16:45:07 565

原创 XML转Excel或Excel转XML|tinyxml简单使用|C++使用excel

最近做了一个小工具,可以将XML和Excel之前互转。里面用到的XML读写库是tinyxml,在Excel2010上运行,请先确保装了Excel,而不是WPS。代码写的比较挫,一大坨,最近忙也懒得去做优化了。github地址:XML与Excel互转工具目前只支持ANSI格式的Excel文件与ANSI格式的XML文件互转。由于在写的时候,里面的存储方式都是CString,默认为ANS

2017-08-26 17:33:01 3518

原创 将github上开源项目放到自己仓库并在本地并进行修改

首先保证已经装好git,我装的是 Git-2.12.2.2-64-bit.exe ,也需要申请一个github账号。1、本地创建ssh key 这个比较简单,可以自行百度 $ ssh-keygen -t rsa -C “hahahahaha@yeah.net” 打开 C:\Users\allen.ssh\id_rsa.pub 中的内容,复制到github中2.验证本地创建SSh

2017-08-26 16:55:07 4668

编程珠玑.pdf

编程珠玑

2017-08-26

背包问题九讲.pdf

背包问题九讲.pdf

2017-08-26

操作系统原理.pdf

操作系统

2017-08-26

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除