文章分类 -  杂记

摘要:###指针强制转换and字节序导致的问题 平时接触的小端设备居多,昨天在一个大端设备上遇到了一个问题,调试分析后发现是字节序问题。 现象: | 类型 | 期望值(dec) | 实际值(dec)| 期望值(bin) |实际值(bin)| |-|-|-|-|-| | uint16_t | 1 |256| 阅读全文
posted @ 2021-01-13 12:08 ren_zhg1992 阅读(374) 评论(0) 推荐(0)
摘要:转载:https://www.zhihu.com/question/48219401/answer/742444326 作者:老刘链接:https://www.zhihu.com/question/48219401/answer/742444326来源:知乎著作权归作者所有。商业转载请联系作者获得授 阅读全文
posted @ 2020-03-04 22:02 ren_zhg1992 阅读(226) 评论(0) 推荐(0)
摘要:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,2是最小的素数。除了1和它本身以外不再有其他因数的数称为质数。 阅读全文
posted @ 2017-06-14 18:09 ren_zhg1992 阅读(97) 评论(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)
摘要:在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是: * EAGAIN: 再试一次 * EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block * perr 阅读全文
posted @ 2017-04-20 17:08 ren_zhg1992 阅读(330) 评论(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)