![](https://img-blog.csdnimg.cn/20191016083331637.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
吾解
_岩芽
以后愿你不负自己,不负热爱。
展开
-
内存四区模型
计算机内存的四区原创 2022-05-18 20:45:52 · 171 阅读 · 0 评论 -
数据结构—红黑树和二叉搜索树
红黑树与二叉搜索树原创 2022-05-09 14:29:47 · 501 阅读 · 0 评论 -
ProtoBuf—编码原理
protobuf编码原理protobuf将协议缓冲区消息(message)编译压缩成二进制格式的文件。当消息被编码时,键和值被连接成一个字节流,tag-value。protobuf中message是一系列键值对,message的二进制版本只是使用字段号(field`s number和wire_type)作为key,key的后3位位表示的是wire_type。每个字段的名称和声明类型只能在解码端通过引用消息类型的定义。如果没有数据结构描述.proto文件,拿到数据以后是无法解释成正常数据结构的。原创 2022-05-04 19:09:35 · 1247 阅读 · 1 评论 -
ProtoBuf—安装
原创 2022-05-04 18:55:47 · 138 阅读 · 0 评论 -
Protobuf—简介,优缺点
protobuf 是Google旗下的一款平台无关、语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作为不同应用、不同语言之间相互通信的数据交换格式,只要实现相同的协议格式的统一proto文件,就可以被编译程不同语言版本,从而加入各自的工程中。这样不同语言之间可以解析其它语言通过protobuf序列化的数据。目前protobuf官网提供了C++,C#,Dart,GO,JAVA,Kotlin,Python等语言支持。Google在2008年7月7号将其作为开源项目对外公布。1. ProtoB原创 2022-05-04 17:01:26 · 2548 阅读 · 0 评论 -
gRPC流数据传输
stream的实现其实和service一样是接口;1. 普通服务,5小节就是此部分的实现.proto文件:rpc 方法名(变量类型)returns(变量类型){}服务器:func(grpc服务端结构体)方法名(ctx,入参类型指针)回参类型指针,error{}客户端:返回值,错误 = 创建好的grpc客户端连接.方法名(ctx,入参)2. 流式传入,返回是普通的(客户端流传入,服务端普通返回).proto文件:rpc 方法名(stream 变量类型)returns(变量类型){}原创 2022-04-22 21:26:42 · 1073 阅读 · 1 评论 -
GO语言学习笔记之select
go语言中select的用法原创 2022-04-21 16:11:15 · 143 阅读 · 0 评论 -
GO语言学习笔记之channel
channel定义:channel是Go语言中的一个核心数据类型,可以将它看为管道或队列(FIFO)。并发核心单元通过它就可以发送或者接受数据进行通讯,这在一定程度上又进一步降低了编程的难度。目的:主要用来解决go程的同步问题以及协程之间的数据共享的问题。goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。goroutine奉行通过通信来共享内存,而不是共享内存来通信。引用类型channel可用于多个goroutine通信,其内部实现了同步,确保并发安全创建cha原创 2022-04-20 16:29:26 · 980 阅读 · 0 评论 -
GO语言学习笔记之协程
1. 协程定义:coroutine,也叫轻量级线程。协程并发为为了提高程序执行的效率,线程阻塞期间去执行其它指令,并不一直等待。完成并发的方法:进程并发->稳定性强线程并发->节省资源协程并发->效率高2. Goroutine:go程创建于进程中,直接使用go关键字,放置于函数调用前面,产生一个Go程。特性:主go程结束,子go程也随之消失。函数runtime.Gosched():出让当前go程所占用的cpu时间片,当再次获得CPU,从出让位置继续恢复执原创 2022-04-20 16:28:27 · 124 阅读 · 0 评论 -
GO语言学习笔记之并发
1. 并发并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行;借助多核CPU实现。真并行并发(concurrency):指在用以时刻,只有有一条指令执行,但多个进程指令被快速轮换执行,是的在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,通过CPU时间片轮转使多个进程快速交替的执行。假并行eg:并行是两个队列同时使用两台咖啡机;并发是两个队列交替使用同一台咖啡机。由于并行是物理层面的技术,我们之研究并发。2. 进程与线程进原创 2022-04-20 16:27:24 · 155 阅读 · 0 评论 -
Go语言学习笔记之基本概念——文件的操作
文件的打开,读写操作打开和创建创建:os.Create(文件路径),如果路径下没有则创建,如果存在,则清除所有信息;打开f,err := os.Open(文件路径),只读权限,返回file指针;文件不存在,打开失败;f,_ := os.OpenFile(文件路径,读写模式,权限),以只读,只写,读写方式打开文件,文件不存在,则打开失败;也可以用来打开目录;参数1:表示文件路径,可以使用相对路径或绝对路径;参数2:表示读写模式,常见的有:O_RDONLY(),O_WR原创 2022-04-13 15:51:44 · 293 阅读 · 0 评论 -
Go语言学习笔记之基础概念——结构体
结构体结构体是一种数据类型,type Person struct{ name string sex byte age int}初始化:顺序初始化:依次将结构体内部所有成员初始化,eg: var man Person = Person{"July",'m',33}指定成员初始化:未初始化的成员变量,取该数据类型对应的默认值。eg: man : = Person{name:"July",age:33}使用:使用“ . ”原创 2022-04-13 15:50:07 · 855 阅读 · 0 评论 -
Go语言学习笔记之基础概念——map
mapkey是唯一的,且key不能是引用类型;切片、函数以及包含切片的结构体类型由于具有引用语义,不能作为映射的键。使用这些键会造成编译错误。map是无序的,所以每次打印顺序可能不同;map不能使用cap(),自动扩容;删除map,delete(待删除的map,删除key),map传参为传引用;...原创 2022-04-13 15:48:51 · 106 阅读 · 0 评论 -
Go语言学习笔记之基础概念——切片
为什么要用切片?数组容量固定,不能自动扩展;值传递,数组作为函数传参的时候,将整个数据值拷贝一份给形参。切片本质:不是一个数组的指针,是一种数据结构,用来操作数组内部元素。切片名[low,high,max]->low:起始下标位置;high:结束下标位置;len:high-low;cap:max-low。创建切片:make([]type,len,cap);*make([]type,len)*;自动推导类型创建切片;注:make函数只能创建slice,map和channel,并..原创 2022-04-13 15:47:14 · 586 阅读 · 0 评论 -
Go语言学习笔记之基础概念——栈帧
stack默认分配空间是1M,最大可以实现8M;heap默认分配1G,所以我们认为对空间是无限的,但也要申请完释放。栈使用完之后就会进行释放,但是堆不会。给函数运行提供内存空间,从stack中来,并且在stack上产生内存。当函数调用时,产生栈帧;函数调用结束,释放栈帧;栈帧连续分配内存栈帧存储:局部变量、形参、内存字段描述值(栈基指针,栈顶指针)全局变量存储在数据区的read only,并且随.bss加载到内存,并默认初始化左值是变量的内存空间,左值是写操作;右值是变量内存空间存储的数据值,右.原创 2022-04-13 15:45:19 · 135 阅读 · 0 评论 -
Go语言学习笔记之基本概念—指针
指针就是地址,指针变量就是存储地址的变量。 使用”%q"打印go语言带双引号的字符串,可以显示出空结果;%s与Println一样的结果指针使用注意:空指针:未初始化的指针。var p *int野指针:用一片无效的地址空间来初始化指针初始化:使用new(type)函数初始化,默认为类型的默认值,在heap上申请一段空间;使用&取地址运算符;指针传参:值传递传引用:将地址值作为函数参数,返回值传递。传值:将实参的值拷贝一份给形参。*p是解引用,或者称为间接引用 ,.原创 2022-04-13 15:43:37 · 271 阅读 · 0 评论 -
go语言scanner
原博客原创 2022-03-02 14:16:45 · 380 阅读 · 0 评论 -
slice存的是指针
slice存的是指针地址,如果要实现对参数的同步改变,需要指针传参原创 2022-02-28 15:57:25 · 298 阅读 · 0 评论 -
windows换机经验分享
换新机前的准备把重要资料拷贝复制一份;前题是知道重要资料的文件位置,并一一整合起来。因此建议平时就养成良好的存储习惯,建立一个有自己独特标识的文件夹,将所有重要的资料均存储在该文件夹下,如果可能的话,平时安装新软件的时候,就把相应的软件安装包放在一个文件夹下;之后是将所需软件的安装包都提前下载到一个文件夹中,如果平时就有如此良好的习惯再高效不过了;对浏览器书签的备份,导出一份书签目录;如果是微软浏览器或者谷歌浏览器,一定一定要多同步几次;如果所用浏览器有插件,请将插件的源文件进行拷贝复制,因为新原创 2021-10-14 22:35:43 · 1032 阅读 · 0 评论 -
keras中的concatenate()
实例:from keras import backend as Kimport tensorflow as tfimport numpy as npa = K.variable(np.array([[[1,2],[3,4],[5,6],[7,8]]]))b = K.variable(np.array([[[11,12],[13,14],[15,16],[17,18]]]))c1 = K.concatenate([a,b],axis=0)c2 = K.concatenate([a,b],axis原创 2021-10-03 15:57:54 · 447 阅读 · 0 评论 -
tensorflow报错:ModuleNotFoundError: No module named ‘tensorflow.python.eager‘
报错:ModuleNotFoundError: No module named ‘tensorflow.python.eager‘原因分析:keras和tensorflow的版本不匹配解决办法:改变keras或tensorflow的版本号,使两者相互匹配,比如:原tensorflow 的版本是1.2.1,keras的原版本号是2.3.1;可以将keras的版本号改为2.1.2,这样就可以实现匹配具体步骤:先卸载kerasconda uninstall keras -y再安装相对于的版本c原创 2021-10-03 15:53:44 · 1478 阅读 · 1 评论 -
vgg19图像风格迁移遇到的问题
vgg19图像风格迁移遇到的错误:module 'scipy.misc' has no attribute 'imread'module 'scipy.misc' has no attribute 'imresize'原因分析安装的scipy版本太高,转为1.2.1版本的就可以正常使用了。故而可以通过重新安装指定版本的scipy来解决问题解决办法:import imageio这个包中包含imread和Imwrite,imsave,将之前的scipy.misc.imread()改成imag原创 2021-09-27 16:28:30 · 360 阅读 · 0 评论 -
pip因网络延迟导致安装失败的解决办法
pip下载报错错误提示:ERROR:Exception:Traceback(most recent call last)原因分析以及解决办法:下载待安装的软件版本过高;可通过指定低版本的版本号下载;下载源地址发生网络延迟导致下载失败;可通过更改指定国内下载源地址来下载...原创 2021-09-23 11:13:35 · 177 阅读 · 0 评论 -
github_push出错
github push出错执行 git push -u origin master错误提示:ssh: Could not resolve hostname github.com: No address associated with hostname fatal: Could not read from remote repository.原因分析错误提示中提到是ssh的错误,不能从远程仓库中获取,无法解析hostname git;故有理由判断是SSH失效,所以尝试重新配置ssh解决过程g原创 2021-09-15 10:37:07 · 76 阅读 · 0 评论 -
ElasticSearch搜索代码解析
MDAGNode结点结构图1:![image.png](https://img-blog.csdnimg.cn/img_convert/4a1ff95c5544eb3a46918a828be5247f.png#clientId=ue12c29a2-e5b2-4&from=paste&height=513&id=u2cf5a30c&margin=[object Object]&name=image.png&originHeight=599&origin原创 2021-07-27 16:44:34 · 211 阅读 · 0 评论 -
Centos服务器配置历程
原创 2019-10-16 08:26:30 · 88 阅读 · 0 评论 -
IDEA的安装与配置
原创 2019-10-16 08:21:45 · 134 阅读 · 0 评论 -
GitHub上用gitbash发布项目完整步骤
原创 2019-10-16 08:19:42 · 106 阅读 · 0 评论 -
Java中多线程的相关内容
相关的优秀文章链接:01.可见性、原子性和有序性问题:并发编程bug的源头02.Java内存模型:看Java如何解决可见性和有序性问题03.互斥锁(上):解决原子性问题04.互斥锁(下):如何用一把锁保护多个资源05.一不小心就死锁了,怎么办06.用“等待-通知”机制优化循环等待07.安全性,活跃性以及性能问题08.管程:并发编程的万能钥匙09.Java线程(上):Java线程...原创 2019-10-16 08:16:30 · 161 阅读 · 0 评论 -
Java连接MySQL数据库
原创 2019-10-16 08:10:39 · 80 阅读 · 0 评论 -
字符流和字节流
原创 2019-10-16 08:09:04 · 85 阅读 · 0 评论 -
String 和 Date
原创 2019-10-16 08:07:29 · 74 阅读 · 0 评论 -
Java中集合
原创 2019-10-15 21:32:40 · 93 阅读 · 0 评论 -
Java面对对象
原创 2019-10-15 21:31:22 · 64 阅读 · 0 评论 -
Java命名规范、八大基本数据类型以及基本流程控制语句
一、命名规范1.范围:0-9数字、26个英文字母和_$,其余的所有符号均不可以。注:(1)不能以数字开头;(2)不能使用关键字;最好不要使用中文命名,即使可以编译通过。2.命名项目:与项目相关的名字,尽量做到见名思意。使用英文命名,首字母大写。3.命名类和接口:见名思意,首字母大写。4.命名包:全部小写。5.命名函数和变量:首单词小写,从第二个单词开始首字母大写。6.命名常量:全...原创 2019-10-15 20:57:23 · 215 阅读 · 0 评论 -
Java、JDK、JRE和JVM的关系
Java、JDK、JRE和JVM的含义|Java|一种新型轻量级计算机语言||JDK|java development kit ->java开发工具包 ||JRE|java running environment ->java运行环境||JVM |java virtual machine ->Java虚拟机 |Java、JDK、JRE和JVM的关系图示...原创 2019-10-15 20:26:53 · 391 阅读 · 0 评论