自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

原创 [golang] go语言依赖

本想介绍 vendor,发现两篇介绍太好了,就不多说了,直接传送门 https://ieevee.com/tech/2017/07/10/go-import.html https://studygolang.com/articles/10312

2018-06-10 15:45:26 455

原创 [golang]struct {}

有c/c++学习经历的会发现go的struct语法和c/c++很类型,但是golang的struct{}很有意思。做set,map[string]struct{} 由于struct{}是空,不关心内容,这样map便改造为setchan struct{} 可以做退出func worker(i int, ch chan Work, quit chan struct{}) { ...

2018-06-03 15:51:50 7194

原创 [golang] interface{}

golang中interface的作用和java的interface的作用很像,虽然go号称使用组合的方式来实现oo,没有像java那样显示继承一个interface。本文讲解另一个功能,inerface{ }。 interface{}是一类特殊的接口,类似于Java的Object,它是所有对象的基类。所有类型变量都可以赋值给它。func f(x interface{}) { ...

2018-05-28 19:06:29 1909

原创 【每周任务】一、rpc

2018年5月26日

2018-05-23 16:57:28 224

原创 [golang]golang中的双引号、单引号、反引号

go语言中不倾向使用单引号表示字符串,单引号用于表示Golang的一个特殊类型:rune,类似其他语言的byte但又不完全一样,是指:码点字面量(Unicode code point),不做任何转义的原始内容双引号用来创建可解析的字符串字面量(支持转义,但不能用来引用多行)反引号用来创建原生的字符串字面量,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、...

2018-04-07 20:09:20 15095 1

原创 【golang】EclipseC++配置go开发环境

1. 安装go安装之后,配置环境变量GOROOT,GOPATH,前者是go的安装路径,后者是go的工程路径。2. go插件安装gocode是代码自动补全程序;guru代码导航程序;godef代码跳转程序(1)点击eclipse的help|install new software,在“Work with”内输入:http://goclipse.github.io/releases...

2018-03-23 21:49:07 447

原创 【C++】全局变量、静态全局变量、静态局部变量

1. 全局变量全局变量存储在静态存储区,其作用域是全局作用域,生命周期是整个程序的生命周期。 具体而言,在一个文件中定义一个全局变量,在程序的其它文件中可以通过extern关键字再次声明说明该变量已经定义。2. 静态全局变量静态全局变量存储在静态存储区,其作用域只能是定义该变量的文件,生命周期是整个程序的生命周期。3. 静态局部变量静态局部变量存储在静态存储区,作用域...

2018-03-18 20:52:54 769

原创 【C++】__asm__volatile("":::"memory")

_ _asm _ _用于指示编译器在此插入汇编语句_ _ volatile _ _用于告诉编译器,严禁将此处的汇编语句与其它的语句重组合优化。memory强制gcc编译器假设RAM所有内存单元均被汇编指令修改,这样cpu中的registers中已缓存的内存单元中的数据 将作废。cpu在需要的时候重新读取内存中的数据。“”:::表示这是个空指令。...

2018-03-13 11:00:53 391

原创 【C++】static_cast,const_cast,dynamic_cast,reinterpert_cast

本文介绍C++中四个类型转换符:static_cast、dynamic_cast、const_cast和reinterpret_cast。1. static_caststatic_cast应用于以下三种场景: (1)基本数据类型之间的转换int main(){ float pi = 3.1415; int a = static_cast<int>...

2018-03-07 14:53:32 1199

原创 【C/C++】虚析构函数

直接从代码看结果// demo 1class Base {public: Base() { cout "Base Constructor" << endl; } ~Base() { cout "Base Destructor" << endl; }};class Derived : public Base {publ

2018-01-19 13:54:40 283

原创 【Eclipse】windows eclipse c++ gdb

windows下Eclipse c++使用gdb调试: 下载gdb.exe放在MinGW的bin目录下 http://download.csdn.net/download/kturing/10202916

2018-01-12 17:38:06 1091 1

原创 【eclipse】eclipce neon 识别c++11

project | properties | C/C++ General | Paths and Symbols 右侧 symbols GNU C,GNU C++都添加 __cplusplus 201103L project | properties | C/C++ General | Preprocessor… 右侧providers | Built-in Complier

2018-01-08 16:16:41 304

原创 【c/c++】socket编程注意

个人经验 1. 粘包问题:使用固定头部,指明字节长度 2. 少用strcat、strcpy,尽量使用memcpy

2017-12-27 17:22:44 265

原创 【c/c++】linux c++使用close报错

close是系统函数,包含头文件unistd.h即可, 这个头文件还有方法:read、write、fcntl……

2017-12-27 17:11:13 2834

原创 【c/c++】第一次使用-lwiredtiger时报错:can not open shared object file

编译链接报错:can not open shared object file: no such file or directory 1. sudo vim /etc/ld.so.conf 2. 因为libwiredtiger.so默认放到/usr/local/lib,所以打开后添加库路径 /usr/local/lib 3. 保存退出,执行 sudo ldconfig 4. 再次链接不报错

2017-12-27 17:03:37 898

原创 【c/c++】wiredtiger-2.9.3编译错误

下载源码:http://source.wiredtiger.com/编译:Building and installing WiredTiger on POSIX执行脚本:sh autogen.sh此时报了一个错误,can’t exec libtoollize 解决方法:sudo apt-get install automake autoconf libtool 上述语句是按照auto

2017-12-27 16:50:30 340

原创 【c/c++】multiple definition-->static & extern

当遇到重复定义的时候经常会碰到这样的错误,对于这个错误的理解,找到两篇博客,第一篇博客解释了为什么会出现这个错误,第二篇解释了static和extern的作用。http://blog.csdn.net/xxxxxx91116/article/details/7446455 https://www.cnblogs.com/SarielTang/p/4501456.html

2017-12-24 17:14:07 502

原创 【c/c++】function returns address of local variable

这个问题很普通,也很常见,例如下面的代码就会报这个错,原因在于: s是局部变量,在栈上分配空间,当函数结束后会回收空间,这样s返回的内容无效。 解决方法是在堆上申请空间,然后返回,但是这样做需要注意释放空间。char* func() { char s[100]; strcpy(s, "hello"); return s;}int main(int argc, char

2017-12-22 16:17:23 2973

转载 【Ubuntu】安装字体

转载:http://www.mycode.net.cn/platform/741.htmlUbuntu安装Consolas字体字体安装//解压压缩包 tar -zxvf YaHeiConsolas.tar.gz//在系统目录下创建自定义字体目录 sudo mkdir -p /usr/share/fonts/vista//复制解压出来的字体到刚才创建的目录 sudo cp YaHeiConsol

2017-12-03 14:52:48 519

原创 【C++】new delete & new[] delete[]

Q1. new delete new[] delete[]分别做了什么? Q2. new[]申请的空间什么时候能用delete释放?这篇博客写得很好,评论也有亮点。 http://blog.csdn.net/hazir/article/details/21413833

2017-11-20 09:53:18 228

原创 【c++】htons、ntohs、htonl、ntohl

在写Linux Socket编程时经常用到上述函数,常见的用法是:struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_port = htons(port);addr.sin_addr.s_addr = inet_addr(ip.c_str());htons,host to network short int ntohs,netw

2017-10-26 20:22:08 938

原创 【C++】inet_ptoa&inet_atop inet_pton&inet_ntop

inet_aton、inet_addr和inet_ntoa在点分十进制数串(例如”206.62.226.33”)与它的32位网络字节序二进制值间转换IPv4地址两个较新的函数:inet_pton和inet_ntop对IPv4和IPv6地址都能进行处理/* Convert Internet number in IN to ASCII representation. The return valu

2017-10-22 11:25:23 915

原创 【c++】sockaddr,sockaddr_in

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性: 1 地址类型; 2 ip地址; 3 端口上图看结构:#include <sys/in.h>#include <sys/socket.h>#include <sockaddr.h>我们从这个宏定

2017-10-15 14:45:40 7389 2

原创 【MongoDB】复合索引

MongoDB支持复合索引,所谓复合索引就是一个索引包含多个字段,例如为如下collection建立一个复合索引: collection { user_id: score: …… }db.col.createIndex({‘user_id’ : 1, ‘score’ : -1})有数据库基础的同学对这个也没有什么疑惑,而且应该知道1表示升序,-1表示降序。在MongoDB的复合索引中不

2017-09-29 16:25:17 880

原创 【Java】对象、字节转换

// byte array to Objectpublic void byteArr2Object(byte[] buf) { Object obj = null; try { ByteArrayInputStream bis = new ByteArrayInputStream (buf); ObjectI

2017-09-24 15:25:07 310

原创 【Java】结束线程

1. 使用标志位public class ThreadEx implements Runnable { private volatile boolean isStoped = false; public void run() { while (isStoped) { // do something } } publ

2017-09-24 15:20:15 229

原创 【MongoDB】Java驱动读写数组

经常不用就忘了如何操作,记录一笔。写MongoClient client = new MongoClient(host, port);MongoDatabase db = client.getDatabase(testdb);MongoCollection<Document> col = db.getCollection(testcol);String[] color = {"red", "bl

2017-08-03 16:20:31 1835 1

转载 公共子序列问题

觉得说得不错,转载一下。链接:https://www.nowcoder.com/questionTerminal/98dc82c094e043ccb7e0570e5342dd1b 来源:牛客网最长公共子串和最长公共子序列。。。傻傻烦不清楚举个栗子: str1=”123ABCD456” str2 = “ABE12345D” 最长公共子序列是:12345 最长公共子串是:123这两个都可以用动

2017-08-03 15:40:02 330

原创 【MongoDB】github版源码编译报错

这个坑踩了好几次了,如果从github下载MongoDB源码,安装docs安装好依赖、scons,编译还是会报错。 解决办法加version.json文件放在代码根目录下 内容为(根据具体版本而定): {“version”:“3.4.2”}

2017-07-29 15:40:14 1265

原创 【MongoDB】查看datasize

想要查看DB和Collecion的datasize可以通过db.stats()和db.collection.stats()db.stats(scale)db.stats(scale) 的参数 scale 指定显示大小的精度,默认是Byte,如果是 db.stats(1024) 则以 KB 显示,以此类推。db.collection.stats(scale | options)db.collectio

2017-07-22 17:06:38 5706

原创 【Java】数组拷贝的三种方式

System.arraycopypublic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);src:原数组对象 srcPos:原数组起始位置 dest:目标数组对象 destPos:目标数组起始位置 length:复制长度注意不要以为src和dest是Object类型,

2017-07-20 18:28:32 989

原创 【MongoDB】如何将MongoDB改造成内存数据库

日前有测试需求将MongoDB改成内存数据库。我们知道MongoDB有一个In-Memory存储引擎,但是社区版不能用。所以我们自己想办法将MongoDB改造成内存数据库,经过探索,有三种方式。 研究版本:mongo-3.4方式一:使用tmpfs作为文件系统方式二:使用ramfs作为文件系统这两种方式的思路都差不多,使用一个内存模拟文件系统,由于替换了磁盘文件系统,数据就保留在内存中。方式三:修改

2017-07-11 14:46:41 4611

原创 【MongoDB】explain & hint

执行计划分析 explain()explain()为aggregate()、count()、distinct()、find()、remove()、和update()这些方法提供查询计划分析。使用格式db.collection.explain().还可以通过cursor.explain()和$explain执行。explain(verbosity mode)中可以接以下参数以

2017-07-08 13:13:31 573

原创 【Mongo】MongoDB-Profiler

MongoDB Profiler能够收集MongoDB操作的操作信息,尤其是分析慢操作时的利器。MongoDB Profiler将收集到的数据存到system.profile集合中,它是一个capped collection(固定大小的集合)。Profiling Levels设置Profiler的级别有以下几个选项:0:设置为off,这是默认级别,即关闭profiler。但是mongod始终将执行

2017-07-07 19:22:35 937

原创 【Java】Integer.parseInt() & Integer.valueOf() & new Integer()

这种题目在Java面试题中倒是经常看到,了解它们的区别有时候找bug可能还有些用。下面从源码的角度分析它们的区别。Integer.parseInt()如下图是parseInt(String s)和parseInt(String, int)的源码。可以看到parseInt返回的是一个int基础类型,调用了parseInt(s, 10)。Integer.valueOf()valueOf()有多个重载版本

2017-06-22 20:08:58 1172

原创 【MongoDB】Shard key

1. 使用Shell命令分区MongoDB提供的分区功能,本节简单介绍在mongo shell的分区命令。sh.enableSharding(database) 指定databasesh.shardCollection(namespace, key, unique, options) 指定Collection 【注意】如果库中还没有指定的database则需要顺序执行上面两个命令,如果

2017-06-22 19:26:10 4824

转载 【Java】Class.forName() vs Class.loadClass()

ClassLoader.loadClass()与Class.forName()都是通过反射来构造类的方法。但是他们的用法还是有一定区别的。 在讲区别之前,先把类的加载过程整理一下。在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:装载:查找和导入类

2017-06-18 09:22:08 350

转载 frok boom

:(){ :|: & };:Jaromil在2002年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在shell中运行后几秒后系统就会宕机这样看起来不是很好理解,我们可以更改下格式:bomb(){ bomb|bomb&};bomb因为shell中函数可以省略function关键字,所以上面的十三个字符是功能是定义一个函数与调用这个函数,函数的名称为:,主要的核

2017-06-18 08:56:19 576

原创 【Eclipse】一次Eclipse插件修改经历

Eclipse版本:neo.在大家都爱着IDEA的年代,我还是对eclipse情有独钟,毕竟免费,毕竟开源。虽然有些bug操作我也神烦,例如空格补全。网上找到教程自己动手改了一把,虽然只有几行代码,但改开源代码真的爽歪歪啊。文章的内容是参考引用,但是自己亲手做了一把,所以还是写了一篇内容差不多的博客,自嗨吧。1. 设置代码提示

2017-06-15 19:54:31 2255

原创 【Java】java 遍历map对象的四种方式

1. 使用Map.Entry遍历Map> map = new HashMap<>();for (Map.Entry> entry : map.entrySet()) { String key = entry.getKey(); ArrayList item = entry.getValue(); // ....}2. for-

2017-06-15 19:53:28 3481

gdb for windows

gdb 7.5 for windows, 放在MinGW\bin下实现eclipse c++调试

2018-01-12

空空如也

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

TA关注的人

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