- 博客(13)
- 收藏
- 关注
原创 Go 通道(channel)
注:自己踩的一个:如果主函数创建一个通道(chan),调用的函数把这个通道关闭,那么往这个通道写数据就会崩溃,但是读值得话,就是这个类型的默认值如果说goroutine 是 Go 程序并发的执行体,通道就是它们之间的连接。通道是可以让一个 goroutine 发送特定值到另一个 goroutine 中的通信机制。每一个通道是一个具体类型的导管,叫做通道的元素类型。package main...
2018-04-30 21:08:58 193
原创 Go 的goroutine(协程)
goroutine在Go里,每一个并发执行的活动称为 goroutine 。当一个程序启动时,只有一个 goroutine 来调用 main() 函数,称它为主 goroutine fun() //调用 fun(),等待它返回go fun() //新建一个调用 fun() 的goruntine ,不用等待
2018-04-30 20:28:42 161
原创 Go 基本数据类型
GO 的数据类型分为四大类:基础类型(basic type),聚合类型(aggregate type),引用类型(reference type),接口类型(interface type)。下面讲的是基础类型:number,string, bool。其它的会在后面的博客涉及到1.1 整数有符号整数: int8 int16 int32 int64无符号整数 uint8
2018-04-30 15:02:45 142
原创 Go 接口
如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么它就可以在这里使用。特点:Go语言的接口的独特之处在于它是【隐式实现】。...
2018-04-30 12:10:11 116
原创 Go语言中的方法
1.1 方法声明 方法的声明和普通函数类似,只是在函数名字前面多了一个参数。这个参数把这个方法绑定到这个参数对应的类型上 import ( "fmt" ) type Point struct { x, y int } func fun() { fmt.Println("我是一个普通的 fun") } func (p Point) f
2018-04-29 21:44:35 194
原创 解析GO语言中的 deter
延迟函数调用(defer) Go语言中延迟函数defer充当着 cry...catch 的重任,使用起来也非常简便,然而在实际应用中,很多人并没有真正搞明白defer、return和返回值之间的执行顺序,从而掉进坑中,今天我们就来揭开它的神秘面纱!12先来运行下面两段代码: A. 无名返回值的情况package mainimport ( "fmt")func main()...
2018-04-29 17:17:21 1013
原创 GO函数
1.1 函数声明 每个函数声明都包含一个名字,一个形参列表,一个可选的返回列表以及函数体func fun(x,y float64) float{ return 100.00}也可以func fun(x float64,y float64) float{ return 100.00}1.2函数递归 函数可以递归调用,这就意味着函数...
2018-04-29 16:01:54 695
原创 Go程序结构
1.1 名称Go中函数,变量,常量,类型,语句标签和包的名称遵循一个简单的命名规则:名称的开头是一个字母或下划线,并且区分大小写注:实体的第一个字母的大小写决定了其可见性是否可以跨包。如果名字是大写字母的开头,它是导出的,意味着它对包外可见和可访问的,可以被包外的其他程序所引用(拷贝),像 fmt 包中的 Printf.包名总是由小写字母组成。1.2 声明声明给一个实体命名,并...
2018-04-28 21:10:14 208
原创 TCP(HTTP)长连接和短连接的区别以及怎样维护长连接
一、HTTP协议和TCP协议HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。二、HTTP协议的长连接和短连接在HTTP/1.0中,默认使用的是...
2018-04-25 22:19:18 836
原创 HTTP/ 1.0 和HTTP /1.1 的区别
区别一(最重要) HTTP/ 1.1 加入了 1 持久连接(HTTP Persistent Connections),也称为 HTTP keep-alive,持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态 2 管线化(也叫流水线)(pipelining),以前发送请求后需要等待并且收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可...
2018-04-16 13:53:25 1071
原创 360第一次面试(电面)未完待续
1 内部名称 C和C++语言实现都会按照特定的规则把用户(程序员)定义的标识符(各种函数,变量,类型,以及命名空间)转换为相应的内部名称。当然,这些内部名称的命名方法还与用户为它们指定的连接规范有关,比如使用C的连接规范,则main的内部名称就是_main。2 C为什么不支持重载,C++支持重载 部分采摘至《高质量c++/c语言》 其实这个原因,还是要从C和C++的命名...
2018-04-09 00:28:05 292
原创 TCP半关闭,半连接,半打开
半关闭: 当TCP链接中A向B发送 FIN 请求关闭,另一端B回应ACK之后,并没有立即发送 FIN 给A,A方处于半连接状态(半开关),此时A可以接收B发送的数据,但是A已经不能再向B发送数据。半连接: 发生在TCP三次握手中 如果A向B发起链接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。 半连接攻击:半连接,会造成B分配的内存资源就一直这...
2018-04-08 17:04:15 8562
原创 A + B 问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。您在真实的面试中是否遇到过这个题?说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以样例如果 a=1 并且 b=2,返回3方法一 int aplusb(int a, int b) { // w...
2018-04-06 23:25:23 257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人