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. VS2012上添加SharePoint2013模板,SharePoint2013 Tool安装配置

    今天需要在SharePoint2013上做开发,但是安装的VS2012默认只有sharepoint2010的模板,因此需要安装配置好,这里我们通过Web平台安装程序4.0来配置的 Web 平台安装程序 ...

  2. arcgis for silverlight 鼠标点击地图获取当前经纬度

    silverlight代码: 地图的name值是myMap.后台在页面初始化的时候,添加地图的点击事件 myMap.MouseClick+=new EventHandler<Map.MouseE ...

  3. Linq list 排序,Dictionary 排序

    C# 对List成员排序的简单方法 http://blog.csdn.net/wanzhuan2010/article/details/6205884 LINQ之路系列博客导航 http://www. ...

  4. 【插件开发】—— 7 SWT布局详解,不能再详细了!

    前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭配 6 SWT复杂空间与布局搭配 前面几篇都提到了S ...

  5. hdu 1025 Constructing Roads In JGShining's Kingdom

    本题明白题意以后,就可以看出是让求最长上升子序列,但是不知道最长上升子序列的算法,用了很多YY的方法去做,最后还是超时, 因为普通算法时间复杂度为O(n*2),去搜了题解,学习了一下,感觉不错,拿出来 ...

  6. Latex新人教程

    1.LaTeX软件的安装和使用 方法A(自助):在MikTeX的官网下载免费的MikTeX编译包并安装.下载WinEdt(收费)或TexMaker(免费)等编辑界面软件并安装. 方法B(打包):在ct ...

  7. ACM_回文素数

    回文素数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 131号是一个主回文,因为它是一个素数和一个回文(当向后读时,它是相同的 ...

  8. JEECMSv9.3在金蝶Apusic中间件中无法找到首页的问题处理

    在金蝶中间件中启动JEECMS,访问首页显示"页面找不到"信息.而访问后台及其他页面均可正常访问. 经代码查找,发现前台页面的所有地址是通过"com.jeecms.cms ...

  9. Liferay门户部署至Apusic Application Server域

    Liferay默认情况下部署在Tomcat容器中,因项目原因需要将Liferay部署至金蝶Apusic Application Server应用服务器中,部署过程如下,特此记录. 1.liferay- ...

  10. 写给W小姐的一封信

    生活 琐碎 Hallo,Preaty.对于跟人说话,我很不擅长如何开头.我不知道什么样的开头是符合我在别人心目中我应有的形象.我不知道什么样的开头符合别人预想中与我相匹配的内容.或者说什么的开头才是一 ...