欧阳桫的技术博客

寸土寸金,寸言寸心,寸取天下慰平生

漫谈Go语言后端开发

为什么使用Go语言做后端开发? 简单高效:几乎所有主流的编程语言如Java、C++、PHP、Python、JavaScript等等都是可以用于服务端开发的,Go语言作为后起之秀,在语言层面具有语法简洁、执行效率高(底层语言)的特点;相比之下,Java和Python、PHP都显得低效,C++则...

2019-02-14 21:47:08

阅读数 2180

评论数 0

漫谈Go语言与区块链

Go语言优势 高并发:百万级并发能力,令所有其它语言黯然失色; 简洁:语法简洁媲美Python,学习成本低,开发速度快; 高效:执行效率媲美C++; 底层语言:意味着C能做的事情Go都可以做; 博采众长:简化的C语言指针 + Java的内存管理/异常处理/反射 + Python的多返...

2018-12-20 01:09:34

阅读数 4635

评论数 2

自定义控件-继承法

 在布局文件中使用自定义的控件 → 声明自定义的命名空间: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mob...

2019-03-14 22:28:26

阅读数 120

评论数 1

自定义控件-组合法

 → 在布局中使用自定义的组合控件(本例不带自有命名空间): <com.kitty.widget.LabelEditText android:layout_width="fill_parent" androi...

2019-03-14 22:28:22

阅读数 121

评论数 0

Golang精编100题1:选择题

1.【初级】下面属于关键字的是() A. func B. def C. struct D. class 参考答案:AC 2.【初级】定义一个包内全局字符串变量,下面语法正确的是() A. var str string B. str := “” C. str = “” D. va...

2019-03-14 22:27:37

阅读数 364

评论数 0

Golang精编100题2:填空题

1.【初级】声明一个整型变量i__________ 参考答案:var i int 2.【初级】声明一个含有10个元素的整型数组a__________ 参考答案:var a [10]int 3.【初级】声明一个整型数组切片s__________ 参考答案:var s []int 4.【初...

2019-03-14 22:27:32

阅读数 153

评论数 0

Golang精编100题3:判断题

1.【初级】数组是一个值类型() 参考答案:T 2.【初级】使用map不需要引入任何库() 参考答案:T 3.【中级】内置函数delete可以删除数组切片内的元素() 参考答案:F 4.【初级】指针是基础类型() 参考答案:F 5.【初级】 interface{}是可以指向任意对象...

2019-03-14 22:27:25

阅读数 141

评论数 0

Golang精编100题4:程序输出

1 写出下面代码输出内容 package main import "fmt" func main() { defer_call() } func defer_call() { defer func() { fmt.P...

2019-03-14 22:27:20

阅读数 105

评论数 0

Golang面试精编1

简单介绍一下Golang? 谷歌开发的一种系统编程语言; 它具有内置的垃圾收集机制; 支持高并发; 代码可以编译成单个可执行二进制文件,不需要添加库或运行时环境即可在服务器上执行; Golang是否可以声明一个类? 可以,type Person struct{…} G...

2019-03-14 22:27:14

阅读数 533

评论数 0

Golang面试精编2:并发相关

简述goroutine调度器模型? go为什么有如此强大的并发能力——得益于其goroutine调度器? 简述goroutine并发模型? MPG模型:goroutine的并发模型可以归纳为MPG模型; MPG概念:线程(machine,系统线程,物理线程)-内核(processor)...

2019-03-14 22:27:08

阅读数 311

评论数 0

5.12 Go语言破解SSH服务器

需求和思路分析 现在的很多小伙伴们都拥有了自己的云服务器了,lots of them! 平时大家是怎么做服务器管理的呢?相信多数人都是通过SSH客户端连接过去的吧; 无论PUTTY还是XShell,我们只需要一个登陆密码,就能轻松地登陆到远程服务器终端,然后对我们的服务器做任何事情; ...

2019-02-21 16:48:00

阅读数 273

评论数 0

5.11 Go语言文本大数据处理(2):文件分割与入库

需求分析 上一节我们对文本大数据进行了读入和清洗,这一节我们把清洗后的数据存入MySQL数据库,清洗过后的有效信息约为1800万条; 思路分析 要想提高数据写入的速度,我们一方面要做并发的数据库写入,一方面又要尽量减少操作的次数,一次性插入尽可能多的记录; 最终的方案如下:...

2019-02-19 13:53:38

阅读数 161

评论数 0

5.10 Go语言文本大数据处理(1):读入、清洗、分类

需求分析 如图是一个大小达到1.3G的纯文本大数据,其中记录了情人节当天帝各大宾馆的开房数据~ 我们对这一大数据文本进行读取、清洗、分类、入库; 读取文本大数据 通过ioutil.ReadFile(filename)API可以傻瓜式地一次性读入全部数据 //一次性将全...

2019-02-18 15:57:05

阅读数 282

评论数 0

5.9 Go语言项目实战:驾考系统

项目需求 考场签到,名字丢入管道; 只有5个车道,最多供5个人同时考试; 考生按签到顺序依次考试,给予考生10%的违规几率; 每3秒钟巡视一次,发现违规的清出考场,否则输出考场时序良好; 所有考试者考完后,向MySQL数据库录入考试成绩; 成绩录入完毕通知考生,考生查阅自己的成绩; 当前目录下的...

2019-01-16 17:52:19

阅读数 289

评论数 0

4.12 并发技术:sync包同步调度综合案例

同步调度概述 Go语言的并发中,当使用go关键字开辟若干新的协程时,如果不加干涉,它们会完全并发地得到执行; 而所谓调度,就是在并发的局部植入一些串行和同步的操作,让某些协程有逻辑上的先后关系; 执行同步调度,可以通过管道读写阻塞和Go语言SDK提供的sync包下的API两种方式; G...

2019-01-16 12:03:09

阅读数 98

评论数 0

4.11 并发技术:原子操作

概述 sync/atomic包下提供了原子操作的系列API 官方文档的解释是: atomic包提供了底层的原子级内存操作,对于同步算法的实现很有用。 这些函数必须谨慎地保证正确使用。除了某些特殊的底层应用,使用通道或者sync包的函数/类型实现同步更好。 应通过通信来共享内存...

2019-01-11 17:46:34

阅读数 76

评论数 0

4.10 并发技术:条件变量案例

案例1:服务器负载控制 监听最大客户端连接数 服务端协程:只要服务器过载,就通知控制协程,并进入阻塞等待 控制协程:受到服务端预警,削减客户端数量,并通知服务端(预警已解除) package main import ( "fmt&...

2019-01-11 17:26:04

阅读数 73

评论数 0

4.9 并发技术:条件变量

概述 sync包下的Cond对象能够帮我们实现并发中对任意对象的值的监听 当不满足条件时,我们进行阻塞等待 而当条件满足时,我们又能以通知的形式通知等待协程 这有点类似并发中的观察者模式 案例说明 在下面的例子中,投资者监听比特币的市场行情 当行情下跌时,投资者协程阻塞等...

2019-01-11 17:14:12

阅读数 61

评论数 0

4.8 并发技术:只执行一次

sync.Once概述 sync包下的Once对象可以保证某个函数在多任务并发过程中只被执行一次 var once sync.Once once.Do(task()) 案例 下面的案例中,我们开辟10条协程一起追杀比尔,但保证比尔只被杀死一次 即Kill(bill)在并发中确保...

2019-01-11 17:06:57

阅读数 89

评论数 0

5.8 Go语言项目实战:点对点聊天

需求摘要 实现一个分布式点对点的聊天系统,所有节点都是对等的,不需要中央服务器 实现注册节点名称,节点之间通过节点名称发起会话 思路分析 节点同时具备服务端和客户端的职能 服务端只负责接收其它节点主动发送过来的消息 客户端只负责主动向其它节点发送消息 通信都用短连接,服务...

2019-01-11 16:57:45

阅读数 207

评论数 0

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