自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kafka原理

本文主要内容一、kafka架构二、kafka 特性实现原理2.1、kafka 高可靠性2.2 kafka 高吞吐2.3 kafka 水平扩展三、kafka数据处理原理3.1、消息生产者3.2、消息处理及持久化3.3、消息消费者一、kafka架构二、kafka 特性实现原理2.1、kafka 高可靠性2.2 kafka 高吞吐2.3 kafka 水平扩展三、kafka数据处理原理3.1、消息生产者3.2、消息处理及持久化3.3、消息消费者...

2021-07-03 10:58:19 210

原创 kafka介绍

本文主要内容一、kafka介绍二、kafka特点2.1、kafka优点2.3、kafka缺点三、kafka应用场景一、kafka介绍二、kafka特点2.1、kafka优点2.3、kafka缺点三、kafka应用场景

2021-06-13 12:09:33 139 1

原创 flink应用

本文主要内容一、flink开发实现1.1、flink程序基本结构1.2、flink依赖包二、flink日志管理2.1、log4j2日志使用2.2、log4j2日志配置三、flink任务提交及查看3.1、flink client 提交flink任务3.2、dolphion提交flink任务四、flink任务监控4.1、flink监控方案4.2、flink监控案例一、flink开发实现1.1、flink程序基本结构1.2、flink依赖包二、flink日志管理2.1、log4j2日志使用2.2、lo

2021-06-12 17:04:03 332 1

原创 flink架构及原理

一、flink原理二、flink架构三、flink使用

2021-06-05 11:44:18 4766 1

原创 flink基本介绍

一、flink介绍1、flink是什么?1、flink是一个面向流处理和批处理的分布式计算框架,即支持流处理,也支持批处理。2、flink基于流处理引擎实现,正真做到了流处理,将批处理看作一种特殊的有界流3、flink是基于java编程语言实现,支持java,scala,python进行编程开发4、flink支持单机执行,或运行在大数据的yarn集群,或部署到k8s中执行二、flink特点1、flink特点1、支持有状态计算的Extactor-once语义及checkpoint2、支持带

2021-04-10 12:01:49 10368

原创 vim补全一键安装

vim补全插件一键安装一、安装环境1、安装系统:centos7(及以上),ubuntu2、权限:root 或sudo权限二、安装效果三、安装步骤#下载安装包:git clone https://github.com/chxuan/vimplus.git ~/.vimpluscd ~/.vimplussudo ./install.sh更多信息请访问原站:https://github.com/chxuan/vimplus四、备注1、安装过程中会自动安装vim82, 如果已安装vim8

2020-09-05 20:06:28 172

原创 python3安装

python3安装:系统:cetnso安装步骤:1、安装依赖:yum install gcc openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel wget curl-devel2、下载python3:1、下载安装pythonwget ht...

2020-05-04 16:29:29 149

原创 VMware 虚拟机无法连接网络修复

虚拟机无法连接网络上可按以下方法进行尝试修复:方法1:设置虚拟机网络连接方式:NAT方法2:设置虚拟机网络连接方式:桥接模式方法3:修改虚拟机网络配置1、切到rool权限2、进入目录:cd /etc/sysconfig/network-scripts/3、修改配置文件:1、打开文件:vim ifcfg-ens33 (也可能是其他文件)2、将ONBOOT=no 改为 ONBOOT=y...

2020-05-02 18:52:19 942

原创 自定义rm删除至回收站

防止rm命令误删文件导致文件不可恢复,使用自定义的rm命令将文件以移动置回收站,并可通过命令将文件恢复及清空回收站。1、删除命令: rm/rm -r/rm -rf2、恢复命令:ur 文件名3、清空回收站某个文件:cr 文件名4、清空回收站:cleartrash回收站位置:~/.local普通用户在用户目录中的./local中root目录在 /root/.local中自定义rm方法...

2019-06-27 18:16:36 295

原创 三相单词树

一、本博客主要内容1、三相单词树的概念2、三相单词树结构图3、三相单词树实现(1)、三相单词树节点结构(2)、三相单词树的插入(3)、三相单词树的查找(4)、三相单词树的删除4、三相单词树代码链接二、单词树的概念1、三相单词查找树是单词查找树的该进,当R(字符表)很大时三相单词树可节省空间2、三相单词查找树结构:3、由键值key(字符),value(注释),三个指针域构成(...

2019-01-01 17:21:17 253

原创 单向单词树

一、本章主要内容:1、单向单词树的概念2、单向单词结构图解3、单向单词树代码实现(1)、单向单词树的节点数据结构(2)、单向单词树的插入(3)、单向单词树的查找(4)、单向单词树获取所有单词(5)、单向单词树获取某前缀单词(6)、单向单词树获取最大前缀单词(7)、单向单词树的删除4、完整代码链接二、单向单词树的概念1、介绍:用于存放单词的一个树形结构,可以快速的查找,删除...

2018-12-24 18:49:25 477

原创 avl平衡树

一、本博客主要内容:1、平衡树的概念,性质2、平衡树实现1、平衡树节点介绍2、构造/拷贝构造/运算符重载/树拷贝3、插入节点4、删除节点5、旋转...

2018-12-24 16:36:10 264

原创 红黑树详解

一、本博客主要内容:1、二叉查找树简要介绍2、2-3树简要介绍3、红黑的性质,特点4、红黑树的查找过程5、红黑树节点插入过程6、红黑树节点删除过程7、红黑树代码实现二、红黑树背景讲解红黑树之前,先了解一下二叉查找树和2-3树的概念,这有助于我们理解红黑树的作用及实现过程。1、二叉查找树性质特点:二叉查找树是一个操作效率很高的树,平局时间复杂度为O(logN)二叉查找树的节点...

2018-12-12 16:52:40 1046

原创 二叉查找树

一、简单介绍:本篇博客主要包含的内容1、二叉查找树的概念,性质2、二叉查找树的基本操作(1)、节点结构介绍(2)、构造/拷贝构造/运算符重载/树拷贝实现(3)、插入操作(4)、查找key的值(6)、查找key的节点或向下/向上取整的节点(7)、查找某个key的排名(8)、获取排名为k的节点数据(9)、二叉树删除操作说明:以上操作使用C++的模板结构,主要以递归方式实现,也可以...

2018-12-10 15:54:40 141

原创 vim代码补全ycm安装

一、安装说明:本人亲试成功:centos7(本地虚拟机),centos7.2(云服务器)。二、安装步骤:1、更新gcc/g++2、更新vim ,版本不低于8.0(支持python)3、安装cmake,Vundle4、安装ycm5、配置 .vimrc三、效果展示:四、安装操作若yum和g++版本较新,1,2步可以省略1、更新yumsudo yu...

2018-11-13 20:02:26 1219

原创 进程概念

进程: 一、概念:是一个正在执行的可执行程序实例。 二、构成:进程信息存放在进程控制块PCB的数据结构中。三、数据结构: 在Linux中描述进程的数据结构是task_struct; task_struck是Linux内核中的一种数据结构,包含着进程信息存放在内存中。task_struct //内容 { 1、标识符:pid ,ppid 进程的唯一标识符,用于区分其它进程 ...

2018-05-14 15:14:38 149

原创 类的三大特性

一、封装: 方法: 1、使用类将数据成员和函数方法绑定在一起。 2、使用访问限制符进行限制封装。作用:信息隐藏的作用,只提供一些必要的接口,而隐藏那些不必要的接口。避免受到外界的干扰和误用,从而确保安全 破坏封装:友元类可访问该类中的所有数据和函数。破化了类的封装性二、继承 继承: 1、作用:通过子类(派生类)继承父类(基类)的成员,共享不同的东西,实现各自不同的东西,达到代码复用的作用

2018-05-06 08:17:27 1503

原创 动态内存管理

动态内存分配一、C语言内存分配一、malloc1、按字节分配内存空间,分配的内存空间不初始化2、返回类型为void*3、函数只有一个参数原型:void* malloc(size_t size);//size是字节个数二、calloc1、按字节分配内存空间,分配的内存空间进行初始化为02、返回类型为void*3、函数有二个参数,按类型字节大小和个数开辟内存空间原型:void* malloc(size...

2018-04-18 01:04:49 134

原创 类常用的基本修饰符

一、const成员函数 C++的内部成员函数的参数都有隐含的this指针(除构造函数外,因为在构造函数时才进行对象的实例化,才生成对象this的地址),该指针是对象的地址。const 修饰成员函数时,实际修饰的是隐含的this指针,指明this(对象)不可修改。所以:const的对象只能调用const的成员函数,非const 的对象也可调用const的成员函数const的成员函数不

2018-04-09 23:44:32 570

原创 大小端存储

数据的大,小端存储是由于计算机在发展过程中,不同人对数据存储的不同观点,造成的历史遗留下的差异问题。由于统一这个问题会比较 麻烦,工程量大,并且本身也没有太大差异。所以未进行对此问题进行处理。小端存储:低字节(低位)存储在低地址,高字节存储在高地址。大端存储:低字节(低位)存储在高地址,高字节存储在低地址。

2018-04-07 19:16:14 2155

原创 引用与指针

一、引用的概念及用法 引用:引用不是定义一个新的变量,不开辟内存空间,而是一个变量的别。与原变量的数值,地址相同。对其中任意数值进行操作都会互相影像(值同步)。 用法:类型& 变量名。           变量—-const 引用—–引用不可修改变量,变量修改后,引用变量值改变 const 变量—-引用————错误,编译不通过,变量不可修改,引用也不可修改,不可直接引用 const 变量

2018-04-03 00:34:39 153

原创 C++与C的对比

简要介绍C++与C的区别,面向对象与面向过程的区别,重载问题,缺省参数问题及命名空间等概念

2018-04-01 23:30:09 3960 2

原创 二叉树操作(基本操作,线索化,经典问题)

主要介绍了常见的二叉树操作,包括创建,遍历,线索化及相关面试题等代码的写法和步驻。

2018-03-29 23:45:05 395

原创 C数据存储图

2017-12-15 17:43:21 171

原创 函数传参问题

函数传参: 一、总结: 形参只是实参的一份临时拷贝。实例化时,在栈中形成栈帧 1、若仅改变变量的内容,传一级指针(变量所指向(存储)的地址) 2、若要改变变量的内存空间,或地址,需传二级指针(变量自身的地址) 二、讲解: 传一级指针:变量所指向(或存储)的地址,退出函数时,释放变量所开辟的空间。不释放变量中成员的地址空间 作用: 只能改变变量的内容,包括变量中成员的地址,空间。 不

2017-12-15 14:03:06 375

原创 自定义类型与内存对齐

一、结构体1、声明:方法一:struct 类型名 {成员变量;}(变量名);struct 类型名 变量名 ;//定义结构体变量struct 类型名 变量名 = {数据,...};//定义结构体变量同时初始化方法二:typedef struct 类型名{成员变量;} (自定义类型名);自定义类型名  变量名 ;//定义结构体变量注:

2017-11-27 18:34:34 269

原创 仿写各种字符串操作函数

一、头文件:String.h#ifdef __STRING_H__#define __STRING_H__#endifchar *my_strcpy(char*arr,const char*arr1);//字符串复制char *my_strcat(char*arr,const char*arr1);//字符串拼接char *my_strstr(const char*arr,const char*

2017-11-17 16:25:19 327

原创 指针深入

一、数组:1、char型数组中的内容可修改一维数组: 列: char arr1[3]={'1','2','3'};下标表示可存字符个数 2、二维数组:列: char arr2[2][4]={"123","456"};第一个下标表示字符串个数,第二个下标表示字符串长度(字符串末尾有隐含'\0') 传参:void arr(char (*arr)[3])

2017-11-16 21:34:26 212

原创 数组及存储剖析

一、地址与内容的转变 *(地址)—–>内容 &(内容)—–>地址 &(地址)—–>(数组)整块的地址,范围增大。(指针)存储此地址的地址 二、sizeof(); sizeof 是个关键字不是函数 sizeof(数组名)—->数组占总字节大小,注:字符串末尾有一个’\0’ sizeof(地址)——>一个地址所占总字节大小(4) sizeof(元素)——>次元素类型所占字节大小,注:si

2017-11-15 13:35:03 234

原创 可变参数之仿写printf函数

可变参数函数: 可变参数函数应至少有一个参数! 原理:根据函数在参数实例化时,参数在栈中存储的特征。依据第一个参数去访问其他的参数。列:头文件#include<stdarg.h> add(3,1,2,3); int add(int n,…) 主要利用的宏: va_list   arg;//定义一个va_list类型变量(指针类型),变量名arg va_start(arg,n);//初始

2017-11-11 20:12:16 619

原创 位操作的精巧使用

一、位操作的使用不仅能简化代码的书写,还能有效的提高程序的执行效率。但位操作仅能用于整型类型存储(int, char)的数1、判断奇偶数: 所有数都由2^n相加组成,偶数无2^0,所以偶数的二进制位最低位为0,奇数为1 偶数:(num&1)==0 奇数:(num&1)==1 注’==’优先级高于&,所以必须有括号2、求平均数: 方法1:(num1+num2)/2;  //存在num1+nu

2017-11-04 18:19:53 285

原创 栈帧

一、栈帧重要寄存器:1、EBP :基址寄存器(指向栈底)2、ESP :栈顶寄存器3、EIP :程序计数器(指向当前指令得下一条指令)函数#include#includeint Add(int x,int y){ int z=0; z=x+y; return z;}int main(){ int a=2; int b=1; 

2017-11-03 17:08:05 3431 1

原创 递归,斐波那契数及其取模运算

一、递归 1、递归:即函数自己调用自己,函数在调用时会进行参数实例化,开辟栈空间。 2、递归可简化代码的编写。易读。 3、递归必须设置递归出口,否则会出现死循环 4、递归过程需一直开辟栈空间,运行速度慢,效率低。且存在栈溢出问题 5、相比较,迭代(非递归)的执行效率更高些,且不会一直开辟栈空间和造成栈的溢出问题,但代码书写量大,易读性低。 注:对一个数取模等同于对构成那个数的每个数取模,

2017-11-02 13:06:27 1179

原创 宏的实例总结

一、定义:define 宏名 标识符列:#define PRINE\ printf(“Hello\n”)1、宏名通常要大写 2、标识符后一般不要加“;”防止出错 3、当一行写不下时可使用续行符(“\”),但续行符后不可输入空格和注释。 4、宏的参数与类型无关,可以为任何类型 5、宏相当于直接替换掉相关的代码,执行速度快。 6、宏定义中可以有其他的宏定义,但不可出现递归造成死循环。 8、

2017-10-26 21:20:36 791

原创 三子棋游戏

//Main.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include "game.h"void Menu();int main(){ Menu(); system("pause"); return 0;}void Menu(){ int choose=0; char ch='Y'

2017-10-19 22:43:31 219

原创 扫雷游戏

#include<stdio.h>#include<stdlib.h>#include<string.h>#include "game.h"void Menu();int main(){ Menu(); system("pause"); return 0;}void Menu(){ int count=10; int n=0; int ch

2017-10-19 22:35:20 289

原创 数组总结及其实例详解

一、一维数组 定义:类型名 数组名[数组大小] ;注:数组大小不可是变量,只可是数字或宏定义值 列:char arr1[5]={‘1’,’a’,’A’}; char arr3[]={“1aA”};//arr[]=”1aA”同于arr[]={“1aA”}define N 5int arr[10]; char arr[N];//此处arr[N]=arr[10] sizeof

2017-10-17 18:55:53 1121

原创 函数实例之数组应用(初始化,逆置,输出,清空)

注:书写函数时,函数要仅可能的便于移植,非必要情况不要有输入输出语句!#include#include#include#define N 10//数组大小void init(int arr[],int sz);//数组初始化void reverse(int arr[],int sz);//数组逆置void print(int *parr,int sz);//

2017-10-11 23:51:12 194

原创 折半查找实例

折半查找实例讲解

2017-10-10 22:55:10 1936

原创 操作符实例讲解

一、操作符1、算数操作符: +(加)       -(减)      * (乘)    / (除)    % (取模)2、移位操作符:>(右移)3、位操作符‘:   &(按位与)     | (按位或)   ^(按位异或,相同为0,不同为1) 4、关系操作符: <(小于)   >(大于)  ==(等于)  !=(不等于)  <=(小于等于或不大于)  >=(大于等于或不小于)

2017-10-08 22:57:01 325

空空如也

空空如也

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

TA关注的人

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