liuruijie

快乐搬砖,码出未来


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

C++中构造函数,拷贝构造函数和赋值函数的区别和实现

发表于 2020-09-01 分类于 技术积累

  C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法。下面就详细比较下三者之间的区别以及它们的具体实现。 构造函数  构造函数是一种特殊的类成员函数,是当创建一个类的对象时,它被调用来对类的数据成员进行初始化和分配内存。(构造函数的命名必须和类名完全相同)  首先说 ...

阅读全文 »

C++中static、const和static const的初始化

发表于 2020-08-29 分类于 技术积累

  const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。  static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是 ...

阅读全文 »

毒酒问题

发表于 2020-08-27 分类于 题集

有1000瓶药水,其中只有一瓶有毒。现在用小白鼠进行实验,小白鼠只要服用任意量有毒药水就会在24小时内死亡。问至少要用多少只小白鼠进行实验才能检测出哪瓶药水有毒?  给1000个瓶分别标上如下标签(10位长度):  0000000001 (第1瓶)  0000000010 (第2瓶)  000000 ...

阅读全文 »

TIME_WAIT和CLOSE_WAIT状态解析

发表于 2020-08-26 分类于 技术积累

什么是TIME-WAIT和CLOSE-WAIT ?  众所周知,由于socket是全双工的工作模式,一个socket的关闭,是需要四次握手来完成的:  1)主动关闭连接的一方,调用close();协议层发送FIN包 ;  2)被动关闭的一方收到FIN包后,协议层回复ACK;然后被动关闭的一方,进入C ...

阅读全文 »

进程和线程的五种状态(生命周期)

发表于 2020-08-17 分类于 Linux

  进程和线程在创建到销毁的过程中,都会经历五种状态的转换。具体如下: 进程  创建:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态。  就绪:进程已经准备好,已分配到所需资源 ...

阅读全文 »

malloc底层实现原理

发表于 2020-07-18 分类于 Linux

  对于malloc,以前只知道如何用,却不知道它的内部实现原理。这次特意学习了一下,做个记录。下面分析均是基于linux环境下的malloc实现。先总结结论,再逐步展开。 结论    1)当开辟的空间小于128K时,调用brk()函数,malloc的底层实现是系统调用函数brk(),其主要移动指针 ...

阅读全文 »

优先队列的理解-与堆排序的比较

发表于 2020-07-12 分类于 技术积累

  优先队列 priority_queue,头文件#include 。  priority_queue<int, vector, greater> 表示队列内部是小顶堆,队列输出为升序序列(输出过程是小的先输出)。  priority_queue<int, vector, less ...

阅读全文 »

mmap详解

发表于 2020-07-02 更新于 2020-07-12 分类于 Linux

mmap基础概念  mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再 ...

阅读全文 »

网络编程学习笔记(五)--select、poll、epoll比较

发表于 2020-06-26 更新于 2020-06-27 分类于 技术积累

select介绍  select创建了3个文件描述符集(fd_set)并拷贝到内核中,分别监听读、写、异常动作。select可以监听的文件描述符受到单个进程所能打开的fd的限制,默认为1024。采用轮询方式,遍历所有的fd,最后返回一个文件描述符是否就绪的mask掩码,并根据mask掩码给fd_se ...

阅读全文 »

网络编程学习笔记(四)--几种高性能方案

发表于 2020-06-14 分类于 技术积累

I/O多路复用  我们假设设计了这样一个应用程序,该程序从标准输入接收数据输入,然后通过套接字发送出去,同时,该程序也通过套接字接收对方发送的数据流。我们可以使用fgets方法等待标准输入,但是一旦这样做,就没有办法在套接字有数据的时候读出数据;我们也可以使用read方法等待套接字有数据返回,但是这 ...

阅读全文 »
12…5
liuruijie

liuruijie

LiuRuijie的个人博客,记录生活,立足当下,放眼未来
43 日志
7 分类
22 标签
RSS
GitHub E-Mail Weibo Google
© 2020 liuruijie
|