首页
学习
活动
专区
工具
TVP
发布

golang小白成长记

专栏作者
24
文章
26156
阅读量
18
订阅数
【修正版】动图图解!代码执行send成功后,数据就发出去了吗?
编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的 socket API。
9号同学
2021-07-29
1.4K0
硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
可能看到标题,你就知道答案了,但是你了解背后的原因吗?那如果把 127.0.0.1 换成 0.0.0.0 或 localhost 会怎么样呢?你知道这几个IP有什么区别吗?
9号同学
2021-07-07
8190
链表问题,如何优雅递龟?
大家好,我是来自华为的「程序员小熊」。相信绝大部分童鞋都知道,在处理与「链表」相关问题时,常用的解题套路主要包括「双指针」、「迭代」和「虚拟头节点」等等。
9号同学
2021-07-07
2540
进程、线程与协程傻傻分不清?一文带你吃透!
欢迎来到操作系统系列,依然采用图解 + 大白话的形式来讲解,让小白也能看懂,帮助大家快速科普入门
9号同学
2021-07-07
6320
Go语言的IO库那么多,我该怎么选?
在计算机和信息技术领域里I/O这个术语表示输入 / 输出 ( 英语:Input / Output ) ,通常指数据在存储器(内部和外部)或其他周边设备之间的输入和输出,是信息处理系统与外部之间的通信。输入是系统接收的信号或数据,输出则是从其发送的信号或数据。
9号同学
2021-07-07
7080
动图图解!既然IP层会分片,为什么TCP层也还要分段?
在网络层(IP层),叫分片。(注意以下提到的IP没有特殊说明的情况下,都是指IPV4)
9号同学
2021-05-27
1.9K0
【修正版】动图图解!GMP模型里为什么要有P?背后的原因让人暖心
除了G和M以外,还有一个全局协程队列,这个全局队列里放的是多个处于可运行状态的G。M如果想要获取G,就需要访问一个全局队列。同时,内核线程M是可以同时存在多个的,因此访问时还需要考虑并发安全问题。因此这个全局队列有一把全局的大锁,每次访问都需要去获取这把大锁。
9号同学
2021-05-27
8881
动图图解!GMP模型里为什么要有P?背后的原因让人暖心
除了G和M以外,还有一个全局协程队列,这个全局队列里放的是多个处于可运行状态的G。M如果想要获取G,就需要访问一个全局队列。同时,内核线程M是可以同时存在多个的,因此访问时还需要考虑并发安全问题。因此这个全局队列有一把全局的大锁,每次访问都需要去获取这把大锁。
9号同学
2021-04-29
2.2K1
i/o timeout , 希望你不要踩到这个net/http包的坑
做的事情,比较简单,就是循环去请求 http://www.baidu.com/ , 然后等待响应。
9号同学
2021-04-29
2.1K0
硬核图解!30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?
所以可以理解,大家常逛的 Github,Docker Hub, 还有P**hub ,都是为了表达它们是某类资源的中心了吧。
9号同学
2021-04-15
2.5K0
[网络坦白局] TCP粘包 数据包:我只是犯了每个数据包都会犯的错 |硬核图解
李东,自称亚健康终结者,尝试使用互联网+的模式拓展自己的业务。在某款新开发的聊天软件琛琛上发布广告。
9号同学
2021-03-30
6840
golang面试题:能说说uintptr和unsafe.Pointer的区别吗?
问题 能说说uintptr和unsafe.Pointer的区别吗? 怎么答 unsafe.Pointer只是单纯的通用指针类型,用于转换不同类型指针,它不可以参与指针运算; 而uintptr是用于指针运算的,GC 不把 uintptr 当指针,也就是说 uintptr 无法持有对象, uintptr 类型的目标会被回收; unsafe.Pointer 可以和 普通指针 进行相互转换; unsafe.Pointer 可以和 uintptr 进行相互转换。 举例 通过一个例子加深理解,接下来尝试用指针的
9号同学
2021-03-04
6470
golang面试题:拷贝大切片一定比小切片代价大吗?
并不是,所有切片的大小相同;三个字段(一个 uintptr,两个int)。切片中的第一个字是指向切片底层数组的指针,这是切片的存储空间,第二个字段是切片的长度,第三个字段是容量。将一个 slice 变量分配给另一个变量只会复制三个机器字。所以 拷贝大切片跟小切片的代价应该是一样的。
9号同学
2021-03-04
7920
高频golang面试题:简单聊聊内存逃逸?
golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验,它就可以在栈上分配。否则就说它 逃逸 了,必须在堆上分配。
9号同学
2021-03-04
1.2K0
golang面试题:字符串转成byte数组,会发生内存拷贝吗?
字符串转成切片,会产生拷贝。严格来说,只要是发生类型强转都会发生内存拷贝。那么问题来了。 频繁的内存拷贝操作听起来对性能不大友好。有没有什么办法可以在字符串转成切片的时候不用发生拷贝呢?
9号同学
2021-03-04
1.4K0
golang面试题:翻转含有中文、数字、英文字母的字符串
问题 翻转含有中文、数字、英文字母的字符串 "你好abc啊哈哈" 代码实现 package main import"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], s[
9号同学
2021-03-04
9390
在B站看猫片被老板发现?不如按下F12学学HTTP
HTTP 全称超⽂文本传输协议,也就是HyperText Transfer Protocol。 其中我们常见的文本,图片,视频这些东西都可以用超文本进行表示,而我常看的猫片,也属于超文本,所以大家不要再说我偷偷看猫片了,我只是在看超文本。HTTP只是定义了一套传输超文本的规则,只要符合了这一套规则,不管你是用iphone,还是用老爷机,都可以实现猫片的传输。
9号同学
2021-03-03
8180
golang面试题:怎么避免内存逃逸?
在runtime/stubs.go:133有个函数叫noescape。noescape可以在逃逸分析中隐藏一个指针。让这个指针在逃逸分析中不会被检测为逃逸。
9号同学
2021-03-03
7000
给大家丢脸了,用了三年golang,我还是没答对这道内存泄漏题。
问题 package main import ( "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.Body) } fmt.Printf("此时goroutine个数= %d\n",
9号同学
2021-03-03
6130
连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。
问题 package main import ( "fmt" "reflect" "unsafe" ) func main() { var s1 []int s2 := make([]int,0) s4 := make([]int,0) fmt.Printf("s1 pointer:%+v, s2 pointer:%+v, s4 pointer:%+v, \n", *(*reflect.SliceHeader)(unsafe.Pointer(&s1)),*(*reflect.Sli
9号同学
2021-03-03
2670
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档