搬砖的乔布梭
这个作者很懒,什么都没留下…
展开
-
漫谈Go语言与区块链
Go语言优势高并发:百万级并发能力,令所有其它语言黯然失色;简洁:语法简洁媲美Python,学习成本低,开发速度快;高效:执行效率媲美C++;底层语言:意味着C能做的事情Go都可以做;博采众长:简化的C语言指针 + Java的内存管理/异常处理/反射 + Python的多返回值/一行声明多个变量;谷歌:谷歌嫡出的战略性语言你懂的;应用领域:Web、容器、微服务、区块链…总结:Go...原创 2018-12-20 01:09:34 · 7795 阅读 · 2 评论 -
漫谈Go语言后端开发
为什么使用Go语言做后端开发?简单高效:几乎所有主流的编程语言如Java、C++、PHP、Python、JavaScript等等都是可以用于服务端开发的,Go语言作为后起之秀,在语言层面具有语法简洁、执行效率高(底层语言)的特点;相比之下,Java和Python、PHP都显得低效,C++则太过麻烦,而Go则可以做到简单与高效兼顾;高并发:Go语言是主打并发、为并发而生的,其出发点即是瞄准大数...原创 2019-02-14 21:47:08 · 24387 阅读 · 0 评论 -
6.1 Golang精编100题1:选择题
1.【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC2.【初级】定义一个包内全局字符串变量,下面语法正确的是()A. var str stringB. str := “”C. str = “”D. var str = “”参考答案:AD3.【初级】通过指针变量 p 访问其成员变量 name,下面语法正确的是()A. ...原创 2019-03-14 22:27:37 · 2224 阅读 · 0 评论 -
6.2 Golang精编100题2:填空题
1.【初级】声明一个整型变量i__________参考答案:var i int2.【初级】声明一个含有10个元素的整型数组a__________参考答案:var a [10]int3.【初级】声明一个整型数组切片s__________参考答案:var s []int4.【初级】声明一个整型指针变量p__________参考答案:var p *int5.【初级】声明一个key为字符串...原创 2019-03-14 22:27:32 · 742 阅读 · 0 评论 -
6.3 Golang精编100题3:判断题
1.【初级】数组是一个值类型()参考答案:T2.【初级】使用map不需要引入任何库()参考答案:T3.【中级】内置函数delete可以删除数组切片内的元素()参考答案:F4.【初级】指针是基础类型()参考答案:F5.【初级】 interface{}是可以指向任意对象的Any类型()参考答案:T6.【中级】下面关于文件操作的代码可能触发异常()file, err := os.O...原创 2019-03-14 22:27:25 · 845 阅读 · 0 评论 -
6.4 Golang精编100题4:程序输出
1 写出下面代码输出内容package mainimport "fmt"func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.原创 2019-03-14 22:27:20 · 860 阅读 · 0 评论 -
Golang面试精编1
简单介绍一下Golang?谷歌开发的一种系统编程语言;它具有内置的垃圾收集机制;支持高并发;代码可以编译成单个可执行二进制文件,不需要添加库或运行时环境即可在服务器上执行;Golang是否可以声明一个类?可以,type Person struct{…}Go是否支持泛型?(陷阱问题)否,泛型是方便的,但是它们在类型系统和运行时的复杂性方面付出了代价。Go语言的解决方案就是...原创 2019-03-14 22:27:14 · 1758 阅读 · 0 评论 -
Golang面试精编2:并发相关
简述goroutine调度器模型?go为什么有如此强大的并发能力——得益于其goroutine调度器?简述goroutine并发模型?MPG模型:goroutine的并发模型可以归纳为MPG模型;MPG概念:线程(machine,系统线程,物理线程)-内核(processor)-协程(goroutine,用户线程,逻辑线程);多对多调度模型:整体调度遵循多对多模型,多个协程(约百万级)...原创 2019-03-14 22:27:08 · 1537 阅读 · 0 评论 -
5.12 Go语言破解SSH服务器
需求和思路分析现在的很多小伙伴们都拥有了自己的云服务器了,lots of them!平时大家是怎么做服务器管理的呢?相信多数人都是通过SSH客户端连接过去的吧;无论PUTTY还是XShell,我们只需要一个登陆密码,就能轻松地登陆到远程服务器终端,然后对我们的服务器做任何事情;只需要一个密码就可以了!Go语言有SSH连接的第三方库,参数自然是用户名、密码、远程IP和端口,而密码我们可以...原创 2019-02-21 16:48:00 · 1250 阅读 · 1 评论 -
5.11 Go语言文本大数据处理(2):文件分割与入库
需求分析上一节我们对文本大数据进行了读入和清洗,这一节我们把清洗后的数据存入MySQL数据库,清洗过后的有效信息约为1800万条;思路分析要想提高数据写入的速度,我们一方面要做并发的数据库写入,一方面又要尽量减少操作的次数,一次性插入尽可能多的记录;最终的方案如下:主要的性能瓶颈其实是主协程对文本的读取速度,可以事先对文件进行分割操作,然后并发地做数据读入;主协程逐条读...原创 2019-02-19 13:53:38 · 2172 阅读 · 0 评论 -
5.10 Go语言文本大数据处理(1):读入、清洗、分类
需求分析如图是一个大小达到1.3G的纯文本大数据,其中记录了情人节当天帝各大宾馆的开房数据~我们对这一大数据文本进行读取、清洗、分类、入库;读取文本大数据通过ioutil.ReadFile(filename)API可以傻瓜式地一次性读入全部数据//一次性将全部数据载入内存(不可取)func main011() { //一次性将全部数据载入内存(不可取) contentBy...原创 2019-02-18 15:57:05 · 3668 阅读 · 1 评论 -
5.9 Go语言项目实战:驾考系统
项目需求考场签到,名字丢入管道;只有5个车道,最多供5个人同时考试;考生按签到顺序依次考试,给予考生10%的违规几率;每3秒钟巡视一次,发现违规的清出考场,否则输出考场时序良好;所有考试者考完后,向MySQL数据库录入考试成绩;成绩录入完毕通知考生,考生查阅自己的成绩;当前目录下的成绩录入MySQL数据库,数据库允许一写多读;再次查询成绩使用Redis缓存(二级缓存);整理优化...原创 2019-01-16 17:52:19 · 1805 阅读 · 0 评论 -
5.8 Go语言项目实战:点对点聊天
需求摘要实现一个分布式点对点的聊天系统,所有节点都是对等的,不需要中央服务器实现注册节点名称,节点之间通过节点名称发起会话思路分析节点同时具备服务端和客户端的职能服务端只负责接收其它节点主动发送过来的消息客户端只负责主动向其它节点发送消息通信都用短连接,服务端收完消息/客户端发完消息都断开conn——一方面是节约IO资源,另一方面是为了使逻辑清晰节点名称注册到【注册服务器】(...原创 2019-01-11 16:57:45 · 1881 阅读 · 1 评论 -
3.1 Go语言算法:切片处理
判断切片相等func AreEquivalentSlice(temp, answers []interface{}) bool { if len(temp) != len(answers) { return false } else { for i, v := range temp { //先判断类型是否相同 if reflect.TypeOf(v) != reflect...原创 2019-01-04 11:57:05 · 612 阅读 · 0 评论 -
3.2 Go语言算法:排序算法
选择排序/*选择排序,正序排列*/func SortSliceSelected(slice []int) { for i:=0;i<len(slice)-1;i++{ for j:=i;j<len(slice);j++{ if slice[j] < slice[i]{ slice[i],slice[j] = slice[j],slice[i] } ...原创 2019-01-04 11:54:11 · 472 阅读 · 0 评论 -
3.3 Go语言算法:判断素数
判断是否素数func IsPrime(n int) bool { if n == 1 { return false } //从2遍历到n-1,看看是否有因子 for i := 2; i < n; i++ { if n%i == 0 { //发现一个因子 return false } } return true}判断是否素数优化算法func Is...原创 2019-01-04 11:53:03 · 2260 阅读 · 3 评论 -
3.5 Go语言算法:水仙花与自幂数
判断水仙花数func IsNarcissistic(n int) bool { //153 a := float64(n / 100) b := float64(n % 100 / 10) c := float64(n % 10) return int(math.Pow(a, 3)+math.Pow(b, 3)+math.Pow(c, 3)) == n}判断自幂数自幂数定义:...原创 2019-01-04 11:49:51 · 536 阅读 · 0 评论 -
3.4 Go语言算法:求斐波那契数
递归求斐波那契数列第N项func GetFibonacciRecursively(n int) int { if n == 0 || n == 1 { return 1 } return GetFibonacciRecursively(n-1) + GetFibonacciRecursively(n-2)}循环求斐波那契数列第N项func GetFibonacciII(n in...原创 2019-01-04 11:48:09 · 402 阅读 · 0 评论 -
2.15 Go语言反射实例
需求摘要所有的商品都有一些共性,例如都有品名、价格,个性则无千无万;自行封装出三种商品(以模拟30万种商品)随意给出一个商品的集合,将每件商品的所有属性值输出到《品名.txt》文件中;需求分析该需求的难点在于,给过来的商品是什么类型都有的,每种不同类型的商品具体有些什么属性值我们完全无法预知——所以我们可以通过反射来得到这些属性的名值;导入必要的包import ( "os" ...原创 2019-01-04 06:51:35 · 767 阅读 · 1 评论 -
5.7 Go语言项目实战:多人聊天室2.0
需求描述申请建群:向服务端发送聊天消息“建群#群昵称”服务端审核:如果没有同名群存在,就返回“建群成功”否则返回“群已存在”创建群结构体:属性包括群主、群昵称、群成员;查看群信息:任何人可以通过向服务端发送聊天信息“群信息#所有”或者“群信息#昵称”查看群信息服务端返回:服务端返回格式 群昵称:xxx 群主:xxx 群人数:xxx申请加群:任何人可以通...原创 2018-10-11 10:31:56 · 1539 阅读 · 0 评论 -
4.5 并发技术:同步调度
4.4 并发与同步调度原创 2018-09-13 14:32:21 · 367 阅读 · 0 评论 -
4.7 并发技术:死锁问题
多个协程互相阻塞造成死锁package mainimport ( &amp;amp;quot;sync&amp;amp;quot; &amp;amp;quot;fmt&amp;amp;quot; &amp;amp;quot;time&amp;amp;quot;)func main1() { ch := make(chan int, 0原创 2018-09-13 14:29:56 · 360 阅读 · 0 评论 -
4.3 并发技术:管道通信
4.3 管道的跨协程数据交互原创 2018-09-13 14:14:41 · 384 阅读 · 0 评论 -
5.3 Go语言项目实战:walk常用控件
认识几种常用控件按钮菜单工具栏界面布局列表显示图片原创 2018-09-13 11:27:29 · 2110 阅读 · 0 评论 -
5.5 Go语言项目实战:多人聊天室
4.9 实战项目3:多人聊天室原创 2018-09-13 11:25:20 · 1453 阅读 · 0 评论 -
5.2 Go语言项目实战:初识Walk GUI
4.6 图形用户界面开发原创 2018-09-13 11:24:45 · 4775 阅读 · 1 评论 -
4.2 并发技术:多协程
4.2 Go语言多协程并发原创 2018-09-13 11:15:37 · 439 阅读 · 0 评论 -
2.22 网络通信4:TCP广播
服务端实现import ( &amp;quot;fmt&amp;quot; &amp;quot;net&amp;quot; &amp;quot;os&amp;quot; &amp;quot;strings&amp;quot;)//存储客户端连接, key,ip端口,value 链接对象var onlineConnsMap =原创 2018-09-13 11:06:08 · 409 阅读 · 0 评论 -
2.21 网络通信3:TCP交互通信
服务端实现import ( &amp;quot;fmt&amp;quot; &amp;quot;net&amp;quot; &amp;quot;os&amp;quot; &amp;quot;strings&amp;quot;)func CheckErrorS(err error) { if err != nil {原创 2018-09-13 11:04:25 · 409 阅读 · 1 评论 -
4.1 并发技术:CSP并发理论
4.1 并发理论概述原创 2018-09-13 11:03:00 · 848 阅读 · 0 评论 -
5.4 Go语言项目实战:基于开源数据的成语查询
4.8 实战项目2:成语查询APP原创 2018-09-13 10:53:24 · 678 阅读 · 0 评论 -
5.6 Go语言项目实战:并发爬虫
4.7 实战项目1:并发爬虫原创 2018-09-13 10:51:42 · 1410 阅读 · 0 评论 -
5.1 Go语言项目实战:简单爬虫
4.5 正则表达式原创 2018-09-13 10:51:05 · 1284 阅读 · 0 评论 -
1.2 Go语言开发环境搭建
开发环境搭建 Go环境 https://golang.google.cn/dl/ Goland 官网下载 https://www.jetbrains.com/go/download/#section=windows 在线激活地址 http://idea.youbbs.org...原创 2018-09-13 10:26:48 · 579 阅读 · 0 评论 -
2.24 网络通信6:搭建HTTP服务器
导入依赖包import ( &amp;quot;net/http&amp;quot; &amp;quot;io/ioutil&amp;quot; _&amp;quot;net/http/pprof&amp;quot;)定义路由处理,并监听在指定端口func main() { //定义对/hello路由的响应 http.HandleFunc(原创 2018-09-13 08:51:15 · 419 阅读 · 0 评论 -
1.3 详解GOPATH
1.3 详解GOPATH原创 2018-09-13 00:00:11 · 887 阅读 · 0 评论 -
2.23 网络通信5:执行HTTP的GET/POST请求
2.14 网络通信3:HTTP原创 2018-09-12 23:56:51 · 235 阅读 · 0 评论 -
2.20 网络通信2:TCP简单通信
2.13 网络通信2:TCP原创 2018-09-12 23:47:40 · 589 阅读 · 0 评论 -
2.15 Go语言反射
2.8 反射简介原创 2018-09-12 23:41:11 · 371 阅读 · 0 评论 -
2.19 网络通信1:UDP
2.12 网络通信1:UDP原创 2018-09-12 23:37:12 · 420 阅读 · 0 评论