04 2017 档案

摘要: 阅读全文
posted @ 2017-04-25 17:38 ren_zhg1992 阅读(204) 评论(0) 推荐(0)
摘要:一般而言,const有一下几个方面的作用: (1)定义const常量,具有不可变性。 const int MAX = 100; 必须初始化哦!! (2)修饰指针 这里分常量指针,指针常量。 const int *A; //常量指针,指针指向的对象的值不可以改变,但是指针可以指向别处。 int * c 阅读全文
posted @ 2017-04-25 17:09 ren_zhg1992 阅读(113) 评论(0) 推荐(0)
摘要:转载:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html C/C++中extern关键字详解 1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他 阅读全文
posted @ 2017-04-25 16:58 ren_zhg1992 阅读(147) 评论(0) 推荐(0)
摘要:部分转载:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html C/C++中static关键字作用总结 1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可) 当同时编译多个文件时,所有 阅读全文
posted @ 2017-04-25 16:48 ren_zhg1992 阅读(198) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/majianfei1023/article/details/46629065 一、概念 在如下的A指向B、B指向C的指向关系中: 首先 C是"一段内容",比如你用malloc或者new分配了一块内存,然后塞进去"一段内容",那就是C了。C的起始地址是0 阅读全文
posted @ 2017-04-25 15:49 ren_zhg1992 阅读(431) 评论(0) 推荐(0)
摘要:今天面试被问了hashmap插入的复杂度,问我hashmap是排序的吗?当时竟然懵了,其实自己知道hashmap用的是hash,但却没没有想到这一点。面试官告诉我不是排序的。map采用的是红黑树,是排序的。 HashMap底层采用了hash算法。 map底层是红黑树。 hashmap内部是非排序的、 阅读全文
posted @ 2017-04-24 21:07 ren_zhg1992 阅读(2607) 评论(0) 推荐(0)
摘要:今天面试问了这个问题,脑袋断片了。。。没答上,让我哭会儿。 下面是以为仁兄的解法。我竟然连这个也没想到。 1.一直除2,看最后是否等于1.(最笨的方法) 2.转换成2进制,看是否是这个样子的:1,10,100,1000,10000,就是除了最高位是1,其他都是0,或者说只有一个1. 面试官给出的解法 阅读全文
posted @ 2017-04-24 20:58 ren_zhg1992 阅读(459) 评论(0) 推荐(0)
摘要:字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括暴力搜索(Brute force),KMP, BM(Boyer Moore), sun 阅读全文
posted @ 2017-04-21 21:03 ren_zhg1992 阅读(254) 评论(0) 推荐(0)
摘要:在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是: * EAGAIN: 再试一次 * EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block * perr 阅读全文
posted @ 2017-04-20 17:08 ren_zhg1992 阅读(330) 评论(0) 推荐(0)
摘要:B-树 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数= 阅读全文
posted @ 2017-04-20 16:42 ren_zhg1992 阅读(108) 评论(0) 推荐(0)
摘要:有时候类里面定义了很多int,char,struct等c语言里的那些类型的变量,我习惯在构造函数中将它们初始化为0,但是一句句的写太麻烦,所以直接就memset(this, 0, sizeof *this);将整个对象的内存全部置为0。对于这种情形可以很好的工作,但是下面几种情形是不可以这么使用的: 阅读全文
posted @ 2017-04-20 11:42 ren_zhg1992 阅读(1592) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-04-20 11:22 ren_zhg1992 阅读(58) 评论(0) 推荐(0)
摘要:一.官方说法301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。 这是很官方的说法, 阅读全文
posted @ 2017-04-20 11:10 ren_zhg1992 阅读(171) 评论(0) 推荐(0)
摘要:TIME_WAIT状态原理 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。 下图是以客户端主动关闭连接为例,说明这一过程的。 阅读全文
posted @ 2017-04-20 10:55 ren_zhg1992 阅读(150) 评论(0) 推荐(0)
摘要:①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。 ②变量声明:用于向程序表明变量的类型和名字。 ③定义也是声明:当定义变量时我们声明了它的类型和名字。 ④extern关键字:通过使用extern关键字声明变量名而不定义它。 1.定义也是声明,extern声明不 阅读全文
posted @ 2017-04-20 10:47 ren_zhg1992 阅读(596) 评论(0) 推荐(0)
摘要:在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 HTTPS协议是由S 阅读全文
posted @ 2017-04-19 20:16 ren_zhg1992 阅读(110) 评论(0) 推荐(0)
摘要:int strlen(const char*s){if(*s==0)return 0;elsereturn strlen(s+1)+1;} 阅读全文
posted @ 2017-04-19 16:29 ren_zhg1992 阅读(108) 评论(0) 推荐(0)
摘要:strncpy()函数原型:extern char *strncpy(char *dest, char *src, int n); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 说明:如果src的前n个字节不含NULL 阅读全文
posted @ 2017-04-19 16:21 ren_zhg1992 阅读(473) 评论(0) 推荐(0)
摘要:一、send函数 函数原型:int send( SOCKET s,char *buf,int len,int flags ); 功能:不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应 阅读全文
posted @ 2017-04-19 15:30 ren_zhg1992 阅读(1994) 评论(1) 推荐(0)
摘要:答:首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序;程序一旦运行就是进程,或者更专业化来说:进程是指程序执行时的一个实例。 线程是进程的一个实体。 进程——资源分配的最小单位,线程——程序执行的最小单位。 线程进程的区别体现在几个方面: 第一:因为进程拥有独立的堆 阅读全文
posted @ 2017-04-19 14:49 ren_zhg1992 阅读(57232) 评论(3) 推荐(9)
摘要:一、域名系统 1、域名系统概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域 阅读全文
posted @ 2017-04-18 23:01 ren_zhg1992 阅读(206) 评论(0) 推荐(0)
摘要:Hash算法 Hash可以通过散列函数将任意长度的输入变成固定长度的输出,也可以将不同的输入映射成为相同的相同的输出,而且这些输出范围也是可控制的,所以起到了很好的压缩映射和等价映射功能。等价映射这一特性在海量数据解决方案中起到相当大的作用,特别是在整个MapReduce框架中,下面章节会对这二方面 阅读全文
posted @ 2017-04-18 09:00 ren_zhg1992 阅读(121) 评论(0) 推荐(0)
摘要:一. 原题重现 2015年9月27日百度笔试论述题二选一,其中第一道是关于MapReduce相关的;第二道是搜索引擎中url去重,海量数据集url如何在爬取过程中避免重复爬取过的url。 PS:通常搜索引擎网页去重是通过文档特征提取,再计算相似性或集合Hash实现。 下面是常见的题型: 1.Hash 阅读全文
posted @ 2017-04-18 09:00 ren_zhg1992 阅读(225) 评论(0) 推荐(0)
摘要:传输层的协议主要有TCP和UDP。 TCP提供面向连接的可靠的传输,UDP提供无连接的通信,不保证数据包被发送到目的地址。 TCP和UDP的主要区别如下: 1.TCP是面相连接的传输控制协议,UDP是无连接的用户数据报协议。 2.TCP具有可靠性,不出现丢失或者乱序。UDP不保证。 3.TCP对资源 阅读全文
posted @ 2017-04-14 15:49 ren_zhg1992 阅读(109) 评论(0) 推荐(0)
摘要:客户机与服务器建立连接后,发送一个请求给服务器,请求格式为:统一资源标识符、协议版本号。服务器收到请求的信息(包括请求行,请求头,请求体)。服务器接收到请求后,给予相应的响应信息,格式为一个状态行(包括响应行,响应头,响应体)。在internet上,http通讯通常发生在TCP/IP连接之上。缺省端 阅读全文
posted @ 2017-04-14 15:38 ren_zhg1992 阅读(88) 评论(0) 推荐(0)
摘要:1.什么是ARP? ARP(Address Resolution Protocol,地址解析协议),其工作就是:在主机发送帧前,根据目标IP地址获取MAC地址。 其具体过程如下: 首先,每台主机都会有在自己的ARP缓冲区中建立一个ARP列表,用于存储IP地址与MAC地址的对应关系。 然后,当源主机需 阅读全文
posted @ 2017-04-14 15:34 ren_zhg1992 阅读(216) 评论(0) 推荐(0)
摘要:学了这么多年的计算机网络,突然问起每一层的功能,尽然不能离开说出来,这里来总结一下。 应用层: 提供应用程序间通信。 如:FTP SMTP HTTP等。 程序级数据 表示层:处理数据格式,数据加密、解密,压缩、解压等。 程序级数据 会话层:建立、维护和管理会话。 如:session认证。 程序级数据 阅读全文
posted @ 2017-04-14 15:07 ren_zhg1992 阅读(258) 评论(0) 推荐(0)
摘要:strcpy() 原型声明:char strcpy(char dest, const char *src); 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向de 阅读全文
posted @ 2017-04-13 17:25 ren_zhg1992 阅读(706) 评论(0) 推荐(0)
摘要:编译器一般使用堆栈来实现函数调用。当一个函数被调用时,(进程内核对象为其在进程的地址空间的堆栈部分)分配一定的栈内存给函数使用,函数堆栈用于: 1.在进入函数前,保存“返回地址”和环境变量。返回地址是指该函数结束后,从进入该函数之前的哪个地址继续执行下去。 2.在进入函数之后,保存局部变量等。 在W 阅读全文
posted @ 2017-04-12 17:00 ren_zhg1992 阅读(1828) 评论(0) 推荐(0)
摘要:昨天在看牛客网上一道题,实现一个简单的智能指针,发现写出来有困难,之前也一直没有实现过。 智能指针是一种资源管理类,通过对原始指针进行封装,在资源管理对象进行析构时对指针指向的内存进行释放;通常使用引用计数方式进行内存管理。一个基本的实现如下: 输出如下: 注意: 在Share类中的计数成员 cnt 阅读全文
posted @ 2017-04-10 21:20 ren_zhg1992 阅读(418) 评论(0) 推荐(0)
摘要:select/poll/epoll的区别?(此处参考牛客某大神的解析,此类题目大家需要自己多多查阅,总结)一般人就会回答,轮询和回调的区别,深一点就是fd最大个数限制,因为select内部是数组实现、poll内部是链表实现,所以select有最大fd限制,poll没有限制(系统资源假设无穷大的话)。 阅读全文
posted @ 2017-04-07 21:05 ren_zhg1992 阅读(117) 评论(0) 推荐(0)
摘要:二、Const的使用 1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。 TYPE const ValueName = value; const TYPE ValueName = value; (2)将con 阅读全文
posted @ 2017-04-06 11:32 ren_zhg1992 阅读(175) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-04-03 14:56 ren_zhg1992 阅读(88) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-04-03 14:54 ren_zhg1992 阅读(99) 评论(0) 推荐(0)
摘要:为什么需要“三次握手” 在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。 谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个 阅读全文
posted @ 2017-04-03 14:51 ren_zhg1992 阅读(142) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-04-03 11:06 ren_zhg1992 阅读(59) 评论(0) 推荐(0)
摘要:set概述 set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。 阅读全文
posted @ 2017-04-01 17:40 ren_zhg1992 阅读(85) 评论(0) 推荐(0)
摘要:STL中map容器的说明和使用 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自 阅读全文
posted @ 2017-04-01 17:28 ren_zhg1992 阅读(86) 评论(0) 推荐(0)