Linux/Unix编程部分

1.进程间通信方式:信号,信号量,消息队列,共享内存,套接字Socket

2.ipcs: Linux/Unix下的命令,可以用来查看当前系统中所使用的进程间通信方式的各种信息,可以通过不同的参数选项来进行查询。

ipcs -a  是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息
   ipcs -m  打印出使用共享内存进行进程间通信的信息
   ipcs -q   打印出使用消息队列进行进程间通信的信息
   ipcs -s  打印出使用信号进行进程间通信的信息

3.ipcrm:Linux/Unix下的命令,可以用来移除进程间通信的载体,如共享内存段,信号集合和消息队列等,该命令只有root管理员和ipc的创建者才可以成功使用。该命令执行之后会将与载体相关的数据一起移除。

4.ELF文件:Unix/Linux系统下的一种标准文件格式,可以分为目标文件、可执行文件、共享库文件和核心转移文件四种不同的类型,主要由ELF头部、Program Header table、Section、Section Table组成,本质上是类Unix系统的标准二进制文件。

网络编程部分

1.connect发生阻塞,怎么解决?

答:方法一是设置定时器,使connect进行定时等待,一旦超时就返回错误,方法二是选择使用非阻塞模式,返回之后使用select判断此时所处的状态。

2.select判断数据可读,但是读回来的人数据长度为0,为什么?

答:某个套接字集合中没有准备好,可能会select内存用FD_CLR清该位为0

3.keepalive是什么?

答:TCP协议中用于检测死连接的一种机制。当建立TCP连接的双方长时间没有数据传输而处于空闲状态时,其中一方的主机会发出保持活动信号给另外一方,并等待应答。如果主机可达并且有回应,那么认为对方主机还在线,连接继续保持,反之,重复多次发现都没有报文返回,说明连接已经丢失,直接丢弃该连接。keepalive的探测报文发送间隔可以设置,具体可以参考这篇博客:https://blog.csdn.net/u010126059/article/details/50670801

算法部分

1.排序:常用的排序算法有多种,如快速排序、插入排序、基数排序等,各个算法都有自己的优点和缺点,时间复杂度和空间复杂度也不同,在选用排序算法时应该结合实际需求来选择合适的算法。

快速排序:平均时间复杂度为O(nlogn),最坏情况是O(n^2),当分割的元素选取不恰当时,就会出现最坏情况,此时左区间长度为0,右区间长度为n,一般采用三点中值算法进行优化。

插入排序:平均时间复杂度为O(n^2),适合小数据量或者数据接近有序的排序

C++ STL中实现了一个sort函数,用于对具有线性表结构的容器中的数据进行排序,可以用于对vector或者数据进行排序,不能用于对list和slist进行排序,其底层实现机制运用了以上所说的快速排序和插入排序,源码分析可以参考以下两篇博客:

https://blog.csdn.net/u010902721/article/details/45868391和https://blog.csdn.net/u010902721/article/details/45869367(感谢这位大神的分享,基本将sort的实现机制都说到了)

C++部分

1.值传递、指针传递和引用传递的区别

值传递是传递变量的值,将实参的值拷贝一份给形式参数,在函数中形参的改变与实参没有关系,因此在写swap的demo程序时输出结果并没有发生交换,因为形式参数相当于局部变量,其值存放在栈区域,函数执行完毕退出栈会被销毁。

引用传递和指针传递本质上都是传递地址,实参和形参都是同一变量的地址,在函数中对形参的操作是对该地址对应的内存进行操作,因此测试swap的demo输出结果会发生交换。

2.dynamic_cast

全称是动态类型转换,是C++提供的一种运行时多态类型转换的操作。dynamic_cast提供了类型安全检查,是一种基于能力查询(Capability Query)的转换,所以在多态类型间进行转换更提倡采用dynamic_cast。dynamic_cast只能用于多态类型的类型转换,被转换对象obj的类型T1必须是多态类型,即T1必须公有继承自其它类,或者T1拥有虚函数(继承或自定义)。若T1为非多态类型,使用dynamic_cast会报编译错误。

具体解析可以参考这篇博客:https://www.cnblogs.com/weidagang2046/archive/2010/04/10/1709226.html

暂且分享到这里,未完待续.............

2018-07-22   23:26:04  深圳

秋招复习-C++( 一)的更多相关文章

  1. 秋招复习-C++(二)

    1.Segmentation Fault是什么?什么情况下会导致它的出现?怎么解决? Segmentation Fault中文是段错误,在Linux系统中,段错误一般是是由用户程序非法访问内存引起的( ...

  2. 秋招复习-C++(三)

    • 数据库 1.数据库的索引有哪些? (1)B树索引:利用B树作为底层数据结构的索引,在B树索引中保存索引列的值和数据表的对应行的ID,每一个叶子结点都存放着一个索引列的值和数据表对应行的ID,通过这 ...

  3. Java Collection秋招复习

    抽象类和接口的区别 我们先来看一下抽象类 * @auther draymonder */ public abstract class AbstractClassTest { private int T ...

  4. 9.秋招复习简单整理之Spring面试AOP和IOC的理解

    1.Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但不适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用. AOP,一般称为面向切面,作为面向对象的一种补充,用 ...

  5. 8.秋招复习简单整理之Spring面试一般问题

    1.不同版本的Spring Framework有哪些主要功能? 2.什么是Spring Framework? Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套 ...

  6. 7.秋招复习简单整理之请你讲讲 Statement 和 PreparedStatement 的区别?哪个性能更好?

    Statement和PreparedStatement都是数据库用于执行SQL语句的句柄,但是PreparedStatement代表一个预编译的SQL. 以下是PreparedStatement和St ...

  7. 6.秋招复习简单整理之请你谈谈JDBC的反射,以及它的作用?

    通过反射com.mysql.jdbc.Driver类,实例化该类时会调用该类的静态代码块,该代码块会去java的DriverManager类中注册自己,DriverManager管理所有已注册的驱动类 ...

  8. 5.秋招复习简单整理之请介绍一下List和ArrayList的区别,arrayList和HashSet区别?

    第一问:List是接口,ArrayList是List的实现类. 第二问:ArrayList是List的实现类,HashSet是Set的实现类,List和Set都实现了Collection接口. Arr ...

  9. 4.秋招复习简单整理之java支持多继承吗?

    java仅支持单继承,但支持接口多实现.

随机推荐

  1. bzoj 3470: Freda’s Walk【拓扑排序+期望dp】

    dfs会T,只好正反两遍拓扑了-- #include<iostream> #include<cstdio> #include<queue> #include< ...

  2. 【POJ - 2251】Dungeon Master (bfs+优先队列)

    Dungeon Master  Descriptions: You are trapped in a 3D dungeon and need to find the quickest way out! ...

  3. NOIp 2010/Luogu P1525 关押罪犯 【二分图/并查集】 By cellur925

    题目传送门 感想:相信自己的想法!继续挖掘! 读完题目后:看到的最大值最小?二分答案啊!再仔细一看:wi达到了1e9,二分可能费点劲.(其实真的是可以的)而且check函数貌似并没有什么行之有效的写法 ...

  4. WPF-按钮美化

    我们不多哔哔,先放图: 美化按钮背景: 当我们用系统默认的按钮风格似乎太老套,而且不太美观,某些情况下我们需要对按钮进行美化和重绘,只有这样才能满足我们的需要 按钮美化思维引导: 图中1 为控件Bor ...

  5. 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解)

    扩展博客 以下,是我在手动的CDH版本平台下,安装Hue. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz) ...

  6. B - Burning Midnight Oil CodeForces - 165B

    One day a highly important task was commissioned to Vasya — writing a program in a night. The progra ...

  7. Neighbor House LightOJ - 1047

    Neighbor House LightOJ - 1047 #include<cstdio> #include<cstring> #include<algorithm&g ...

  8. ACM_不知所措的统计员

    Problem Description: GDUFE-GAME完美结束,按照惯例,会有一篇报道,描述活动期间的盛况,因此相关人员找到负责统计的ASDF,但是ASDF只知道第i个人在S_i时进场,在E_ ...

  9. 题解报告:hdu 1421 搬寝室(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9 ...

  10. NDK(18)eclipse 使用C++ STL

    1.引用库 在Application.mk 中使用 APP_STL := stlport_static 等. APP_ABI := x86 armeabi APP_PLATFORM := androi ...