自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雨时水滴猿先晓的博客之家

为了正义,为了荣光,为了艾欧尼亚

  • 博客(22)
  • 收藏
  • 关注

原创 debian系统编译安装部署单节点hadoop

本次以hadoop2.x版本为例,3.x版本与此流程类似,部分区别文中已标明。下载hadoop-2.6.0-cdh5.13.1.tar.gz压缩包(3.x版本请下载相应压缩包)1.进行解压tar -zxvf hadoop-2.6.0-cdh5.13.1.tar.gz(3.x版本请解压相应压缩包)2.vi /etc/hosts进入该文件查看用户名3.vi ~/.bash_profile配置当前用户底下的环境变量(根据自己的java版本号进行相应修改)配置jdk路径,jre路径,ha

2020-05-27 14:25:13 333

转载 都到2020年了,还在纠结学习Python 2.x还是Python 3.x?

是否有如下疑问:Python 3 才是Python的未来。 Python 官方都建议指直接学习Python 3。 Python 2 只维护到2020年。 Python 2慢慢的就没人用了。那么我们来探讨下 Python 2和 Python 3 的主要区别。为什么还要学习Python 2(特别是对于新手来说)Python官网显示:Python 2到2020年停止维护,但不应该成为你拒绝Python 2的理由。正如XP停止更新以后,很多基础的和入门级的学习都需要XP环境。前几...

2020-05-18 15:16:39 493

原创 C++关于空类型大小以及存在虚函数大小

废话少说,直接上代码#include<iostream>using namespace std;class A{};class B{ B(){} ~B(){}};class C{ C(){} virtual ~C(){}};int main(){ cout<<"A的...

2020-01-16 16:46:55 388

原创 计算机内存的浅显理解

一个存储器的示例图:顶部的寄存器最靠近CPU,越靠近CPU,速度越快,每字节的成本越高,同时容量也因此越小。存储器分级,利用的是局部性原理。我们可以以经典的阅读书籍为例。 我在读的书,捧在手里(寄存器),我最近频繁阅读的书,放在书桌上(缓存),随时取来读。当然书桌上只能放有限几本书。我更多的书在书架上(内存)。如果书架上没有的书,就去图书馆(磁盘)。我要读的书如果手里...

2020-01-08 15:02:25 307

原创 八大排序,倾囊而出(排序分类,核心思想,代码示例,复杂度理解,稳定性分析,适用场景)

八大排序可以分为划分为五种类型:一、插入排序(直接插入排序,希尔排序)二、选择排序(简单选择排序,堆排序)三、交换排序(冒泡排序,快速排序)四、二路归并排序五、基数排序一、插入排序: 直接插入排序(InsertSort): 1)核心思想: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前...

2019-12-28 15:39:17 268

原创 IR中间码学习(基于llvm3.3)

相关指令:clang++ -emit-llvm -c -o fise*.bc file*.cpp 将c++代码编译成bc格式的二进制码llc -march=cpp -o file*_llvm.cpp file*.bc 将bc二进制码反编译成IR中间码g++ -O2 test_llvm.cpp -D __STDC_LIMIT_MACROS -D __STDC...

2019-11-11 18:16:03 978

原创 关于函数重载精确匹配的理解

匹配过程为便于说明,将函数匹配分为三个阶段,确定候选函数,确定可行函数,确定最佳匹配函数。1.确定候选函数候选函数也就是和被调用的函数同名,并且其声明在调用点可见。举个简单的例子。假设有两个文件,1.cpp和2.cpp,内容分别如下:1.cpp://函数1voidf(inta,shortb){cout<<"func0"<<e...

2019-11-11 17:46:00 179

原创 C++的四种强转的具体使用

static_cast, dynamic_cast,const_cast,reinterpret_cast有什么区别?一、static_cast:静态转换,基本类型转换,不相关类型不可以转换;例如:二、reinterpret_cast:强制转换,两个没有任何关系的指针或者引用之间转换;例如:三、dynamic_cast:动态转换,多态的类型(指针或者引用)转换;...

2019-09-17 16:27:02 582

原创 跟我一起走进内联汇编的世界

一、基本内联汇编:内联汇编代码比较容易整合到c/c++的代码中,可以做一些对于单独使用c/c++来说笨重或者不可能完成的任务。而且它还可以访问寄存器的值、访问条件码、使用一些特殊的指令和特殊的内存地址等等。内联汇编主要用于如下场合:1.使用汇编语言编写特定的函数;2.编写对速度要求非常高的代码;3.设备驱动程序中直接访问硬件;4.编写"Naked" Call的初始化和结束代码。C/C...

2019-09-09 18:44:18 1299

原创 数据库入门(从0到0.1)

一、MySQL 简单到不能再简单的基础语句:information_schema 对象信息 列信息,用户信息,权限信息,字符集 mysql 用户的权限信息 test 测试 cluster 集群信息①DDL数据定义语言 create drop alter②DML数据操纵语言 insert delete update select③DCL数据...

2019-08-29 19:00:45 227

原创 浅谈C++中的单例模式

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式有三大特点:1)构造函数定义为私有----不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象2)成员变量为static的----static保证在自身类中获取自身对象3)只能调用getInstance方法来得到对象,而getInstance保证了每次调用都返回相同的对象。...

2019-07-23 21:07:57 259

原创 C++中实际项目开发中的内联函数

引入内联函数的目的是为了解决程序中函数调用的效率问题,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。其实就是用空间的代价去节省时间。优点:当函数体比较小的时候,内联该函数可以令目标代码更加高效。 对于存取函数以及其它函数体比较短,,性能关键的函数鼓励使用内联。缺点:滥用内联将导...

2019-07-09 11:59:15 194

原创 Linux下解析配置文件的通用程序

在linux中/etc目录下有许多类似于后缀.conf文件的配置文件,在这些文件中有section、key、value(有的文件可能只有key、value,没有section,我们在代码中会讨论)我们在项目中有时候要用到这些值。需要根据相应的section和key得到对应的value所以我们要解析这些配置文件,但是众所周知,linux底下的配置文件的格式几乎都不一样大多数的格式是“...

2019-01-18 11:02:14 417

原创 Linux下解析配置文件的通用程序_沉浸在在代码世界的小小程序猿_新浪博客

在linux中/etc目录下有许多类似于后缀.conf文件的配置文件,在这些文件中有对应的key和value我们在项目中有时候要用到这些值。需要根据相应的key得到对应的value所以我们要解析这些配置文件,但是众所周知,linux底下的配置文件的格式几乎都不一样大多数的格式是“key=value”,也有“key:value”,"key value"等等如有其他格式,请读者自行修改...

2019-01-17 15:46:13 353

原创 static关键字的作用_沉浸在在代码世界的小小程序猿_新浪博客

定义:①被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来②被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来③被static修饰的变量、方法统一属于类的静态资源,是类实例之间共享的。把不同的静态资源放在了不同的类中而不把所有静态资源放在一个类里面的三个好处:1、不同的类...

2018-03-14 20:52:24 116

原创 静态库与共享库的“那些事儿”_沉浸在在代码世界的小小程序猿_新浪博客

什么是库?本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。在Linux中,库是一种预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。标准系统库文件一般存储在/usr/lib和/lib目录中 ,库文件名字总是以lib开头。Linux操作系统支持的函数库分为:1.a 代表传统的...

2017-10-24 21:24:32 132

原创 关于进制转换_沉浸在在代码世界的小小程序猿_新浪博客

一、这种类型的题都这样做:1.用十进制计算30!,将结果转换成3进制进行表示的话,结尾会有多少个0?3 6 9 12 15 18 21 24 27 301 1 2 1 1 2 1 1 3 1加起来等于14所以有14个02.用十进制计算30!,将结果转换成5进制进行表示的话,结尾会有多少个0?5 10 15 20 25 301 1 1 1 2 1加起来等于7...

2017-10-11 23:03:59 157

原创 内存重叠_沉浸在在代码世界的小小程序猿_新浪博客

内存重叠:浅拷贝就是一个很好的例子//从src拷贝到des,len是需要拷贝的数据个数void Move(int *des,int *src,int len){for( i=0;i{des[i] = src[i];内存重叠}}void Show(int *arr,int len){for(int i=0;i{printf("%d ",arr[i]...

2017-08-29 12:48:20 185

原创 动态数组及动态内存_沉浸在在代码世界的小小程序猿_新浪博客

1.malloc();创建内存 例如创建n个整型单元 int*p=(int*)malloc(n*sizeof(int))如果要将创建十个整型单元并且全部赋值为0,即运用一个for()循环: int*p=(int*)malloc(10*sizeof(int)); for(int i=0;i {p[i]=0; } 则可以引入:...

2017-08-14 22:50:05 172

原创 危险函数gets();时间空间复杂度;const;_沉浸在在代码世界的小小程序猿_新浪博客

1.get()函数;为什么不安全:因为它可以无线读取,而且不会判断上限;任何一个程序员都应该确保buffer的空间足够大,以便能在执行操作的时候不发生溢出,从而导致程序崩溃。它可以用fgets()函数进行替换;2.时间复杂度是执行次数和问题规模之间的函数问题。空间复杂度是额外辅助空间和问题规模的函数关系。在进行时间复杂度的计算式有俩个原则:一只保留高阶项,二系数不保留。...

2017-08-13 18:51:55 203

原创 关于字符串复制问题以及优化解决_沉浸在在代码世界的小小程序猿_新浪博客

1.先用数组的做法void Mystrcpy1(char *des,char *src){int i;for(i=0;src[i]!='\0';i++){des[i] = src[i];}des[i] = '\0';}2.也可...

2017-08-13 18:24:12 169

原创 欢迎您在新浪博客安家_沉浸在在代码世界的小小程序猿_新浪博客

亲爱的朋友:欢迎您在新浪博客安家,您的博客地址是:http://blog.sina.com.cn/u/6339902616您可以用文字、图片、视频记录和展示最真实的自我,与网友交流,与线上好友聊天,还能通过手机发表博文和上传图片,随时随地记录心情和身边趣闻。我们为您提供了丰富的炫酷模板来装点您在网上的家园,强大的音乐播放功能更能陪伴您的网络生活。准备好了吗?现在就开...

2017-08-07 13:54:44 104

空空如也

空空如也

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

TA关注的人

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