自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Simon的博客

专注于互联网后台架构开发

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

原创 boost::function/bind 的使用

一句话总结:function容纳任意函数,bind绑定任意函数;bind返回的是一个实际函数对象,与function无关联。#include#include#includeusing namespace std;class Obj{public:void print(double d,int i

2017-07-29 11:15:31 412

原创 面向对象

一句话总结:程序设计采用了“封装、继承、多态”三大特点才能称为面向对象。例子:1、线程和线程对象的生命周期并不一样2、join用于阻塞,使得当前线程运行结束//  Thread.hpp//  Thread////  Created by zhaojunyan on 17/7/29.//  Copyright © 2017年 z

2017-07-29 09:43:06 235

原创 Ubuntu安装编译muduo

1、安装软件sudo apt-get install cmakesudo apt-get install libboost-dev2、编译muduo下载muduo源码,进入目录后,执行./build.sh。

2017-07-28 22:30:14 1745

原创 桥接(Bridge)模式

一句话总结:将抽象和实现分离,聚合多个维度,易于扩展。上例图:汽车是一个抽象类,聚合了很多维度,如门、轮子,每一个维度都可以独立变化,扩展也很容易,比如加个颜色的维度。同时每个维度都有自己的实现。上个结构图:

2017-07-28 11:25:43 376

原创 原语(操作系统)

一句话总结:个人理解成原子语句,不可分割,要么不执行,要么全部执行。摘自百度百科:原语通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。原语是操作系统的核心,它不是由进程而是由一组程序模块所组成,是操作系统的一个组成部分,它必须在管态(一种机器状态,管态下执行的程序可以执行特权和非特权两类指令,通常把它定义为操作

2017-07-28 10:02:22 11768

原创 Observer(观察者)模式

一句话总结:我们就看着你,你通知我们要变,我们就变喽。Observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。举例说明下:比如我们在教室上课,钟表一直在走,走到了12点,此时出发下课铃声响,老师听到铃声响后,宣布下课。钟表是被观察者,铃是观察者,它们是一对一关系。而铃同时也是被观察者,老师是观察者,他们是一对多关

2017-07-27 10:53:25 263

转载 Reactor(反应器)模式

一句话总结:仅处理当前需要处理的事情,与epoll的思想类似。转载于:http://daimojingdeyu.iteye.com/blog/828696Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。

2017-07-27 10:25:03 419

转载 C++11

转自: https://baike.baidu.com/item/c++11/2522975?fr=aladdinc++11 编辑C++11标准是 ISO/IEC 14882:2011 - Information technology -- Programming languages -- C++ 的简称[1]  。C++11标准由国际标准化组织(ISO

2017-07-27 09:56:42 281

原创 Linux管道符"|"

Linux系统中的命令可以将标准输入读取数据,还能将这些数据送到标准输出中去,这种功能被系统进一步的利用,从而产生出一种新的特性,称之为管道符“|”,这个符号可以将一个命令的标准输出管道为另外一个命令的标准输入。需要注意的是管道符的使用有两个条件:1、管道命令只能处理前一个命令的标准输出,而不能处理标准错误;2、管道命令右边命令必须能够接收标准输入。格式

2017-07-23 19:32:26 860

转载 Linux nc命令——网络工具利器

原文 https://www.oschina.net/translate/linux-netcat-commandnetcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。 netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所

2017-07-23 11:00:01 1221

原创 Linux文件或目录颜色

文件或目录颜色:白色/黑色——普通文件蓝色——目录绿色——可执行文件红色——压缩文件青色——链接文件黄色——设备文件灰色——其他文件

2017-07-22 20:47:17 884

原创 tree命令安装与使用

安装命令:yum install tree

2017-07-22 20:26:11 910

转载 TCP协议疑难杂症全景解析

转载于:http://blog.csdn.net/dog250/article/details/6612496说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不

2017-07-17 11:07:00 362

原创 awk命令

http://man.linuxde.net/awk这个网址实在讲的挺详细了,不赘述了

2017-07-17 09:59:43 333

原创 epoll——高并发的功臣

一句话总结:减少遍历fd、加速fd从用户态到内核态的拷贝,一切皆为提升性能。与IOCP有异曲同工之妙。说说select和poll,没有具体研究过,基本过程是每次调用select/poll都会将fd集合从用户态拷贝到内核态,在内核中需要全遍历一遍,都是开销啊,而且对fd的数目是有限制的(默认是1024)。说说epoll,相对于前面两者,通过内存共享mmap加速了fd集合的拷贝且仅拷贝

2017-07-16 16:09:20 299

原创 gdb调试

1、编译时包含调试信息,用参数-g。如gcc -o gdb_sample gdb_sample.c -g2、启动GDB的方法有:    1) gdb         如:gdb gdb_sample,也可以用gdb直接进入调试环境,用file 挂接调试程序。    2) gdb core       用gdb同时调试一个运行程序和core文件,core是程序非法执行后co

2017-07-15 21:35:46 524

原创 gcc编译注意事项

1、gcc用于编译C程序,cpp程序需要用g++2、因为因为pthread并非Linux系统的默认库,而是POSIX线程库。在Linux中将其作为一个库来使用,因此加上 -lpthread(或-pthread)以显式链接该库。[zjy@livedvd ~]$ gcc -o thread thread.c -pthread[zjy@livedvd ~]$ gcc -o thr

2017-07-15 21:17:47 612

原创 异常处理

一句话总结:使用得当,如虎添翼;处处滥用,养虎为患。1、自定义抛出异常#include #include "CRTTI.hpp"#include using namespacestd;int testException(){    //throw 1.0;    //throw 1;    st

2017-07-15 12:16:47 337

原创 RTTI的魅力(运行时类型识别 Run-time type Identification)

一句话总结:实际运行时检查指针或者引用指向的实际派生类型。两个重要的哼哈二将:typeid、dynamic_cast#ifndef CRTTI_hpp#define CRTTI_hpp#include class CPerson{public:    void getup(){std::cout"getup..

2017-07-15 11:09:32 320

原创 C++ 虚继承

一句话总结:虚继承的出现时为了解决多重继承中基类的多义性。1、多重继承,基类为非虚继承#ifndef CvirtualExtends_hpp#define CvirtualExtends_hppclass CPerson{public:    int age;    int tall;};cla

2017-07-15 10:10:19 268

原创 Unix哲学基础

1、模块原则:使用简洁的接口拼合简单的部件,保持清晰和简洁,保持紧凑性和正交性如一部机器一样,分成多个小零件,让多数问题仅局限在某个局部,不至于牵一发而动全一身。2、清晰原则:清晰胜于投机取巧清晰的代码不仅不容易出错,也便于阅读。3、组合原则:设计时要考虑拼接组合若想程序具有组合性,那就必须要使程序彼此独立。4、分离原则:策略同机制分离,接口同引擎分离莫要单个进程实现全

2017-07-14 16:59:44 325

原创 Mac系统终端通过ssh连接CentOS

1、用命令 "ssh -l zjy 10.211.55.4" 连接CentOSzhaojunyandeMacBook-Pro:~ zhaojunyan$ ssh -l zjy 10.211.55.4ssh: connect to host 10.211.55.4 port 22: Connection refusedzhaojunyandeMacBook-Pro:~ z

2017-07-11 19:52:59 9926

原创 centos与Mac通过ftp共享文件

以root用户进行配置1、安装ftp:yum install vsftpd*2、查询ftp是否安装成功:rpm -q vsftpd3、启动ftp:service vsftpd start4、修改/etc/vsftpd/vsftpd.conf文件中的匿名访问:anonymous_enable=NO5、关闭防火墙:service iptables stop6、修改共享目录权限:

2017-07-04 00:03:16 4315

原创 双冒号(::)的用法——C++

1、表示域操作符class CAnimal{public:    int age;    int leg;};class CCat : publicCAnimal{public:    int getLeg();public:    int m_leg;}; int

2017-07-02 16:13:45 951

原创 Mac环境安装、配置centos Linux

1、下载Parallels Desktop,Mac系统下非常好用的虚拟机2、下载CentOS系统3、一路安装,就可以了,安装好后桌面Display中配置合适的分辨率4、用yum(Shell前端软件包管理器)命令安装gcc、g++编译器(1)切换到root账户,sudo -i(2)安装gcc编译器,yum install gcc(3)安装g++编译器,yum install

2017-07-01 20:33:27 682

原创 TCP建立/关闭连接时握手过程中的状态情况

一句话总结:

2017-06-20 22:55:09 1796

原创 TCP、UDP比较

TCPUDP本质面向连接的流传输控制协议面向无连接用户数据包协议可靠性可靠本身不可靠性能性能低性能相对高开销协议复杂,开销高协议相对简单,开销低适用地方强调高可靠性不太要求性能

2017-06-20 22:07:29 285

原创 模板

一句话总结:将参数类型抽象化,定义在头文件中。关键字:template、typename、class(不代表类)//  CTemplate.hpp//  CppProduct////  Created by zhaojunyan on 17/6/18.//  Copyright © 2017年 zhaojunyan. All rights res

2017-06-18 12:03:43 257

原创 运算符重载

一句话总结:究其本质,触类旁通;特别注意后置++/--的实现。如前置++和后置++的本质实现过程与重载的实现方法。1、加减、++、-- 运算符重载//  COperator.hpp//  CppProduct////  Created by zhaojunyan on 17/6/18.//  Copyright © 2017年 zhaojunyan.

2017-06-18 10:24:32 278

原创 static

一句话总结:static修饰的对象仅在当前文件有效;修饰的类成员变量和成员函数需在头文件声明,源文件外部定义,仅有一份可直接引用。//  CStatic.hpp//  CppProduct////  Created by zhaojunyan on 17/6/17.//  Copyright © 2017年 zhaojunyan. All rig

2017-06-17 18:53:53 246

原创 友元

一句话总结:要想访问我的保护信息,必须存在于我的Friend列表中。注意头文件不要相互包含友元类://  CFriend.hpp//  CppProduct////  Created by zhaojunyan on 17/6/17.//  Copyright © 2017年 zhaojunyan. All rights reserved.

2017-06-17 17:18:27 342

原创 const与指针、引用

#include using namespacestd;int main(int argc,const char * argv[]) {    // insert code here...    std::cout <<"Hello, World!\n";        int a =5;    int b =

2017-06-17 16:10:05 276

原创 命令空间

////  CNameSpace.hpp//  CppProject////  Created by zhaojunyan on 17/6/17.//  Copyright © 2017年 zhaojunyan. All rights reserved.//#ifndef CNameSpace_hpp#define CNa

2017-06-17 15:32:25 251

原创 Java问题汇总

1、Default constructor cannot handle exception type CloneNotSupportedException thrown by implicit super constructor. Must define an explicit constructor方法里未用try-catch来捕捉和处理错误

2017-06-11 20:29:17 247

原创 Java核心技术 卷I —— 第6章 接口与内部类

1、回调import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;//import java.util.Date;public class CallBa

2017-06-11 19:56:57 229

原创 Mac下安装Python包管理工具pip

bogon:~ zhaojunyan$ sudo easy_install pipSearching for pipReading https://pypi.python.org/simple/pip/Best match: pip 9.0.1Downloading https://pypi.python.org/packages/11/b6/abcb525026a

2017-06-10 13:58:42 2562 1

原创 java遗漏知识点汇总

1、Java中的int永远为32位的整数,而C++与操作系统有关2、StringBuilder: 用于单线程多次连接字符串3、Scanner用于读取控制台明文,Console用于读取控制台密文,如密码。Scanner比较灵活,可读字符串、变量、还可以读文件4、带标签的break语句label:....... break label;5、大数值BigInteger和BigDe

2017-05-31 22:45:56 395

原创 HDFS架构

NameNode负责管理所有NataNode,b保存着元数据信息,包括名字、副本数、对应的block、路径等信息。详情可见官方文档http://itm-vm.shidler.hawaii.edu/HDFS/ArchDocOverview.html#_Toc291720190

2017-05-30 00:04:21 405

原创 MapReduce与升级版Yarn系统架构图

1、MapReduce系统架构图对于节点数超过4000的大型集群,该系统面临着扩展性的瓶颈。Yarn应运而生。待后续更新

2017-05-29 10:38:41 856

原创 Hadoop守护进程

一、五大守护进程hadoop1.xNameNodeDataNodeSecondaryNameNodeTaskTrackerJobTrackerhadoop2.xSecondaryNameNodeResourceManagerNodeManagerNameNodeDataNode二、三种启动与关闭方式1、sbin/start-a

2017-05-29 09:59:31 9122

空空如也

空空如也

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

TA关注的人

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