首页 软件开发面试题

软件开发面试题

举报
开通vip

软件开发面试题.1Windows内存管理方法答:windows内存管理方式主要分为:页式管理,段式管理,段页式管理。页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应的页表;并用相应的硬件地址变换机构来解决离散地址变换问题。页式管理采用请求调页或预调页技术来实现内外存存储器的统一管理。其优点是没有外碎片,每个内碎片不超过页的大小。缺点是,程序全部装入内存,要求有相应的硬件支持。例如地址变换机构缺页中断的产生和选择淘汰页面等都要求...

软件开发面试题
.1Windows内存管理方法答:windows内存管理方式主要分为:页式管理,段式管理,段页式管理。页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应的页 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ;并用相应的硬件地址变换机构来解决离散地址变换问题。页式管理采用请求调页或预调页技术来实现内外存存储器的统一管理。其优点是没有外碎片,每个内碎片不超过页的大小。缺点是,程序全部装入内存,要求有相应的硬件支持。例如地址变换机构缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本,增加了系统开销。段式管理的基本思想是把程序按照内容或过程函数关系分段,每段都有自己的名字。一个用户作业或进程所包括的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换为实际内存物理地址。其优点是可以分别编写和编译,可以针对不同类型的段采用不同的保护,可以按段为单位来进行共享,包括通过动态链接进行代码共享。缺点是会产生碎片。段页式管理:为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配与释放、缺段处理等。另外由于一个段又被划分成了若干个页。每个段必须建立一张页表以把段中的虚页变换成内存中的实际页面。显然与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。段页式管理的段式管理与页式管理 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 结合而成的所以具有他们两者的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。另外需要的硬件以及占用的内存也有所增加。使得速度降下来。2static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?答:全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static函数与普通函数作用域不同。static函数仅在本文件中使用。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。3IP和Mac的解析协议是什么?答:IP和Mac的解析协议是地址解析协议ARP,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。4解释VPN?答:VPN的英文全称是“VirtualPrivateNetwork”,为虚拟专用网络,虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。5继承和多态答:(1)继承:当两个或两个以上的类,具有部分相同的内容(属性和方法)并且可抽象出另一个类彼此之间满足is-a关系,这种关系就是继承。在继承关系中,父类更通用、子类更具体更有一版特性和行为,而子类除了具有父类的特性和行为,还具有一些自己的特殊的特征和行为。在子类继承父类中构造方法和私有方法不能被继承。继承具有代码的可重用性、父类的属性和方法可用于子类、 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 应用程序变得更加简单、可以轻松地自定义子类。(2)多态:同一个实现接口,使用不同的实例而执行不同的操作。多态不仅能减少编码的工作量,也能大大提高程序的可维护性及可扩展性。能改善代码结构,提高其可读性。多态是从类的角度来处理逻辑上的分离。能把多个类(派生同一个基类)当做一个类来处理。这样就能作用于不同的类型了。6排序算法的种类答:(1)插入排序:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。(2)选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。(3)冒泡排序:两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。(4)快速排序:在当前无序区中任取一个数据元素作为比较的"基准",用此基准将当前无序区划分为左右两个较小的无序区,且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准则位于最终排序的位置上,直至所有无序子区中的数据元素均已排序为止。(5)堆排序:堆排序是一树形选择排序,在排序过程中,将数据看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。(6)分配排序、归并排序、希尔排序7进程和线程的区别答:一个程序至少有一个进程,一个进程至少有一个线程。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。8软件开发模型答:软件开发模型是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。(1)瀑布模型:每个软件过程顺序衔接、一次性通过,最常用。需求明确且很少变更的项目,如二次开发或升级型项目。(2)螺旋模型:以原型为基础沿螺线旋转、每转一圈都经过 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 /风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得到最终版本。需求经常变化的大型复杂系统。(3)增量模型:采用随时间进展而交错的线性序列、每个序列产生一个可发布的增量、每个增量产生一个可操作的产品、第一个增量是核心产品。需求经常发生改变的软件开发过程。(4)快速原型模型:快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。用户需求模糊不明的情况下。(5)迭代模型:一次迭代过程包括了所有软件开发 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 、每一次迭代均产生一个可发布的产品、该产品为最终产品的一个子集。适用于事先不能完整定义产品的所有需求,计划多期开发的项目。(6)喷泉模型:以用户需求为动力、以对象为驱动的模型,支持软件复用及多项开发活动的集成,主要支持面向对象的开发方法。9静态多态和动态多态答:编译期多态(重载/模版),运行期多态(虚函数)。静多态是发散式的,让相同的实现代码应用于不同的场合。动多态是收敛式的,让不同的实现代码应用于相同的场合。静多态是泛型式编程风格,它看重的是算法的普适性。动多态是对象式编程风格,它看重的是接口和实现的分离度。对于相关的对象类型,直接实现它们各自的定义,不需要共有基类,甚至可以没有任何关系。只需要各个具体类的实现中要求相同的接口声明,这里的接口称之为隐式接口。相对于面向对象编程中,以显式接口和运行期多态(虚函数)实现动态多态,在模板编程及泛型编程中,是以隐式接口和编译器多态来实现静态多态。对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口。各个子类重写这些虚函数,以完成具体的功能。由于静多态是在编译期完成的,因此效率较高,编译器也可以进行优化;最重要一点是静态多态通过模板编程为C++带来了泛型设计的概念,比如强大的STL库。动态多态实现与接口分离,可复用。静态多态在编译期决定,由模板具现完成,而动态多态在运行期决定,由继承、虚函数实现;动态多态中接口是显式的,以函数签名为中心,多态通过虚函数在运行期实现,静态多台中接口是隐式的,以有效表达式为中心,多态通过模板具现在编译期完成。10TCP三次握手答:TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机)ACK(acknowledgement确认)PSH(push传送)FIN(finish结束)RST(reset重置)URG(urgent紧急)Sequencenumber(顺序号码)Acknowledgenumber(确认号码)。第一次握手:主机A发送位码为syn=1,随机产生seqnumber=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;第二次握手:主机B收到请求后要确认联机信息,向A发送acknumber=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包。第三次握手:主机A收到后检查acknumber是否正确,即第一次发送的seqnumber+1,以及位码ack是否为1,若正确,主机A会再发送acknumber=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。完成三次握手,主机A与主机B开始传送数据。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。11C++中的重载、覆盖、隐藏机制答:重载(Overload):在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。覆盖(Override):是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖。隐藏:是指派生类的函数屏蔽了与其同名的基类函数,规则如下:1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。12osi七层模型答:第一层:物理层比特流设备之间比特流的传输,物理接口,电气特性等。第二层:数据链路层帧将上层数据封装成帧,用MAC地址访问媒介,错误检测与修正。第三层:网络层包提供逻辑地址(IP)、选路,数据从源端到目的端的传输。第四层:传输层段实现网络不同主机上用户进程之间的数据通信,可靠与不可靠的传输,传输层的错误检测,流量控制等。第五层:会话层数据允许不同机器上的用户之间建立会话关系,如WINDOWS第六层:表示层数据数据的表现形式,特定功能的实现,如数据加密。第七层:应用层数据用户接口,提供用户程序“接口”。13tcp和udp的区别答:TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。(1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务;(2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;(3)也正因为以上特征,UDP具有较好的实时性,工作效率较TCP协议高;(4)UDP段结构比TCP的段结构简单,因此网络开销也小。14ip协议位于那层?tcp和udp位于那层?答:IP协议位于网络层,tcp和udp位于传输层。15路由器,集线器,交换机分别工作在那几层?答:1.集线器:物理层设备,用于信号的放大和连接多个终端。2.交换机:数据链路层设备,有多个冲突域和广播域,有多个端口以用于连接各个主机,使用物理地址(MAC地址),转发数据较快。3.路由器:网络层设备,阻止广播,安全性高,使用逻辑地址(IP地址),转发数据较慢。4.防火墙:有软件防火墙和硬件防火墙之分,是网络安全设备被放置在网络的入口处,不属于OSI的哪一层。整理范本编辑word!
本文档为【软件开发面试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
爱赢
公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)
格式:doc
大小:40KB
软件:Word
页数:0
分类:工学
上传时间:2020-05-22
浏览量:2