Golang 逐行读取文件
golang的错误处理有点奇怪. 插入代码时候, 使用插入代码(推荐) 出现错误: 无法解析服务器的 DNS 地址。 使用插入代码, 直接是文本插入, 连着色都没有. 插入图片要地址, 不能上传. 下载客户端, 转到微软的网站时已经是: We can’t find that page. 写个博客都这么难比较失望. package jutil import ( "bufio" "io" "os" "strings" ) func ReadLine(fileName string, handler ...阅读全文
线上服务CPU100%问题快速定位实战
功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。 题目某服务器上部署了若干tomcat实例,即若干垂直切分的Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警。问:如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪...阅读全文
Golang读写文件操作
最近在使用Golang进行文件读写的过程中,遇到几个细节问题导致程序写入数据时有一定脏数据的残留,最后发现是使用os.OpenFile在进行文件操作的时候没有使用正确的flag造成的。因此专门去学习了下Golang中读写文件的几种方式方法,在此记录下一些简单的操作,防止以后遗忘。 读文件 使用golang语言去读取一个文件默认会有多种方式,这里主要介绍以下几种。 使用ioutil直接读取 需要引入io/ioutil包,该包默认拥有以下函数供用户调用。 func NopCloser(r io.Re...阅读全文
goLang 文件操作之一
go 官方库的文件操作分散在多个包中,感觉有点乱,比如os,ioutil包,基于别人总结的基础上简单总结一下 1.文件基本操作 1.1创建空文件 package main import ( "os" "log" ) var ( newFile *os.File err error ) func main(){ //创建文件 newFile,err=os.Create("text.txt") checkErr(err) log.Println(newFile) newFile.Close() } ...阅读全文
Golang encoding/json 的几个坑
decode(map) 之后 int 会变成 float64 思考一下,把一个 map encode 之后再 decode,结果和原来的 map 是否相等?直觉上肯定是对的,然而... 看一段代码(https://play.golang.org/p/DHb-kZNHidd): m := make(map[int]interface{}) m1 := make(map[int]interface{}) m[2] = 3 b, _ := json.Marshal(m) json.Unmarshal(...阅读全文
【译】 Golang 中的垃圾回收(一)
介绍 垃圾回收器负责追踪堆内存的分配,释放掉不需要的空间,追踪那些还在使用的分配空间。不同编程语言对这个机制的实现都很复杂,但是开发人员开发软件时候并不需要了解垃圾回收太细节的东西就能进行构建。另外,不同发布版本编程语言的VM和runtime也总是在改变和进化。对于应用开发人员来说,重要的是保持一个良好的work模型,了解编程语言里垃圾回收器的行为并且它们是怎么样支持这种行为的。 对于go 1.12版本来说,go语言使用了非分代,并发的三色标记和清扫的回收器。如果想了解如何进行标记和清扫的工作,...阅读全文
已入职今日头条,并附上8条面经
本文是转载的,个人感觉写的很厉害,没其他的意思,与大家一起分享一、印象中的头条二、面试背景三、准备面试四、头条一面电话面(Java+项目)五、头条二面视频面(大数据+项目)六、头条三面视频面(算法+场景题)七、如何通过头条笔试?八、如何准备头条面试?九、一个关于如何进大厂的小建议一、印象中的头条1.老板张一鸣跟我是福建老乡,龙岩市在我朋友说来就是山沟沟,能走出美团王兴和头条张一鸣让我卯足了去龙岩吃特产老鼠干的欲望。2.给的钱多,笔试也贼难。参加过头条笔试的同学都知道,头条笔试可以笔试三次,就是不...阅读全文
浅谈Go类型转换之间的那些事
#### 试着答一答这些问题 ##### s[i]和(for _,v range)的v的区别是什么 ```go var s string = "AB" fmt.Println(reflect.TypeOf(s[0])) for _, v := range s { fmt.Println(reflect.TypeOf(v)) } ``` ##### a.(),和 a(b) 的区别是什么? ```go var v interface{} = 1 var s ...阅读全文