随笔分类 - interview
摘要:C++相关 1、宏定义 #define:写法为#define 标识符(形参) 字符串,作用是定义标识符为字符串。 #if、#else、#endif、#elif:和去掉#意思差不多,只是最后一定要加#endif #ifdef:如果后面的宏定义了,那么编译 #ifndef:如果后面的宏没有定义,那么编译
阅读全文
摘要:C++相关 C++ part1 C++ part2 C++ part3 C++ part4 C++ part5 C++ part6 C++ part6.5 C++ part7 C++ part8 C++ part9 计算机网络 计算机网络 part1 TCP 计算机网络 part2 计算机网络 pa
阅读全文
摘要:1、必须在构造函数初始化列表里初始化的成员 1. 常量成员和引用类型:因为const常量成员和引用类型必须要初始化且不能赋值。 2. 特殊情况的对象:这个对象是一个类或结构体,并且他只有带参数的构造函数没有默认构造函数,那么一定要在初始化列表初始化(编译器无法帮助生成无参构造函数)。 3. 子类初始
阅读全文
摘要:1、DNS劫持,DNS污染 DNS劫持:就是劫持DNS服务器,获得域名解析记录的控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP转入修改后的IP。 可以更换DNS服务器。 DNS污染:因为DNS解析使用的是UDP协议,当某些服务器知道后,假装域名解析的服务器返回给你一个虚假的结果,因为U
阅读全文
摘要:1、静态多态和动态多态 静态多态:函数重载,模板。编译期间完成。 动态多态:虚函数。运行期间实现。 2、模板的实现和优缺点 函数模板的代码并不能直接编译成二进制代码,而是要实例出一个模板实例。写了模板的实现(定义)后,编译器在遇到需要实例的情况时才会进行实例。 优点: 增加了代码的重用性和可扩展性。
阅读全文
摘要:1、volatile关键字 在C++中,对volatile修饰的对象的访问,有编译器优化上的副作用: 1. 不允许被编译器优化,提供特殊地址的稳定访问(只从内存中读取)。 2. 有序性,编译器进行优化时,不能把对volatile对象前面的其他volatile语句放到他后面,反之也不行。也就是说vol
阅读全文
摘要:1.线程安全 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 2.Linux5种I
阅读全文
摘要:1.C++ 继承和组合 类的组合和继承一样,是复用的重要方式。 要优先使用组合而不是继承。 原因: 1. 组合是黑箱复用,对局部类的内部细节不可见;继承是白箱复用,父类的内部细节可见,破坏封装性。 2. 继承在编译时刻就已经定义了,在运行时不能改变从父类继承的实现;而组合可以在运行时期通过对象的替换
阅读全文
摘要:1.虚函数表建立和虚函数表指针初始化 虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组。而虚函数表指针是在运行期,也就是构造函数被调用时进行初始化的,这是实现多态的关键。 2.纯虚函数 纯虚函数是在基类中声明的虚函数,含有纯虚函数的类为抽象类,他不能生成对象。任何
阅读全文
摘要:1、操作系统的启动 CPU加电后,执行BIOS(基本IO处理系统)。BIOS会进行硬件的自检和初始化,然后把加载程序(BootLoader)从磁盘上的引导扇区中加载到指定位置0x7c00。然后控制权交给加载程序,加载程序将操作系统的数据和代码加载到内存,然后把控制权交给操作系统。 2、系统调用、异常
阅读全文
摘要:1、操作系统四特性 1. 并发:一个时间段,多个进程在宏观上同时运行 2. 共享:系统中的资源可以被多个并发进程共同使用(互斥共享,同时共享) 3. 虚拟:利用多道程序设计,利用时分复用(分时系统)和空分复用(虚拟内存),使得一台物理设备在感觉上像是多台物理设备 4. 异步:程序的执行不是一贯到底,
阅读全文
摘要:一、HTTP [references: HTTP](https://github.com/bestswifter/blog/blob/master/articles/tcp ip 6.md) "【HTTP协议】 HTTP协议详解" 1、概述、特点 HTTP(超文本传输协议)是一种规定了浏览器和万维网
阅读全文
摘要:一、UDP协议 1、概述 UDP提供不可靠的服务,无连接(不存在建立连接的时延),首部开销相对TCP小,没有拥塞控制,提供最大努力交付,面向报文(无论多长的报文UDP也只加一个头部就往下发;TCP面向字节流)。通常用于允许一些数据丢失,但不允许交较大时延、传输少量数据(DNS)。 2、UDP首部格式
阅读全文
摘要:一、TCP协议 "references:newcoder" "TCP/IP协议,TCP和UDP的区别及特点" 1、四层模型 应用层:载有应用程序,将数据发送给传输层。主要协议有HTTP、SMTP、FTP、DNS等。 传输层:负责应用程序间的通信,将来自应用程序的信息流格式化封装。主要协议有TCP、U
阅读全文
摘要:一、程序的内存结构 [references: newcoder](https://www.nowcoder.com/tutorial/93/156e55e0579d4a678e857b34d572c278) 运行时,程序分为:text段、data段、BSS段(2个合称数据段)、堆、栈。 text段:
阅读全文
摘要:实验好多,人好累... 一、进程和线程 [references: 进程三种基本状态](https://www.cnblogs.com/Carrie 0173/p/6357742.html) "进程和线程的概念、区别和联系" "进程和线程的主要区别(总结)" "进程间通信IPC" 1、进程 进程,是资
阅读全文
摘要:C++11新增 [references: nowcoder](https://www.nowcoder.com/tutorial/93/3e889999205d447daad9ec50a6f85d85) auto关键字:编译器可以根据初始值自动推导出类型。但是不能用于函数传参以及数组类型的推导; n
阅读全文
摘要:C++源文件从文本到可执行文件经历的过程 [references: 一个C++源文件从文本到可执行文件经历的过程](https://www.cnblogs.com/buerdepepeqi/p/12361355.html) "C++源文件从文本到可执行文件经历的过程" "gcc程序编译的静态链接和动
阅读全文
摘要:为啥大三了课少了一点点,做作业的时间反而多了一大堆堆??? 关于protect 只能被本类或者子类的成员函数,或者 友元函数 访问。 友元函数:
阅读全文
摘要:红黑树 [references: 红黑树详细分析,看了都说好](https://segmentfault.com/a/1190000012728513) "关于红黑树(R B tree)原理,看这篇如何" 性质: 1、节点是红色或黑色 2、根节点是黑色 3、叶子节点(叶子节点均为NULL)都是黑色
阅读全文