自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cyrus_wen的博客

kaikai学代码

原创 Redis的数据结构之SDS及常用API

Redis的数据结构之SDS Redis没有使用C语言风格的字符串, 而是使用了一种叫SDS的简单动态字符串。 C风格的字符串用来作为字符串字面量, 比如打印日志。当表示一个可以被修改的字符串的时候, redis会用SDS表示。 redis是key_value型数据库, 它的key和valu...

2019-03-10 22:55:23 144 0

原创 java中的继承

java的继承 1. java中继承的关键字是extends, 其实现的形式是: class Child extends Father{ } 继承的主要作用就是对类进行扩充以及代码的复用。 继承的简单例子: public class Person { private String name;...

2018-11-14 14:57:58 83 0

原创 java的内部类

内部类 内部类:在一个类的内部嵌套其它类的操作叫内部类。 简单的内部类: public class Outer { private String msg = "hello world"; class Inner //定义一个内部类 { public void pri...

2018-11-09 00:11:03 58 0

原创 代码块

java的代码块 根据代码块定义的位置以及关键字代码块分为 普通代码块 构造代码块 静态代码块 同步代码块(暂时不看,后来介绍) 1. 普通代码块 定义在方法中的代码块。 public class TestMain { public static void main(String[] ar...

2018-11-05 23:31:03 68 0

原创 this关键字的作用

this关键字的作用 this关键字主要有以下三种用途 this调用本类属性 this调用本类方法 this表示当前对象 1. this调用本类属性 我们可以看如下代码: public class Person { private String name; private int age;...

2018-11-04 23:53:50 103 0

原创 eclipse常用快捷键

Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷...

2018-11-04 19:03:06 57 0

原创 旋转字符串(左旋)

题目要求: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。 思路: 解法一:开辟了...

2018-09-22 22:59:07 67 0

原创 C/C++复习

C/C++复习 C/C++基础语法 static关键字作用 修饰变量 存储位置 - 静态存储区 链接属性,本文件内有效 修饰函数 链接属性 - 本文件内有效 修饰成员变量和成员函数 静态成员函数没有this指针, 类和对象都可以调用 静态成员函数不能是虚函数 静态成员变量必须在类...

2018-08-18 23:29:34 92 0

原创 智能指针

auto_ptr 我们申请一块内存并且绑定在auto_ptr p上面,当p离开作用域之后调用析构函数。 但是存在一些问题。 auto_ptr赋值给另一个auto_ptr之后所有权转移,但是所有权不会转移回来。 auto_ptr不能指向new[] auto_ptr不能指向容器 shared...

2018-08-18 23:28:32 58 0

原创 重定向

重定向 dup/dup2系统调用 函数原型: #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); 使用dup将标准输出重定向到文件中 int main...

2018-08-15 18:04:21 94 0

原创 非阻塞IO

非阻塞IO 如果内核还没有将数据准备好,系统调用会直接返回,并且返回EWOULDBLOCK错误码。 首先介绍一下函数fcntl fcntl #include <unistd.h> #include <fcntl.h> int...

2018-08-15 16:45:43 90 0

原创 5种高级IO

高级IO 五种IO模型 阻塞IO ⾮阻塞IO IO多路转接 异步IO 信号驱动IO 阻塞IO 在内核将数据准备好之前, 系统调⽤会⼀直等待. 所有的套接字, 默认都是阻塞⽅式。 非阻塞IO 如果内核还未将数据准备好, 系统调⽤仍然会直接返回, 并且返回EW...

2018-08-15 16:07:59 95 0

原创 布隆过滤器

布隆过滤器 它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 基本概念 如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来...

2018-08-13 16:54:05 53 0

原创 c++之set

set的底层是平衡搜索树。 搜索树:左边小右边大 搜索树的时间复杂度是O(N) 普通搜索树 左边比根节点小,右边比根节点大 O(N) AVL树 严格平衡 左右高度差不超过1 ...

2018-08-13 15:54:55 84 0

原创 C++强制类型转换

C++强制类型转换 C语言 隐式类型转换 – 相关类型 强制类型转换 – 不相关类型 C++ static_cast reinterpret_cast dynamic_cast void Test() { int i = 1; //隐式类型转换 ...

2018-08-13 09:30:28 72 0

原创 初始化列表

初始化列表 1. 什么是初始化列表? 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。 2. 为什么使用初始化列表 初始化类的成员有两种方式,一是使用初始化列表,二是在构造函数体内...

2018-08-12 21:11:50 534 0

原创 C++强制类型转换

C++强制类型转换 void Test() { int i = 1; //隐式类型转换 double d = i; printf("%d %.2f\n",i, d); int* p = &i; //显示类型转...

2018-08-12 20:27:09 76 0

原创 多线程http服务器编写中遇到的问题

多线程http服务器编写中遇到的问题 1. 404响应报文报头未加空行却仍然能正确执行。 错误原因 404的html文件中开头有两行空行,影响了报文的结构。所以能正常响应。 解决办法 首部和正文之间添加空行 2. 不能产生并发请求。 错误原因 ...

2018-08-10 17:43:47 214 0

原创 迭代器的基本使用(遍历)

迭代器的基本使用(遍历) 一、定义 迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型都必须提...

2018-08-02 10:26:49 699 0

原创 HTTP服务器预备知识

HTTP服务器 一、采用的相关重要协议 http协议 TCP协议 DNS协议 二、各协议的作用 HTTP 针对目标web服务器生成HTTP请求报文 TCP 为了方便通信,将HTTP请求按序号分为多个报文段,把每个报文段可靠的传送给对方。 IP 搜索对方IP地址,一边中转一...

2018-08-01 15:47:40 75 0

转载 new和delete的用法(摘自百度知道)

 对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态内存分配解决了这个问题。   new和delete运算符是用于动态分配和撤销内存的运算符。  ...

2018-07-22 17:26:10 56 0

原创 继承

继承 成员访问限定符有: public(公有) private(私有) protected(保护) 对应的继承有三种关系: public(公有继承) private(私有继承) protected(保护继承) 继承是一种复用手段。 三种继承关系下基类成员的在派生类的访问...

2018-07-19 17:22:38 57 0

原创 计算机网络知识点总结

一、选择题(15 * 2’) 二、名词解释(5 * 4’) 三、简答题(4 * 5’) 四、计算题(3 * 10’) 第一章 计算机网络的两项主要技术是通信技术和计算机技术 计算机网络的定义 以实现远程通信为目的,一些互联的、独立自治的计算机的集合。 计算机网络...

2018-07-11 08:29:33 385 0

原创 物联网技术与应用知识点总结

什么是物联网?有什么基本特点? 物联网就是通过各种信息传感设备,如传感器,射频识别技术等装置与技术,实时监测任何需要监控、连接、互动的物体或过程,采集其声、光、电、热、力学、化学、生物等需要的信息,与互联网结合形成一个巨大的网络。 基本特点: - 全面感知 利用RFID、传感...

2018-07-07 20:06:27 2470 0

原创 指针和引用

首先我们来介绍一下什么是引用: - 引用 引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名。 定义的格式: 类型 &引用变量名 = 已定义过的变量名 void TestReferencl() { int a = 1; int ...

2018-07-07 00:27:53 51 0

原创 C++复习笔记(一)

c++学习笔记 c和c++ 的联系。 c几乎是c++的一个子集,c支持的语法在c++中基本都支。cplusplus,在c语言的基础上又有了许多新的特性。 C++的关键字 asm do if return typedef auto double...

2018-07-02 16:27:35 82 0

原创 传感器网络知识点总结

传感器网络复习 第一章 WSN的定义: 无线传感器网络是大量静止或移动的传感器以自组织和多跳的方式构成的无线网络。 无线传感网络负责实现数据采集、处理和传输三种功能。 WSN系统的组成 每个传感器节点由 数据采集模块(传感器、A\D转换模块)、数据处理和控制模...

2018-06-29 00:07:19 572 0

原创 海量数据的问题思考

海量数据处理的问题 给定一个大小超过 100G 的文件, 其中存在 IP 地址, 找到其中出现次数最多的 IP 地址(hash文件切分) 思路:首先,我们知道100G的文件一定不可能一次加载到内存里进行处理,所以我们考虑利用哈希切分的方法,将ip地址相同的放入同一个文件夹中。具体...

2018-06-29 00:06:20 48 0

原创 http错误码

get、post 区别:带不带参数不同 包括“ ?”一定带参,?之前表示请求的资源,之后表示参数。一定用cgi请求形式. 错误码: 2xx 204:请求被处理,但是没资源 206:支持断点续传 3xx 301:永久性重定向。 需要进行书签引用的变更&...

2018-06-29 00:04:22 106 0

原创 哈希表开散列与闭散列的实现代码

闭散列 hash1.c #include "hash1.h" #include <stdio.h> #include <stddef.h> void HashInit(HashTable* ht, HashFu...

2018-06-29 00:02:39 141 0

原创 安卓常见知识点总结(持续更新)

安卓复习 第一章:安卓概述 windows7不属于移动操作系统 java虚拟机JVM不属于安卓平台的技术架构 activity通常就是一个单独的屏幕 第二章:活动(activity) Activity具有生命周期: 1. 激活或运行状态:此时的activity运行在屏幕的前台...

2018-06-29 00:00:45 1274 0

原创 hash表的具体实现

闭散列 hash1.c #include "hash1.h" #include <stdio.h> #include <stddef.h> void HashInit(HashTable* ht, HashFu...

2018-06-11 16:25:05 78 0

原创 哈希表的简单介绍

哈希表的概念 哈希表(Hash Table)也叫散列表,是根据键码值(key value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找速度。这个映射函数就叫做散列函数,存放记录的数组的散列表。 哈希表查找的时间复杂度 哈希表存储的...

2018-06-11 16:24:08 194 0

原创 排序算法(二)

### 排序算法(二) ```c ///////////////////////////////////////////////////////////// //归并排序(递归) //时间复杂度:O(N * logN) //空间复杂度:O(N) //稳定性:稳定排序 ///////////////...

2018-05-28 21:31:16 79 0

原创 排序算法

稳定性:排序之后,相同排序码一样的和排序之前顺序一样。 #include <stdio.h> #include <stdint.h> ////////////////////////////////////////////////...

2018-05-26 10:54:26 56 0

原创 哈希表变形 -- 位图

位图 位图可以表示数字存在与否 布隆过滤器可以表示字符串存在与否 #pragma once #include <stdint.h> typedef struct Bitmap{ uint64_t* data; uint64_t capacit...

2018-05-21 21:34:32 59 0

原创 布隆过滤器课堂代码

bloom.h #pragma once #include "bitmap.h" #define BloomHashCount 2 typedef uint64_t (*BloomHash)(const char*); typedef struct BloomFilte...

2018-05-21 21:32:56 95 0

原创 哈希表笔记

MD5: - 不管字符串多大,生成的MD5长度都是16或32位。 - 几乎不可逆 - 字符串改变,MD5变化很大 typedef enum{ Empty;//空状态 Valid;//有效状态 Deleted //被删除的状态 } Stat; //哈希表存储的是...

2018-05-18 20:23:59 63 0

原创 线程控制

线程控制 POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的 要使用这些库函数,要引入头文件 pthread.h 链接这些线程函数库时要使用编译器命令“-lpthread” 选项 创建线程: int p...

2018-05-01 21:48:05 47 0

原创 来来来,线程基本概念了解一下~~~

线程的概念 那么什么是线程呢? 百度百科是这样介绍的: 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本...

2018-05-01 19:48:33 38 0

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