秋招复习-C++(三)
• 数据库
1.数据库的索引有哪些?
(1)B树索引:利用B树作为底层数据结构的索引,在B树索引中保存索引列的值和数据表的对应行的ID,每一个叶子结点都存放着一个索引列的值和数据表对应行的ID,通过这个可以实现快速查询。
(2)位图索引:当字段的基数很低时,需要使用位图索引(效率较高),将某个字段所有可能的值用对应的位去表示,每一条记录对应一组位,字段与位符合的置为1,否则置为0,节省内存空间
(3)反向键索引:为了解决B树索引对顺序键值的不适配导致建立好的索引而提出的一种特殊的B树索引,可以让索引的叶子结点分布更为平均,每次进行索引时反向键索引会先反向每个键值的字节,然后对反向后的新数据进行索引。
(4)基于函数的索引:即查询语句中包含了函数表达式作为查询条件,为了提高查询效率(避免全表扫描),可以采用基于函数的索引,即利用函数表达式作为索引项进行查找。
(5)哈希索引、全局索引等其他索引
可以参考这篇博客:https://www.cnblogs.com/sessionbest/articles/8689255.html
• C++
《Effective C++》总结:https://www.cnblogs.com/shenshenlei/p/5497967.html
1. 定义一个空类,会发生什么?
编译器会自动为空类声明一个默认构造函数(无参),一个拷贝构造函数,一个赋值运算符(=)以及一个析构函数,并且这个析构函数默认是非虚函数,除非这个空类的基类定义了一个虚析构函数。注意这里只是声明,只有在这些函数被实际调用的时候才会被编译器所创建。(参考《Effective C++》条款5)
2.编译器默认提供的函数,如果不想要使用,应该将拷贝构造函数和赋值运算符声明为私有的,并且不予以实现,这样就可以阻止编译器实现将一个对象拷贝成另一个对象(从逻辑上来说是不存在两个对象完全相同)。
C++11以前:将拷贝构造函数和赋值运算符函数均声明为私有,并且不予以实现,如下代码所示:
class temp{
public:
......
private:
temp(const temp& f);//拷贝构造函数
temp& operator=(const temp&);//重载赋值运算符,只声明不定义
}
C++11出现了新的标准,允许程序员以一种新的方式实现以上功能,如下代码所示, 支持C++11的编译器上也可以将成员函数定义成delete,这样就实现了对编译器默认提供的函数的屏蔽。(具体可以参考《Effective C++》条款6)
class temp
{
public:
...
private:
...
temp(const temp&) = delete; //拷贝构造函数
temp& operator=(const temp&) = delete; //重载赋值运算符
• 多进程
多进程通信方式(IPC)及特点总结
无名管道(pipeline): 简单方便,但只适合于父子进程之间(也可以提供给子进程的子进程即孙进程),局限于单向通信,必须有一方关闭管道的写入,另一方关闭管道的读取,实用范围小。
命名管道(FIFO):与无名管道相反的是,FIFO可以实现任意进程之间的通信,不只限于父子进程之间,功能比无名管道强大,不足之处是命名管道长期驻留在内存中,使用不当容易出错。
秋招复习-C++(三)的更多相关文章
- 3.秋招复习简单整理之List、Map、Set三个接口存取元素时,各有什么特点?
List.Set都是单列元素的集合,它们有共同的父接口Collection. List存取有序可重复元素 存元素:调用add方法,存的元素先来后到,有顺序,当然也可以插队,指定存在某个位置,调用add ...
- 秋招复习-C++(二)
1.Segmentation Fault是什么?什么情况下会导致它的出现?怎么解决? Segmentation Fault中文是段错误,在Linux系统中,段错误一般是是由用户程序非法访问内存引起的( ...
- 秋招复习-C++( 一)
Linux/Unix编程部分 1.进程间通信方式:信号,信号量,消息队列,共享内存,套接字Socket 2.ipcs: Linux/Unix下的命令,可以用来查看当前系统中所使用的进程间通信方式的各种 ...
- Java Collection秋招复习
抽象类和接口的区别 我们先来看一下抽象类 * @auther draymonder */ public abstract class AbstractClassTest { private int T ...
- 9.秋招复习简单整理之Spring面试AOP和IOC的理解
1.Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但不适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用. AOP,一般称为面向切面,作为面向对象的一种补充,用 ...
- 8.秋招复习简单整理之Spring面试一般问题
1.不同版本的Spring Framework有哪些主要功能? 2.什么是Spring Framework? Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套 ...
- 7.秋招复习简单整理之请你讲讲 Statement 和 PreparedStatement 的区别?哪个性能更好?
Statement和PreparedStatement都是数据库用于执行SQL语句的句柄,但是PreparedStatement代表一个预编译的SQL. 以下是PreparedStatement和St ...
- 6.秋招复习简单整理之请你谈谈JDBC的反射,以及它的作用?
通过反射com.mysql.jdbc.Driver类,实例化该类时会调用该类的静态代码块,该代码块会去java的DriverManager类中注册自己,DriverManager管理所有已注册的驱动类 ...
- 5.秋招复习简单整理之请介绍一下List和ArrayList的区别,arrayList和HashSet区别?
第一问:List是接口,ArrayList是List的实现类. 第二问:ArrayList是List的实现类,HashSet是Set的实现类,List和Set都实现了Collection接口. Arr ...
随机推荐
- ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(六)学生借阅/预约/查询书籍事务
前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/asp ...
- gets,gets_s,fgets函数
这次就说一下,gets(),gets_s(),fgets(),::::[在某一篇博客上看到的] C的标准库gets函数不对接受字符串的buffer进行边界检测,会造成越界,从而产生bug: fgets ...
- P5168 xtq玩魔塔
传送门 其实就是板子--只要会克鲁斯卡尔重构树和带修莫队就可以了 这么想着的我就调了将近一个下午-- 思路其实比较清晰,然而码量很大,细节贼多-- 不难看出只在最小生成树上走最优,于是建出克鲁斯卡尔重 ...
- 跟我一起玩Win32开发(5):具有单选标记的菜单
帅哥们,美女们,下午好,我又来误人子弟,请做好准备. 今天,我们的目的是,想要实现下图中的这种菜单效果. 就是一种类似单选按钮的菜单,多个菜单项中,同时只有一个会被选中. 首先,我们在资源编辑器中,设 ...
- JS判断字符串长度(英文占1个字符,中文汉字占2个字符)
//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i ...
- 在HTML页面中实时获取新消息的方法 “JavaScript中的setInterval用法”
JavaScript中的setInterval用法(资料来源:博主---八神吻你 ) setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象.可以使用本动作更新来自数 ...
- 容器API
- JavaScript星级评分,仿百度,增强版
JavaScript星级评分,仿百度,增强版 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- PHP设计模式 原型模式(Prototype)
定义 和工厂模式类似,用来创建对象.但实现机制不同,原型模式是先创建一个对象,采用clone的方式进行新对象的创建. 场景 大对象的创建. 优点 1.可以在运行时刻增加和删除产品 2.可以改变值或结构 ...
- P3371 【模板】单源最短路径
题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...