自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 go-正则

import ( "fmt" "regexp")const text = `my email is ccmouse@gmail.com@abc.comemail1 is abc@def.orgemail2 is kkk@qq.comemail3 is ddd@abc.com.cn`func main() { re := regexp.MustCompile( ...

2019-12-05 22:16:23 194

原创 go-http

1.使用http客户端发送请求2.使用http.Client控制请求头部等3.使用httputil简化工作package mainimport ( "fmt" "net/http" "net/http/httputil")func main() { request, err := http.NewRequest( http.MethodGet, "http:...

2019-12-02 21:47:36 325

原创 go-迷宫算法

maze.in文件:6 50 1 0 0 00 0 0 1 00 1 0 1 01 1 1 0 00 1 0 0 10 1 0 0 0maze.go文件:package mainimport ( "fmt" "os")func main() { maze := readMaze("maze/maze.in") step := walk(maze, ...

2019-12-02 10:30:03 250

原创 go-select

1.select的使用2.定时器的使用3.在select中使用nil channel,实现channel中有值才处理,避免处理空值func generator() chan int { out := make(chan int) go func() { i := 0 for { time.Sleep( time.Duration(rand.Intn(1500...

2019-11-28 22:06:28 130

原创 go-用channel进行树的遍历

func (node *Node) Traverse() { node.TraverseFunc(func(n *Node) { n.Print() }) fmt.Println()}func (node *Node) TraverseFunc(f func(*Node)) { if node == nil { return } node.Left.TraverseF...

2019-11-27 21:43:40 320

原创 go-使用channel等待任务结束

1.使用channel等到任务结束func doWork(id int, c chan int, done chan bool) { for n := range c { fmt.Printf("Worker %d received %c\n", id, n) go func() {done <- true}() }}type worker struct { ...

2019-11-26 22:18:36 221

原创 go-channel

1.channel2.buffered channel3.range关键字接收channel中的内容func worker(id int, c chan int) { for n := range c { fmt.Printf("Worker %d received %c\n", id, n) }}func createWorker(id int) chan&l...

2019-11-26 22:07:08 12814

原创 go-http测试

errwrapper_test.go:import ( "errors" "fmt" "io/ioutil" "net/http" "net/http/httptest" "os" "strings" "testing")func errPanic(_ http.ResponseWriter, _ *http.Request) error { panic(123)...

2019-11-24 18:32:02 441

原创 go-性能调优手段

1.使用命令行生成性能数据文件->go test -bench . -cpuprofile cpu.out2.查看性能数据文件->go tool pprof cpu.out ->web // web命令需要安装可视化工具:http://www.graphviz.org/download/...

2019-11-20 21:49:48 165

原创 go-表格驱动测试

求最长不重复字串方法如下:func lengthOfNonRepeatingSubStr(s string) int { lastOccurred := make(map[rune]int) start := 0 maxLength := 0 for i, ch := range []rune(s) { if lastI, ok := lastOccurred[ch]; ok ...

2019-11-18 22:09:25 227

原创 go-错误处理

摘要:实现一个读取文件内容的服务。通过defer+panic+recover及type assertion实现错误处理。handler.go(实现读取):package filelistingimport ( "io/ioutil" "net/http" "os" "strings")const prefix = "/list/"type userEr...

2019-11-13 22:08:35 151

原创 go-函数实现接口

type intGen func() intfunc fibonacci() intGen { a, b := 0, 1 return func() int { a, b = b, a+b return a }}func (g intGen) Read( p []byte) (n int, err error) { next := g() if next > ...

2019-11-10 15:17:51 343

原创 go-字符串

func main() { s := "Yes我爱慕课网!" // UTF-8 fmt.Println(s) for _, b := range []byte(s) { fmt.Printf("%X ", b) } fmt.Println() for i, ch := range s { // ch is a rune fmt.Printf("(%d %X) ", i, ...

2019-10-24 21:54:56 121

原创 go-map

func main() { m := map[string]string{ "name": "ccmouse", "course": "golang", "site": "imooc", "quality": "notbad", } m2 := make(map[string]int) // m2 == empty map var m3 map[stri...

2019-10-24 21:31:10 120

原创 go-切片操作

func printSlice(s []int) { fmt.Printf("%v, len=%d, cap=%d\n", s, len(s), cap(s))}func main() { fmt.Println("Creating slice") var s []int // Zero value for slice is nil for i := 0; i < 10...

2019-10-23 22:57:39 147

原创 go-切片概念

func updateSlice(s []int) { s[0] = 100}func main() { arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7} fmt.Println("arr[2:6] =", arr[2:6]) fmt.Println("arr[:6] =", arr[:6]) s1 := arr[2:] fmt.Println(...

2019-10-23 22:51:05 121

原创 go-文件读取

// 一行一行读取func printFile1(filename string) { file, err := os.Open(filename) if err != nil { panic(err) } printFileContents(file)}func printFileContents(reader io.Reader) { scanner := bufio...

2019-09-26 21:44:04 168

原创 go-循环

for语句:// 十进制转二进制func convertToBin(n int) string { result := "" for ; n > 0; n /= 2 { lsb := n % 2 result = strconv.Itoa(lsb) + result } return result}func forever() { for { // 相当...

2019-09-26 21:40:51 120

原创 go-条件语句

go的if语句可以这么用:import ( "fmt" "io/ioutil")const filename = "abc.txt"if contents, err := ioutil.ReadFile(filename); err != nil { // contents作用域仅在该block下 fmt.Println(err)} else { fmt.Print...

2019-09-26 21:22:08 96

原创 go-常量和枚举

const( // go 中枚举类型用常量表示 cpp = iota // iota表示自增 _ // _表示跳过 python golang java)println(cpp, python, golang, java)打印结果:0 2 3 4const( ...

2019-09-26 20:58:08 168

原创 go-内建变量

bool, string(u)int, (u)int8, (u)int16, (u)int32, (u)int64(u)uintptr // 指针byte, rune // rune,32位4字节,go的字符类型float32, float64complex64, complex128 // 复数,欧拉公式:cmplx.Exp(1i*math.P...

2019-09-25 22:32:23 165

原创 使用vagrant,在windows操作系统中进行linux环境开发

需要提前安装好的工具: VirtualBox Vagrant Xshell 搭建步骤:1.下载合适的box文件(http://www.vagrantbox.es/)并将box文件添加至vagrant容器中。这里作者将下载好的.box文件放在“E:\Vagrant\bin”目录下,打开xshell,进入该目录,进行添加:vagrant box add bo...

2019-03-17 23:18:43 277

原创 mysql配置读写分离

一.原理在配置完成主从复制的基础上,通过一台另外的代理服务器做转发,若判断为读,则走从库;若为写,则走主库二.环境三台ubuntu16.04(x86_64)虚拟机ip:192.168.3.221(主); 192.168.2.254(从);192.168.2.245(mysql_proxy代理)mysql版本:14.14 Distrib 5.7.23, for Linux(x86...

2018-10-11 21:23:07 367

原创 msql配置主从复制

一.原理从库从主库读取二进制日志信息,实现同步二.环境两台ubuntu16.04(x86_64)虚拟机ip:192.168.3.221(主); 192.168.2.254(从)mysql版本:14.14 Distrib 5.7.23, for Linux(x86_64)三.配置(以下操作在root用户下)1.修改mysql配置文件在本系统中,配置文件位置:/e...

2018-10-11 17:59:53 193

原创 python中使用collection.find()在mongodb中查询大量数据时的问题

问题描述:假设collection中有2000条数据,执行如下代码:i=1for content in collection.find(): print i++打印到101时,打印停止,等待若干秒后继续打印完全。 分析:mongodb的find()方法返回游标cursor,这里有一个限制,默认包含101个文档。官方文档。 解决方案:1.设置batch size:i=1for

2017-08-11 18:07:14 16627

原创 Mongodb运用实况及解决方案

1.为集合中的每个文档添加update_time字段,内容为时间戳。2.找出给定键的所有不同的值3.分组;查询文档内容;排序;分页 (加最后一个参数查看执行状态)4.求分组后的组数5.对于这样的文档结构6.查看执行状况7.索引三连

2017-07-16 13:51:51 518

原创 解决ubuntu16.04上网无法解析DNS问题

问题描述:情景:1.连接校园网wifi时,通过网页认证通过,只能正常上网几秒,之后出现无法打开页面的错误。2.连接校园网有线时,通过客户端认证程序认证通过,打开网页仍然出现无法访问。原因推测:系统没办法自动获取DNS服务器。解决方法:1.右击桌面右上角网络图标,点击“编辑连接选项”。2.打开编辑窗口后,在网络列表中,选中使用的网络,点击右侧的“编辑”。3.打开新的编辑窗口后,选择“IPv4设置”(

2017-05-20 14:21:04 14999 1

原创 websocket实现数据库更新时前端页面实时刷新

如题,实现以上功能,我知道主要有两大种思路:轮询:轮询的原理是隔一段时间向服务器发送一个请求,这里不累述。这里主要谈一下第二种思路。websocket进行前后端通讯:websocket是html5的新协议,基于TCP,在一次握手后,建立http连接,实现客户端与服务端全双工通信。相比较轮询机制,节约资源,不需要频繁的请求。下面通过最精简的javaweb+mysql实例说明,只贴出关键代码。(原

2017-05-12 10:05:13 48553 6

原创 Lavarel中Facades的理解和使用

接着上一篇阐述Contracts的博文,这一篇来写一写我理解的Facades。Facades 为应用程序的 服务容器 中可用的类提供了一个「静态」接口。说白了,就是让服务容器中的类用起来更方便些。我理解的Facades在Lavarel结构中的位置,在上一篇本博文中已经上图说明,大家可点击参阅。下面写一些怎么使用Facades。第一步,写一个类继承Facade:<?phpnamespace App\

2017-04-25 20:40:46 1174 1

原创 Laravel中Contracts的理解和使用

这两天详细的学习了下lavarel中contracts和facades这两部分内容。这一篇就先谈谈对contracts的理解和用法。Laravel 的 Contracts 是一组定义了框架核心服务的接口。说白了就是一组接口。使用它就是为了降低耦合性。即便如此,是不是也有同学会搞不清楚Contracts在lavarel体系中的到底在一个什么样的位置?下面上一张自制的图,也许有地方不对,但是初学的同学可

2017-04-25 17:55:15 5360 2

转载 SimpleXML 使用例子

要处理XML 文件,有两种传统的处理思路:SAX 和DOM。SAX 基于事件触发机制, 对XML 文件进行一次扫描,完成要进行的处理;DOM 则将整个XML 文件构造为一棵DOM 树,通过对DOM 树的遍历完成处理。这两种方法各有优缺点,SAX 的处理思路相对抽象, DOM 的处理过程相对烦琐,都不很适合新手的入门。 PHP5 推出了一套新的XML 处理函数,即SimpleXML。

2017-02-20 21:24:23 429

转载 绕过防注入的几种方法

1、运用编码技术绕过如URLEncode编码,ASCII编码绕过。例如or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。 2、通过空格绕过如两个空格代替一个空格,用Tab代替空格等,或者删除所有空格,如or swords =‘swords,由于mssql的松散性

2017-02-20 16:51:38 1370

原创 base64的应用

今天和舍友做了网站上传头像的部分,思路就是前端通过post传给我通过base64编码的过的数据,然后我从中摘录信息,并切将处理过的数据转成图片文件。代码:<?php //上传用户头像 //state为1上传成功,0失败 header("Content-type: text/html; charset=utf-8"); session_start(); i

2017-02-20 00:08:45 429

原创 在使用img标签的src属性引用网络图片资源时加载图片失败的问题

问题如标题,以简单代码演示:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <img src="http://p1.so.qhmsg.com/t01f77e838597537491.gif"> <

2017-01-24 22:38:43 15244 5

转载 科学家进餐问题

package 科学家进餐问题;/*每个哲学家相当于一个线程*/class Philosopher extends Thread{ private String name; private Fork fork; public Philosopher(String name,Fork fork){ super(name); this.name

2016-10-06 22:59:38 1848

原创 Activity(测姻缘总结)

包含代码及总结

2016-01-03 13:40:21 442

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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