《软件工程师面试题含答案.docx》由会员分享,可在线阅读,更多相关《软件工程师面试题含答案.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -交换机是一种储备 转发设备。以太网 交换机采纳储备转发(Store-Forward )技术或直通( Cut-Through )技术来实现信息帧的转发,也称为交换式集线器。交换机和 网桥 的不同在于:交换机端口数较多,数据传输效率 高,转发推迟很小,吞吐量大,丢失率低,网络整体性能增强,远远超过了一般网桥连接网络时的转发性能。一般用于互连相同类型的局域网 ,如以太网与以太网的互连。1一、你对MVC 的懂得, MVC有什么优缺点?结合 Struts,说明在一个Web 应用如何去使用?答:MVC 设计模式(应用
2、观看者模式的框架模式)M: ModelBusiness process layer ,模型,操作数据的业务处理层,并独立于表现层Independent of presentation 。V: ViewPresentation layer ,视图, 通过客户端数据类型显示数据,并回显模型层的执行结果。 C: ControllerControllayer ,掌握器,也就是视图层和模型层桥梁,掌握数据的流向,接受视图层发出的大事,并重绘视图MVC 框架的一种实现模型模型二 Servlet-centric :JSP+Servlet+JavaBean,以掌握为核心,JSP 只负责显示和收集数据,Sevl
3、et,连接视图和模 型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数 据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC 的实现模式。StrutsMVC 框架 Web application frameworksStruts 是使用 MVC 的实现模式二来实现的,也就是以掌握器为核心。Struts 供应了一些组件使用MVC 开发应用程序:Model :Struts 没有供应model 类。这个商业规律必需由Web 应用程序的开发者以JavaBean或 EJB 的形式供应View :Struts 供应了 action form 创建 form b
4、ean,用于在 controller 和 view 间传输数据。 此外,Struts 供应了自定义JSP 标签库,帮助开发者用JSP 创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP 中。Controller : Struts 供应了一个核心的掌握器ActionServlet ,通过这个核心的掌握器来调用其 他用户注册了的自定义的掌握器Action ,自定义Action 需要符合Struts 的自定义Action 规范,仍需要在struts-config.xml的特定配置文件中进行配置,接收JSP 输入字段形成Action for
5、m ,然后调用一个Action 掌握器。 Action 掌握器中供应了model 的规律接口。二、什么是WebService? 答:WebService 是一个 SOA (面对服务的编程)的架构,它是不依靠于语言,不依靠于平台,可以实现不同的语言间的相互调用,通过 Internet 进行基于Http 协议的网络应用间的交互。WebService 实现不同语言间的调用,是依靠于一个标准,webservice 是需要遵守WSDL可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 1 页,共 17 页 - - - - - - - - - -可
6、编辑资料 - - - 欢迎下载精品名师归纳总结(web 服务定义语言)/SOAP(简洁恳求协议)规范的。 WebService=WSDL+SOAP+UDDI( webservice 的注册)Soap 是由 Soap 的 part 和 0 个或多个附件组成,一般只有part,在 part 中有 Envelope 和Body 。Web Service 是通过供应标准的协议和接口,可以让不同的程序集成的一种SOA 架构。Web Service 的优点(1) 可以让异构的程序相互拜访(跨平台)(2) 松耦合(3) 基于标准协议(通用语言,答应其他程序拜访)Web Service 的基本原理(1) Se
7、rvice Provider 采纳 WSDL 描述服务(2) Service Provider采纳 UDDI将服务的描述文件发布到UDDI 服务器( Register server)(3) Service Requestor 在 UDDI服务器上查询并猎取 WSDL 文件(4) Service requestor 将恳求绑定到SOAP,并拜访相应的服务。三、什么是中间件?中间件就是程序中可织入的,可重用的,与业务规律无关的各种组件。中间件( middleware )是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之
8、上,应用软件的下层, 总的作用是为处于自己上层的应用软件供应运行与开发的环境,帮忙用户敏捷、高效的开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的 系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,治理运算资源和网络通信。分类:数据拜访中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。举例:1, RMI (Remote Method Invocations,远程调用)2, Load Balancing 负载均衡,将拜访负荷分散到各个服务器中 3, Transparent
9、Fail-over 透亮的故障切换4, Clustering 集群 ,用多个小的服务器代替大型机)5, Back-end-Integration 后端集成,用现有的、新开发的系统如何去集成遗留的系统6, Transaction 事务(全局 /局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)7, Dynamic Redeployment 动态重新部署 ,在不停止原系统的情形下,部署新的系统) 8, System Management系统治理 9, Threading 多线程处理 10, Message-oriented Middleware 面对消息的中间件(异步的调用编程)11
10、,Component Life Cycle 组件的生命周期治理 12, Resource pooling (资源池)13, Security (安全) 14, Caching(缓存)四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?答: 1 Presentation layer(表示层)可编辑资料 - - - 欢迎下载精品名师归纳总结(1) 表示规律(生成界面代码)(2) 接收恳求(3) 处理业务层抛出的反常(4) 负责规章验证(数据格式,数据非空等)(5) 流程掌握(2) Service layer (服务层 /业务层)(1) 封装业务规律处理,并且对外暴露接口(2)
11、负责事务,安全等服务(3) Persistence layer(长久层)(1) 封装数据拜访的规律,暴露接口(2) 供应便利的数据拜访的方案(查询语言,API ,映射机制等)Domain layer (域层)(1) 业务对象以及业务关系的表示(2) 处理简洁的业务规律(3) 域层的对象可以穿越表示层,业务层,长久层软件分层结构使得代码爱护特别便利,设计明确,各层独立,专心自己善于的领域。五、什么是OOP ?OOP 相对于面对过程编程有哪些优点?OOP,Object-Oriented Programming ,面对对象编程不同于面对过程编程:( 1) OOP 关注对象和角色,也就是事物的本质1)
12、 OOP 把客观世界中的对象抽象成对应的类。2)通过类构造实例。3)通过依靠、继承、实现等形式建立对象间的通信关系( 2) OOP 易于扩展,增加或转变业务的功能,无需大幅改动转变源代码( 3) OOP 易于建模, OOP 就是软件架构师在运算机高级语言中对客观世界的抽象和再现,人们可以很好的懂得和建立起运算机中的抽象模型六、谈谈 Overload 和 Override 的区分。答:方法的重写Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。如
13、 果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写Overriding 。子类的对象使用这个方法时,将调用子类中的定义,对它而言, 父类中的定义犹如被“屏蔽”了。假如在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,就称为方法的重载Overloading 。Overloaded 的方法是可以转变返回值的类型。七、谈谈 HashMap 和 Hashtable 的区分。答:HashMap 是轻量级的(线程担心全的,效率高的)集合,Hashtable 是重量级的(线程安全的,效率低的)集合。都属于 Map 接口的类,实现了将惟一键映射到特定的值上。HashM
14、ap 类没有分类或者排序。它答应一个null键和多个null值。Hashtable 类似于HashMap ,但是不答应null键和null值。它也比HashMap 慢,由于它是同步的。可编辑资料 - - - 欢迎下载精品名师归纳总结八、请问abstract class 和 interface 有什么区分?答:1) 接口没有任何的实现,而抽象类它可以有部分的实现也可以没有;2) 假如需要复用或者共享部分代码,应当用抽象类而不是接口;3) 继承无法解决类型的转换问题,接口就是为明白决这一问题而产生的Java 的单继承是接口产生的根本缘由 接口是一种抽象的第三方规范,跟对象没什么直接关系。九、请问软
15、件开发中的设计模式你会使用哪些?答:我熟识的设计模式有单例模式,DAO 模式, 模板方法, 工厂模式, 托付代理模式, MVC模式等。Singleton 模式主要作用是保证在Java 应用程序中,一个类Class 只有一个实例存在。Singleton 模式一般形式:定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类初始化时实例话, 通过一个 public 的 getInstance 方法猎取对它的引用 ,继而调用其中的方法。十、类的核心特性有哪些?类具有封装性、继承性和多态性。封装性:类的封装性为类的成员供应公有、缺省、 爱护和私有等多
16、级拜访权限,目的是隐匿类中的私有变量和类中方法的实现细节。继承性:类的继承性供应从已存在的类创建新类的机制,继承(inheritance )使一个新类自动拥有被继承类(父类)的全部成员。多态性:类的多态性供应类中方法执行的多样性,多态性有两种表现形式:重载和掩盖。十一、请问类与对象有什么区分?类类就是某一种事物的一般性的集合体,是相同或相像的各个事物共同特性的一种抽象。对象在面对对象概念中,对象(Object )是类的实例(instance)。对象与类的关系就像变量 与数据类型的关系一样。十二、写诞生产者消费者模型的实现十三、用软件工程和Java 来表达购物车(shopping cart)系统
17、实现十四、文件系统的几个类:FileInputStream 、FileOutputStream 、FileReader、FileWriter 的区分十五、请写出Java API 中最常用的五个包,并且各举两个类加以说明。十六、 请问你在 “电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收成是什么?十七、请说出几个常用的反常类答 : NullpointException ( 空 指 针 异 常 ) ClassNotFoundException (类找不到反常) ClassCastException (类型转换反常) IllegalArgumentException (非法
18、参数反常) ArithmeticException(算术反常) NumberFormatException (数据格式反常)可编辑资料 - - - 欢迎下载精品名师归纳总结IndexOutOfBoundsException (数组下标越界反常)IllegalStateException (非法语句反常) 十八、什么是进程和线程?两者的区分是什么?十九、请简要描述一下你做的 ShoppingCart 项目。二十、请问网络 7 层协议, tcp/ip4 层协议是什么? 二十一、 Java 面对对象的四大特点二十二、 public,private,protected , default 拜访权限(可
19、见性) 答:public :全局可见protected :继承体系结构之间可见default (或不写):同包可见private :本类可见。二十三、名词说明CRMCustomer Relationship Management,客户关系治理 ERPEnterprise Resource Planning,企业资源规划 OSSOperation Support System,运营支撑系统 BSSBusiness Support System,数据定义语言 BOSSBusiness Operation Support System,数据定义语言 OAOffice Automatization,办
20、公自动化 HTTP OOP SOA GUI DDLData Definition Language,数据定义语言DMLData Manipulation Language,数据操作语言 WYSIWYG所见即所得What You See is What You GetCMP CMT B2B C2C B2C IDE DOMClient/Server CMM可编辑资料 - - - 欢迎下载精品名师归纳总结ORM MIS MVCMVC是 Model View Controller的简写。 Model代表的是应用的业务规律(通过JavaBean, EJB 组件实现), View是应用的表示面(由JSP
21、页面产生), Controller是供应应用的处理过程掌握(一般是一个Servlet),通过这种设计模型把应用规律,处理过程和显示规律分成不同的组件实现。这些组件可以进行交互和重用。OLE CORBACORBA标准是公共对象恳求代理结构Common Object Request Broker Architecture,由对象治理组织ObjectManagement Group,缩写为OMG 标准化。它的组成是接口定义语言IDL,语言绑定 binding: 也译为联编 和答应应用程序间互操作的协议。其目的为:用不同的程序设计语言书写在不同的进程中运行为不同的操作系统开发。UMLUML ,标准建模
22、语言, 包含用例图 ,静态图 包括类图、 对象图和包图,行为图 ,交互图 次序图,合作图 ,实现图等。XML CMMI JRE J2EEJ2EE 是 Sun 公司提出的多层multi-diered, 分布式 distributed, 基于组件 component-base的企业级应用模型 enterpriese application model. 在这样的一个应用系统中, 可根据功能划分为不同的组件, 这些组件又可在不同运算机上, 并且处于相应的层次 tier 中。所属层次包括客户层 clietn tier 组件 ,web 层和组件 ,Business 层和组件 ,企业信息系统 EIS 层。
23、JDK AOP OOContainer W3C JMSDomain POJO JVM JNDI JTA SOAPSimple Object Access Protocol ,简洁对象拜访协议WSDL JDOJDO 是 Java 对象长久化的新的规范,为 Java Data Object 的简称 ,也是一个用于存取某种数据仓库中的对象的标准化API 。JDO 供应了透亮的对象储备,因此对开发人员来说,储备数据对象完全不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到JDO可编辑资料 - - - 欢迎下载精品名师归纳总结产品供应商身上,使开发人员解脱出来,从而集中时间和
24、精力在业务规律上。另外,JDO很敏捷,由于它可以在任何数据底层上运行。 JDBC 只是面对关系数据库( RDBMSJDO 更通用,供应到任何数据底层的储备功能,比如关系数据库、文件、 XML 以及对象数据库(ODBMS )等等,使得应用可移植性更强。TDD DAOIoCInversion of Control,掌握反转 RMIDNSInternet Domain Name System,因特网域名系统 URLURI二十四、数据库连接池的工作机制二十五、互联网供应哪些服务?二十六、请写出JSP 的几个隐含内置对象答: JSP 中隐含内置对象名称类型注释和范畴requestjavax.servle
25、t.http.HttpServletRequestrequest responsejavax.servlet.http.HttpServletResponseresponse pagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsession applicationjavax.servlet.ServletContextServletContextoutjavax.serv
26、let.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP 共有以下9 种基本内置组件(可与ASP 的 6 种内部组件相对应) :request用户端恳求,此恳求会包含来自GET/POST 恳求的参数response网页传回用户端的回应page JSP网页本身exception针对错误网页,未捕获的例外pageContext网页的属性是在这里治理session与恳求有关的会话期application servlet正在执行的内容out用来传送回应的输出 configServlet 的构架部件 二十
27、七、请你谈谈SSH 整合答: SSH:Struts(表示层) +Spring (业务层) +Hibernate (长久层) Struts:Struts 是一个表示层框架,主要作用是界面展现,接收恳求,分发恳求。可编辑资料 - - - 欢迎下载精品名师归纳总结在 MVC 框架中, Struts 属于 VC 层次, 负责界面表现, 负责 MVC 关系的分发。( View : 沿 用 JSP,HTTP ,Form ,Tag,Resourse 。Controller :ActionServlet ,struts-config.xml ,Action )Hibernate:Hibernate 是一个长久
28、层框架,它只负责与关系数据库的操作。Spring :Spring 是一个业务层框架,是一个整合的框架,能够很好的黏合表示层与长久层。二十八、应用服务器与Web Server 的区分二十九、 Java Servlet API 中 forward与 redirect 的区分答:前者仅是容器中掌握权的转向,在客户端浏览器的址栏中不会显示出转向后的的址。后者就是完全的跳转,浏览器将会得到跳转的的址,并重新发送恳求链接。这样,从浏览器的 的址栏中可以看到跳转后的链接的址。所以,前者更加高效,在前者可以满意需要时,尽量使用forward 方法,并且,这样也有助于隐匿实际的链接。在有些情形下,比如,需要跳转
29、到一个其它服务器上的资源,就必需使用sendRedirect方法。三十、写一个简洁的C/S 结构程序, Java的通信编程,编程题 或问答 ,用 JAVA SOCKET编程,读服务器几个字符,再写入本的显示?答:Server端程序 :package test; import .*; import java.io.*;public class Serverprivate ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out; public Servertryss=new
30、 ServerSocket10000; whiletruesocket = ss.accept;String RemoteIP = socket.getInetAddress.getHostAddress; String RemotePort = :+socket.getLocalPort; System.out.printlnA client come in.IP:+RemoteIP+RemotePort; in = new BufferedReadernewInputStreamReadersocket.getInputStream; String line = in.readLine;
31、System.out.printlnCleint send is : + line;out = new PrintWritersocket.getOutputStream,true;可编辑资料 - - - 欢迎下载精品名师归纳总结out.printlnYour Message Received.; out.close;in.close; socket.close;catch IOException eout.printlnwrong;public static void mainString argsnew Server;Client端程序 : package test; import jav
32、a.io.*; import .*;public class ClientSocket socket; BufferedReader in; PrintWriter out; public ClienttrySystem.out.printlnTry to Connect to 127.0.0.1:10000; socket = new Socket127.0.0.1,10000; System.out.printlnThe Server Connected.; System.out.printlnPlease enter some Character:; BufferedReader lin
33、e = new BufferedReadernewInputStreamReaderSystem.in;out = new PrintWritersocket.getOutputStream,true; out.printlnline.readLine;in = new BufferedReadernew InputStreamReadersocket.getInputStream; System.out.printlnin.readLine;out.close;in.close; socket.close;catchIOException e可编辑资料 - - - 欢迎下载精品名师归纳总结o
34、ut.printlnWrong;public static void mainString argsnew Client;九、请问软件开发中的设计模式你会使用哪些?答:我熟识的设计模式有单例模式,DAO 模式, 模板方法, 工厂模式, 托付代理模式, MVC模式等。Singleton 模式主要作用是保证在Java 应用程序中,一个类Class 只有一个实例存在。Singleton 模式一般形式:定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类初始化时实例话, 通过一个 public 的 getInstance 方法猎取对它的引用 ,继
35、而调用其中的方法。十、类的核心特性有哪些?类具有封装性、继承性和多态性。封装性:类的封装性为类的成员供应公有、缺省、 爱护和私有等多级拜访权限,目的是隐匿类中的私有变量和类中方法的实现细节。继承性:类的继承性供应从已存在的类创建新类的机制,继承(inheritance )使一个新类自动拥有被继承类(父类)的全部成员。多态性:类的多态性供应类中方法执行的多样性,多态性有两种表现形式:重载和掩盖。十一、请问类与对象有什么区分?类类就是某一种事物的一般性的集合体,是相同或相像的各个事物共同特性的一种抽象。对象在面对对象概念中,对象(Object )是类的实例( instance)。对象与类的关系就像
36、变量与数据类型的关系一样。十二、写诞生产者消费者模型的实现十三、用软件工程和Java 来表达购物车(shopping cart)系统实现可编辑资料 - - - 欢迎下载精品名师归纳总结十四、文件系统的几个类:FileInputStream 、FileOutputStream 、FileReader、FileWriter 的区分十五、请写出Java API 中最常用的五个包,并且各举两个类加以说明。十六、 请问你在 “电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收成是什么?十七、请说出几个常用的反常类答 : NullpointException ( 空 指 针 异 常
37、) ClassNotFoundException ( 类 找 不 到 异 常 ) ClassCastException ( 类 型 转 换 异 常 ) IllegalArgumentException ( 非 法 参 数 异 常 ) ArithmeticException(算术反常) NumberFormatException ( 数 据 格 式 异 常 ) IndexOutOfBoundsException (数组下标越界反常) IllegalStateException (非法语句反常)十八、什么是进程和线程?两者的区分是什么?十九、请简要描述一下你做的 ShoppingCart 项目。二
38、十、请问网络 7 层协议, tcp/ip4 层协议是什么? 二十一、 Java 面对对象的四大特点二十二、 public,private,protected , default 拜访权限(可见性) 答:public :全局可见protected :继承体系结构之间可见default (或不写):同包可见private :本类可见。二十三、名词说明CRMCustomer Relationship Management,客户关系治理 ERPEnterprise Resource Planning,企业资源规划 OSSOperation Support System,运营支撑系统 BSSBusine
39、ss Support System,数据定义语言 BOSSBusiness Operation Support System,数据定义语言 OAOffice Automatization,办公自动化 可编辑资料 - - - 欢迎下载精品名师归纳总结HTTP OOP SOA GUI DDLData Definition Language,数据定义语言DMLData Manipulation Language,数据操作语言 WYSIWYG所见即所得What You See is What You GetCMP CMT B2B C2C B2C IDE DOMClient/Server CMMORM
40、MIS MVCMVC 是 Model View Controller 的简写。 Model代表的是应用的业务规律(通过JavaBean,EJB 组件实现),View是应用的表示面(由JSP 页面产生), Controller是供应应用的处理过程掌握(一般是一个Servlet),通过这种设计模型把应用规律,处理过程和显示规律分成不同的组件实现。这些组件可以进行交互和重用。OLE CORBACORBA标准是公共对象恳求代理结构Common Object Request Broker Architecture,由对象治理组织Object Management Group ,缩写为OMG 标准化。它的
41、组成是接口定义语言IDL,语言绑定 binding: 也译为联编 和答应应用程序间互操作的协议。其目的为:用不同的程序设计语言书写在不同的进程中运行为不同的操作系统开发。UML可编辑资料 - - - 欢迎下载精品名师归纳总结UML ,标准建模语言, 包含用例图 ,静态图 包括类图、 对象图和包图,行为图 ,交互图 次序图,合作图 ,实现图等。XML CMMI JRE J2EEJ2EE 是 Sun 公司提出的多层multi-diered, 分布式 distributed, 基于组件 component-base的企业级应用模型 enterpriese application model. 在这样
42、的一个应用系统中, 可根据功能划分为不同的组件, 这些组件又可在不同运算机上, 并且处于相应的层次 tier 中。所属层次包括客户层 clietn tier 组件 ,web 层和组件 ,Business 层和组件 ,企业信息系统 EIS 层。JDK AOP OOContainer W3C JMSDomain POJO JVM JNDI JTA SOAPSimple Object Access Protocol ,简洁对象拜访协议WSDL JDOJDO 是 Java 对象长久化的新的规范,为 Java Data Object 的简称 ,也是一个用于存取某种数据仓库中的对象的标准化API 。JDO
43、 供应了透亮的对象储备,因此对开发人员来说,储备数据对象完全不需要额外的代码(如 JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品供应商身上,使开发人员解脱出来,从而集中时间和精力在业务规律上。另外,JDO 很敏捷,由于它可以在任何数据底层上运行。JDBC 只是面对关系数据库(RDBMSJDO更通用,供应到任何数据底层的储备功能,比如关系数据库、文件、XML以及对象数据库(ODBMS )等等,使得应用可移植性更强。TDD DAOIoCInversion of Control,掌握反转 可编辑资料 - - - 欢迎下载精品名师归纳总结RMI DNSInternet Domain Name System,因特网域名系统URL URI二十四、数据库连接池的工作机制二十五、互联网供应哪些服务?二十六、请写出JSP 的几个隐含内置对象答: JSP 中隐含内置对象名称类型注释和范畴requestjavax.servlet.http.HttpServletRequestrequest responsejavax.servlet.http.HttpServletResponseresponse pagejavax.lang.ObjectpageExceptionjava.lang.Throwablepage