自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 java线程池 ThreadPoolExecutor 崩溃!!!

现象:创建一个线程池,最大线程数5,阻塞队列长度为25,当当前任务数30+的时候,程序直接崩溃了!!val threadPoolExecutor = ThreadPoolExecutor(3, 5, 1, TimeUnit.SECONDS, LinkedBlockingDeque<Runnable>(25))查了会源码,发现自己被这个队列的名字给忽悠了,LinkedBlockingDeque,在我印象中链表不会存在下标越界的情况,这个block也让我往阻塞当前线

2021-09-13 20:54:09 48

原创 YYModel的使用

YYModel笔记yymodel用于模型的序列化与反序列化1、简单的model与json(字典类型)的转换// JSON:{ "uid":123456, "name":"Harry", "created":"1965-07-31T00:00:00+0000"}// Model:@interface User : NSObject@property UInt64 uid;@property NSString *name;@property NSDate *crea

2021-07-26 18:25:26 16

原创 ios podspec学习笔记

podspec.learn创建podspec:pod spec create 名字[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzn61Zt9-1626867805118)(/Users/inke213303m/Library/Application Support/typora-user-images/image-20210721161313198.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJ5zXX1f-162

2021-07-21 19:44:09 58

原创 ios命名规范笔记

命名规范1、尽量不要缩写,寓意明确,动词+名次(+介词)2、对不同类的相同操作,具有相同的名字3、什么是self-referential?4、同一个sdk下,前缀相同,NW,LB5、when naming classes, protocols, functions, constants, and typedef structures时用前缀,方法名和结构体字段不能用前缀6、命名常量,前缀+大写开头的驼峰;​ 类方法,小写开头驼峰;​ do,get不要用,get前缀是返回多个时

2021-07-15 10:33:59 12

原创 ios xcode----某个头文件找不到的问题,“.h file not found”

我这边的情况:我的一个demo依赖了本地的SDK,结构如下图然后在SDK中增加了一个类,编译这个demo出错了网上的啥修改build settings都不对执行pod install!!!!因为我的demo是pod依赖,没更新依赖肯定找不到。导师给我扩展了一个情况:如果在SDK中增加一个文件夹,文件夹中增加一个类,pod install也是不行的。这时候就要查看podspec文件了,把新增的文件夹路径加到里面...

2021-07-09 15:38:10 244

原创 golang BFS DFS

突然想起一个面试题,用go实现不太好写,明天在想有什么好的方法实现图,暂时就想到这么实现package mainimport "fmt"type list struct { data string //表示能够访问的点,包括自己,考虑到QQ也可以给自己发消息 next []*list}var m map[string]bool//遍历每层的点,第一层就是A点func DFS(row []*list){ if len(m) == 5 { return } //下一层的点的集

2020-11-18 01:11:36 602

原创 在beego框架中写单元测试时,go test 获取不到app.conf的配置信息(解决)

赶时间可以直接看解决方法的第一个⚪目录问题描述原因解决方法问题描述最近需要在beego框架里测试一个函数,这个函数需要用到beego.AppConfig获取app.conf的配置信息,但在执行go test无法获取。原因首先,我们打开你的 项目/main.go, 看到import了 “github.com/astaxie/beego”,要知道,在go run 和go test的时候,会先执行import的所有包的init函数⚪在执行beego的init的函数时候,会先默认解析当前目录的conf

2020-09-19 16:09:56 607 1

原创 json 字符串的Unmarshal规范

今天测试的时候,解析json字符串遇到麻烦了json字符串格式不对,有可能报错 ’ /’ ',unmarshal不认识。记得json字符串格式(windos下):Unmashal_data := `{"id":"436b155f-8b57-4881-8fbd-42bfcd14145f","data":"1111"}`json字符串一定是要 用 Esc下面那个 ` 来包(这个符号就是golang中用来包tag的)...

2020-09-17 13:10:05 423

原创 golang init 与 test

执行go test 也会先执行init()hello.gopackage testinitimport ( "fmt")func init(){ fmt.Println("initing........")}init.gopackage testinitimport "fmt"func hello(){ fmt.Println("!!!!!hello")}hello_test.gopackage testinitimport ( "fmt" "testin

2020-09-17 10:06:33 1419

原创 Golang 从文件中解析json数据

解析的是字符串直接用json.Unmarshal从文件中读,比如来写个解析函数:package mainimport ( "fmt" "encoding/json" "os" "bufio")type Person struct { Name string `json:"name"` Age int `json:"age"`}func main(){ file,_ := os.Open("./test.json") reader := bufio.NewReader(

2020-08-20 16:38:28 333

原创 探讨RabbitMQ五种工作模式

参考:RabbitMQ官方文档RabbitMQ几种工作模式介绍目录一、工作队列模式——work queue消息确认公平派遣消息持久化二、订阅模式——Publish/Subscribe交换器与队列的绑定三、路由模式——Routing直接交换多重绑定四、通配符模式——Topic五、RPC模式一、工作队列模式——work queue其工作模式采用的是多消费者消费同一队列中的信息publisher将数据发到消息队列中,数据将默认采用循环调度的方式分配给消费者,即每一个消费者按队列的顺序依次得到相等量的

2020-08-14 22:21:10 55

原创 基于grpc协议的网络编程步骤

我对gRPC还停留在勉强会用的级别,苦于没有项目经历实现一下,下面讲讲自己总结、公开课中老师讲的的gRPC的使用目录proto文件的编写利用自定义的协议编写微服务goproto文件的编写⚪也就是编写一个协议,把输入和输出以及服务分别封装到一个对象(message和service)中⚪要明确自己的服务用来做什么,输入是什么,输出是什么。对于网络编程来说就是请求什么,响应什么⚪比如对于根据账号查密码的业务,用户在前端输入账号,在后端我们根据账号从数据库查密码,将密码返回给前端。也就是说输入这个服务输入

2020-08-13 16:07:52 143

原创 学习MySQL主从复制与读写分离看这个就够了,公开课视频笔记,

MySQL复制过程从库会产生io,sql两个线程,从库的io线程会请求主库的binlog,主库会产生一个logdump线程,用于向从库传binlog,从库将得到的binlog写入中继文件relaylog中,sql线程读取中继文件中的日志,并解析成sql语句逐一执行...

2020-08-13 11:21:45 203

原创 数据库隔离与锁知识点汇总

事务的四个性质1、原子性:事务中的所有操作要么不执行,要么都执行2、一致性:数据遵循守恒,a向b转了100,事务结束后必定是a少了100,b多了1003、隔离性多个事务并发执行的化,必定和穿行执行的效果一样4、持久性:事务在执行结束后,对数据库的影响是永久的事务并发三个问题1、脏读:不同事务,一个事务读了另一个事务没有提交的数据2、不可重复读:多次读取同一个数据的结果不一样。即在连续的俩次读取之间,有一事务对这一数据做了修改并提交了3、幻读:一事务对表某范围的数据做修改,另一事务对该表做插入

2020-08-12 00:01:43 129

原创 总结数据库索引知识点

索引失效1.隐式转换导致索引失效:select * from users where name>123要把123转成字符串2.组合索引,当 前面的索引包含一个范围判断,将不调用后面的索引select * from uses where name>“aaa” and age = 15这时,只用了name的索引...

2020-08-11 17:10:36 124

原创 golang断点续传

场景当我们用百度网盘下载或者迅雷下载时,某一时刻下到一半不想下了,按了暂停,关了程序,关了机,第二天打开百度网盘,继续下昨天的东西,发现,是从昨天暂停的地方开始继续下载的,这种体验就很棒。不然,像百度云盘不充会员只有100k左右的下载速度,一下午加一晚上好不容易下了一半,睡觉去了,第二天打开电脑接着下,发现还要重新开始,看着这老牛的速度,崩溃了。这就体现了断点续传的妙用了。我们以...

2020-08-10 12:53:36 438

原创 golang jieba库 分词搜索

⚪ 有这样一个场景,某36为了推广,需要根据你的兴趣爱好给你发广·告,这个依据就是你在他游览器搜索的内容。比如36接了个广告任务,推广霸王去屑洗发水,用户在百度的时候,直接搜“霸王去屑洗发水”的很少,这时就体现了分词的力量。⚪36将“霸王去屑洗发水”这个字符串分成“霸王”,“去屑”,“洗发水”,甚至”屑“,”洗发“。当用户搜“如何去屑?”,“洗发水成分是什么”,“洗发水能喝吗”,“霸王别姬”类似的一旦含有以上分词,该用户就被认定为潜在的”发展对象“,这样一定程度上增加了推广的准确性。下面是Go语言字符串

2020-08-09 17:06:49 431

原创 golang整型,float与byte转换

使用场景:在tcp协议传输中,为了防止粘包,需要先发送消息头,即先发送数据长度,在根据长度write真正的数据,然e,由于网络传输都是字节流,怎么将整型转为字节流呢?只需四步:转换----int转int64申请----申请一个字节缓冲写入----按照二进制,向缓冲写入数据取出----以字节流从缓冲中取出func IntToBytes(n int)[]byte{ data:=int64(n)//数据类型转换 bytebuffer:=bytes.NewBuffer([]byte{})//字节集

2020-08-09 16:13:23 630

原创 golang三类加密算法

整理一下加密算法,以前跟这b站学的各个加密的原理我不想知道,感觉能用就行目录哈希算法对称加密非对称加密哈希算法名称速度/安全性crc32速度快,安全性低 2^32adler速度快,安全性低 2^32crc64速度稍微快,安全性低 2^64md5速度一般,安全性一般 2^128sha1速度一般,安全性一般 2^128sha256速度慢安全性高 2^256sha512速度慢,安全性极高 2^512hash函数应用

2020-08-09 15:20:01 969 1

原创 八大基础排序算法总结(golang实现)

1

2020-08-08 22:35:34 251

原创 vs_code go语言能用到的插件(代码补全,自动引包等)

直接黏贴到bin目录,别忘了回来感谢我百度云盘连接:链接:https://pan.baidu.com/s/1HUXsLtkfwBJP_Bc-EFOLRw提取码:ajyz

2020-08-08 14:26:20 1180

原创 基于TCP协议的 海量用户即时通讯系统(聊天室)知识点汇总

上一篇复习了聊天室代码的编辑过程,这次汇总一下聊天室涉及的知识点,存粹是为了复习!一、TCP核心代码1.服务器监听Listenlisten, err := net.Listen("tcp", "127.0.0.1:8889")是等待client连接的状态2.服务器获取连接Acceptconn, err := listen.Accept()完成三次握手,服务器与客户端建立连接3.客户端主动连接服务器Dialconn, err := net.Dial("tcp", "localhost:8

2020-08-08 14:19:03 187

原创 基于TCP协议的 海量用户即时通讯系统(聊天室) 实验详细过程

写这篇博客纯粹是为了复习目录一、实验目的二 、模块及功能1.utils2.common3.client端4.server端三、模块实现3.client端4.server端四、单元测试一、实验目的 1、练习熟悉C/S架构方法及规范 2、了解熟悉基于golang的tcp协议网络编程的方法及步骤 3、了解联系利用redis第三方插件,实现在go语言中使用redis 4.、练习面向对象编程 5、练习掌握golang的goroutine和channel等的使用,加强go 语言编程的熟练度二 、模块

2020-08-08 13:45:10 225

原创 go语言接口切片,管道切片

interface切片定义语法:arr := []interface{}{}orarr := make([]interface{}, 0)一开始有点懵,仔细一想,interface{} 才是一个数据类型,所以第一种方法后面两个大括号不足为奇;第二种方法,比较清晰。这个切片可以存储所有的数据类型,以前我记得老师说实际作用不大,认识就行,小demo //arr := []interface{}{} arr := make([]interface{}, 0) type mystc struct{

2020-06-09 09:08:24 481

原创 go语言 os/exec. cmd

今天接触了新的模块io/exec下面实现了用exec库查看本地ippackage mainimport ( "fmt" "io/ioutil" "os/exec")func GetCmdRes(cmdstr string)string{ //形成一个被可执行的命令 // func Command // func Command(name string, arg ...string) *Cmd // 函数返回一个*Cmd,用于使用给

2020-06-06 21:20:06 210

原创 go语言快速排序(优化内存)

(视频学习来自哔哩哔哩)源代码:package main//交换的函数func Swap(arr []int, i, j int){ arr[i],arr[j]=arr[j],arr[i]}func QuickSort2(arr []int, left,right int){ if (right-left)<1{//递归结束标志,当数组只有一个时认为时有序的 return } //以第一个作为基准(升序) posnum := arr[left] //定义区域 low :

2020-06-05 13:42:59 149

原创 go语言异步下载图片(简单的爬虫练习)

效果展示:源代码:package mainimport ( "sync" "os" "strconv" "time" "regexp" "io/ioutil" "net/http" "fmt")var ( //用于阻塞主程序 waitgroup sync.WaitGroup //开一个5个大小的管道(同步执行5个go) dlchan = make(chan int,5))//爬网页找图片(此函数不止爬图片)func FindMatchString(htmlAddr

2020-06-02 21:19:21 413

原创 go语言向byte切片加内容

html_byte = append(html_byte, []byte("45010119740520744x")...)

2020-06-02 14:42:11 720

原创 windows下 go语言 protocolbuffer 安装(实在用尽办法了看看我这个)

windows下 go语言 protocolbuffer 安装(实在用尽办法了看看我这个)1.正常的安装过程: · 安装 protoc: 1. 在[该链接](https://github.com/protocolbuffers/protobuf/releases/tag/v3.3.0)下下载protoc-3.3.0-win32.zip的包,如果连接无效,自己在网上找protoc-3.3.0-win32.zip 2. 解压,将解压出来的

2020-05-26 20:39:18 249

空空如也

在github上为go语言安装mysql,为啥官方的有错误

发表于 2020-03-24 最后回复 2020-03-24

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

TA关注的人 TA的粉丝

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