笔试面试收获(持续更新中)

1. Internet 是有ARPANET发展而来
2. NFS(Network File System)即网络文件系统
3. OSI参考模型七层:物理层,数据链路层,网络层(IP,路由器,三层交换机),传输层(TCP/UDP),会话层,表示层,应用层
4. 软件测试:黑盒/白盒测试:
黑盒测试:主要就是测试代码的功能与输入有效性在问题, 以便于了解或使用系统的内部结构及知识。

输入类型输入数据预期输出实际输出测试状态
正确的数值5+5=1010正确
带非法字符的数值&+&….=出现异常出现异常正确
加减乘除5*5=2525正确
非法运算符5@2=提示只能输入+-*/提示只能输入+-*/正确
分母为03/0=提示分母不能为0提示分母不能为0正确

白盒测试:在设计测试的过程中,我们通过测试程序的内部结构,了解代码的完善程度,发现错误,减少代码。

测试用例用例说明覆盖代码测试结果
5-5数值的输入interceResult(4-9)运行成功
2.9非法运算符interResult(7-9)运行成功,提示输入错误重新输入
1-1是否运行减法interceptOperation(4-64)运行成功
2+2是否运行加法interceptOperation(4-64)运行成功
3*3是否运行乘法interceptOperation(4-64)运行成功
4/4是否运行除法InterceptOperation(4-64)运行成功
5/0分母不能为0ispassString(16-18)运行成功,提示分母不能为0,重新输入
6e。非法字符interceResult(7-9)运行成功,提示算式错误重新输入

5. 程序错误的主要三种情况:

a) 编译链接错误(语法错误):
编译链接错误又分为编译错和链接错。
编译错就是普通意义上的语法错误,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。b)运行错误: 
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。
最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。 
c)逻辑错误:
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的 == 写成 =    赋值,往往就会导致逻辑错。

6. C++函数的三种传递方式(具体讲解):

  • 值传递 :形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。
  • 指针传递:形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作.
  • 引用传递:形参相当于是实参的“别名”,对形参的操作其实就是对实参的操作,在引用传递过程中,被调函数的形式参数虽然也作为局部变量在栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

7.逆波兰表达式:
博客园中关于逆波兰表达式的讲解
8. 虚析构函数:
虚析构函数,一个基类的析构函数写成虚函数,并用基类指针删除派生类的对象时,会调用派生类的析构函数,否则会造成内存泄露。
9. TCP和UDP的区别:

1,TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信,
5,TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

10. 进程间通讯方式及优缺点

  • 管道:有名管道和无名管道(范例)
    • 无名管道:是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。
    • 有名管道:和无名管道基本相同,但也有不同点:无名管道只能由父子进程使用;但是通过命名管道,不相关的进程也能交换数据。
  • 共享内存:被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。(范例)
  • 消息队列:为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行进程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。(范例)
  • 信号量:就是一个消息的链表。可以把消息看作一个记录,具有特定的格式。进程可以向其中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息(范例)
  • 套接字(socket):套接口也是一种进程间的通信机制,与其他通信机制不同的是它可以用于不同及其间的进程通信。

11. 线程间同步方式(范例)

  • 锁机制
    • 互斥锁:提供了以排它方式阻止数据结构被并发修改的方法。
    • 读写锁:允许多个线程同时读共享数据,而对写操作互斥。
    • 条件变量:可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。
  • 信号量机制:包括无名线程信号量与有名线程信号量
  • 信号机制:类似于进程间的信号处理。
    线程间通信的主要目的是用于线程同步,所以线程没有象进程通信中用于数据交换的通信机制。

12. 线程和进程的比较(范例)

进程是程序的实例,具有一定的独立功能。
线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位。线程基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是他可以与同属于一个进程的其他线程共享拥有的全部资源。
区别:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 安装 配置 Maven

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.需要提前安装JDK,并且配置环境变量 请参考:https://blog.csdn.net/jiangyu1013/article/details/84321146 2.…

Threading in C#

这里推荐一些C#编程多线程的学习资料: http://knowledge.swanky.wu.googlepages.com/threading_in_c_sharp.html Ebook in English:http://cid-068f7d75d8585700.skydrive.live.com/self.aspx/ebook/threading.pdf 一些demo:http://cid-068f7…

经理人如何与这“六种人”打交道?

在职场中,我们要与不同身份、不同年龄、不同岗位、不同性别、不同性格的人打交道。在平时的实际工作接触中,善于与不同人打交道的经理人,会根据不同的情况用不同的态度和方式来对待之。 1、如何与死板的人打交道 与这样的人交往&#xff0c…

[Git高级教程 (一)] 通过 Tag 标签回退版本修复 bug

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1 前言 本系列之所以取名”Git高级教程”,主要是教大家解决实际工作中遇到的问题,要求读者会基本的Git用法和命令…

Javascript 自定义输出

缘由 前段时间再看了一些javascript的学习资料,也写的一些demo,在输出的时候一般都用alert,但这个方法会打断函数运行,用起来不是很好.还有就是console.log这个方法,这种方法原来一直以为只能在FireFox上面才能用,现在才发现主流浏览器都支持.但我的这个插件已经写的差不多了,所…

不要打2岁内和6岁后的孩子 父母必看

一位妈妈说:“孩子经常无理取闹,到超市就要买这买那,不给买就坐在地上哭闹。到别人家去就乱翻乱动,还会到人家沙发上乱蹦,无论你怎么说,孩子都不听话。每次我都会气不打一处来,回到家就痛打一顿…

设计模式之开放封闭原则

以下皆是个人理解如有不对请留言指出,谢谢! 我就代码提出我自己个人的看法: 正常定义一个类例如银行工作员,他可以执行存款,付款和转账功能,如果在现有功能上我想添加贷款功能,需要在类中添加…

[Git高级教程(二)] 远程仓库版本回退方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。 2 问题 如果提交了…

uplift model学习笔记

一、解决的问题: 通常的 Propensity Model 和 Response Model 只是给目标用户打了个分,并没有确保模型的结果可以使得活动的提升最大化;它没有告诉市场营销人员,哪个用户最有可能提升活动响应; 因此,需要另…

必须看透的50个错觉 人生要看透而不看破!

我们应该感谢命运的多喘,是它用历练使一颗脆弱心的渐渐变得坚强,变得对一切都充满了向往。无可否认,只有真正的经历了一些事物之后,你才会对人生看得更加透彻,才会对世间真情感悟的更加真切。 1、个人只能被现实改变…

设计模式之依赖倒置原则

在传统的过程式中,上层依赖于底层,当底层变化,上层也得跟着做出相应的变化。这就是面向过程的思想,弊端就是导致程序的复用性降低并且提高了开发的成本。 而面向对象的开发则很好的解决了这个问题,让用户程序依赖于抽象…

@Transactional 详解

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Transactional 是声明式事务管理 编程中使用的注解 1 .添加位置 1)接口实现类或接口实现方法上,而不是接口类中…

LiveGBS高性能GB28181国标流媒体服务流传输模式支持UDP、TCP被动、TCP主动模式

LiveGBS国标(GB28181)流媒体服务软件: 提供用户管理及Web可视化页面管理; 提供设备状态管理,可实时查看设备是否掉线等信息; 实时流媒体处理,PS(TS)转ES; 设备状态监测、云台控制、录…

通过人行横道线

学车中的通过人行横道线 人行横道线,俗称斑马线,是由一条一条的白色线组成的,主要是用来让行人穿越马路的。 驾驶员驾驶车辆通过人行横道时应该减速缓行,注意礼让行人。 考核要求 当驾车进入路面有施划人行横道线的&#xf…

python学习-38迭代器和生成器

迭代器和生成器---- 迭代器协议和for循环工作机制1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往后走,不能往前走&#xff09…

[转载]基于Aaf的数据拆分

(本文适于使用Aaf框架的开发者阅读) 1. 基本原理 在Aaf框架中,“对象”和“存储”的关系映射有一个关键的纽带StorageAlias,即“存储别名”,同样一个类型,在不同的存储别名下,可以自由映射到任意存储“位置”。  “位…

靠边停车

什么是靠边停车 靠边停车是大路考中一个指标很明确的考核项目,要求学员驾驶车辆使之靠边停下。 操作方法 1、停车前,要通过内、外后视镜观察后方和右侧交通情况,开右转向灯。 2、适量踩下制动踏板。 3、向右转动方向盘(第一把轮…

RuntimeException 和 Exception 区别、异常的子父级关系

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.java 将所有的错误封装为一个对象,其根本父类为Throwable, Throwable 有两个子类:Error 和 Exception。 2.Err…

通过路口

操作方法 1、让车减速 2、观察路口的情况 3、通过路口 注意事项 1、不要抢黄灯 2、不要开英雄车,即红灯亮起时通过路口的最后一辆车 3、控制车速,控制在50km/h以下 4、看到左右车都减速时,也马上减速 5、要左转…

C语言笔记(关键字)

gdb调试 gcc 源程序 -g;加gdb调试信息gdb可执行程序;(gdb调试)l(ist):查看源码,按一下从main开始10行以此往后l n:查看n处上下10行的源码run:运行程序b&…