软件工程师面试题含复习资料.doc

上传人:z**** 文档编号:61141735 上传时间:2022-11-20 格式:DOC 页数:17 大小:54KB
返回 下载 相关 举报
软件工程师面试题含复习资料.doc_第1页
第1页 / 共17页
软件工程师面试题含复习资料.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《软件工程师面试题含复习资料.doc》由会员分享,可在线阅读,更多相关《软件工程师面试题含复习资料.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、优质文本一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用?答:MVC设计模式应用观察者模式的框架模式M: Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation)。V: View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C: Controller(Control layer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图MVC框架的一种实现模型模型二(Se

2、rvlet-centric):JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,根本上大多数的工程都是使用这种MVC的实现模式。StrutsMVC框架(Web application frameworks)Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。Struts提供了一些组件使用MVC开发应用程序:Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean

3、或EJB的形式提供View:Struts提供了action form创立form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创立交互式的以表单为根底的应用程序,应用程序资源文件保存了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action标准,还需要在struts-config.xml的特定配置文件中进行

4、配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。二、什么是WebService?答:WebService是一个SOA面向效劳的编程的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于 协议的网络应用间的交互。WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDLweb效劳定义语言/SOAP简单请求协议标准的。WebService=WSDL+SOAP+UDDIwebservice的注册 Soap是由Soap的part和0个

5、或多个附件组成,一般只有part,在part中有Envelope和Body。 Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。Web Service的优点 (1) 可以让异构的程序相互访问跨平台 (2) 松耦合 (3) 基于标准协议通用语言,允许其他程序访问Web Service的根本原理 (1) Service Provider采用WSDL描述效劳 (2) Service Provider 采用UDDI将效劳的描述文件发布到UDDI效劳器Register server (3) Service Requestor在UDDI效劳器上查询并 获取WSDL文件

6、 (4) Service requestor将请求绑定到SOAP,并访问相应的效劳。三、什么是中间件? 中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。中间件middleware是根底软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或效劳程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件

7、位于客户机效劳器的操作系统之上,管理计算资源和网络通信。分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。举例:1,RMIRemote Method Invocations, 远程调用2,Load Balancing(负载均衡,将访问负荷分散到各个效劳器中)3,Transparent Fail-over(透明的故障切换)4,Clustering(集群,用多个小的效劳器代替大型机5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)6,Transaction事务全局/局部全局事务分布式事务局部事务在同一数据库联接内的事务7,D

8、ynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统8,System Management(系统管理)9,Threading(多线程处理)10,Message-oriented Middleware面向消息的中间件异步的调用编程11,Component Life Cycle(组件的生命周期管理)12,Resource pooling资源池13,Security平安14,Caching缓存四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?答:(1) Presentation layer表示层 (1) 表示逻辑生成界面代码 (2) 接收请

9、求 (3) 处理业务层抛出的异常 (4) 负责规那么验证数据格式,数据非空等 (5) 流程控制(2) Service layer效劳层/业务层 (1) 封装业务逻辑处理,并且对外暴露接口 (2) 负责事务,平安等效劳(3) Persistence layer持久层 (1) 封装数据访问的逻辑,暴露接口 (2) 提供方便的数据访问的方案查询语言,API,映射机制等Domain layer域层 (1) 业务对象以及业务关系的表示 (2) 处理简单的业务逻辑 (3) 域层的对象可以穿越表示层,业务层,持久层软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。五、什么是OOP?O

10、OP相对于面向过程编程有哪些优点?OOP,Object-Oriented Programming,面向对象编程不同于面向过程编程:1OOP关注对象和角色,也就是事物的本质 1OOP把客观世界中的对象抽象成对应的类; 2通过类构造实例; 3通过依赖、继承、实现等形式建立对象间的通信关系2OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码3OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型六、谈谈Overload和Override的区别。 答: 方法的重写Overriding和重载Overloading是Java多态

11、性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,那么称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 七、谈谈HashMap和Hashtable的区别。答: HashMap是轻量级的线程不平安的,效率高的集合,Hashta

12、ble是重量级的线程平安的,效率低的集合。 都属于Map接口的类,实现了将惟一键映射到特定的值上。 HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。 八、请问abstract class和interface有什么区别?答: 1) 接口没有任何的实现,而抽象类它可以有局部的实现也可以没有; 2) 如果需要复用或者共享局部代码,应该用抽象类而不是接口; 3) 继承无法解决类型的转换问题,接口就是为了解决这一问题而产生的(Java的单继

13、承是接口产生的根本原因) 接口是一种抽象的第三方标准,跟对象没什么直接关系。九、请问软件开发中的设计模式你会使用哪些?答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 Singleton模式一般形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。 十、类的核心特性有哪些?类具有封装性、继承性和多态性。封装性:类

14、的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。继承性:类的继承性提供从已存在的类创立新类的机制,继承inheritance使一个新类自动拥有被继承类父类的全部成员。多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。十一、请问类与对象有什么区别?类类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。对象在面向对象概念中,对象Object是类的实例instance。对象与类的关系就像变量与数据类型的关系一样。十二、写出生产者消费者模型的实现十三、用软件工程和Java来表达购物车shopp

15、ing cart系统实现十四、文件系统的几个类:、的区别十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。十六、请问你在“电信运营支撑系统中遇到了哪些问题?你是怎么解决的?做这个工程你最大的收获是什么?十七、请说出几个常用的异常类答:NullpointException空指针异常 ClassNotFoundException类找不到异常 ClassCastException类型转换异常 IllegalArgumentException非法参数异常 ArithmeticException算术异常 NumberFormatException数据格式异常 IndexOutOfBo

16、undsException数组下标越界异常 IllegalStateException非法语句异常十八、什么是进程和线程?两者的区别是什么?十九、请简要描述一下你做的ShoppingCart工程。二十、请问网络7层协议,tcp/ip4 层协议是什么?二十一、Java面向对象的四大特点二十二、public,private,protected,default访问权限可见性答:public:全局可见 protected:继承体系结构之间可见 default或不写:同包可见 private:本类可见。二十三、名词解释CRM Customer Relationship Management, 客户关系管

17、理ERP Enterprise Resource Planning, 企业资源规划OSS Operation Support System, 运营支撑系统BSS Business Support System, 数据定义语言BOSS Business Operation Support System, 数据定义语言OA Office Automatization, 办公自动化 OOPSOAGUIDDL Data Definition Language, 数据定义语言DML Data Manipulation Language, 数据操作语言WYSIWYG 所见即所得 What You See

18、is What You GetCMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVC MVC是ModelViewController的简写。Model 代表的是应用的业务逻辑通过JavaBean,EJB组件实现, View 是应用的表示面由JSP页面产生,Controller 是提供应用的处理过程控制一般是一个Servlet,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。OLECORBA CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture

19、),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:用不同的程序设计语言书写 在不同的进程中运行 为不同的操作系统开发。UML UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图等。XMLCMMIJREJ2EEJ2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese

20、 application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAP Simple Object Access Protocol,简单对象访问协议WSDLJDO JDO是Java对象持久化的新的标准,为Java Data Object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提

21、供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码如JDBC API的使用。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库RDBMS)JDO更通用,提供到任何数据底层的存储功能,比方关系数据库、文件、XML以及对象数据库ODBMS等等,使得应用可移植性更强。TDDDAOIoC Inversion of Control, 控制反转RMIDNS Internet Domain Name System, 因特网域名系统URLURI二十四、数据库连

22、接池的工作机制二十五、互联网提供哪些效劳?二十六、请写出JSP的几个隐含内置对象答:JSP中隐含内置对象名称 类型 注释和范围request javax.servlet. . ServletRequest requestresponse javax.servlet. . ServletResponse responsepage javax.lang.Object pageException java.lang.Throwable pagepageContext javax.servlet.jsp.PageContext pagesession javax.servlet. . Session

23、sessionapplication javax.servlet.ServletContext ServletContextout javax.servlet.jsp.JspWriter OutputStreamconfig javax.servlet.ServletConfig ServletConfigJSP共有以下9种根本内置组件可与ASP的6种内部组件相对应: request 用户端请求,此请求会包含来自GET/POST请求的参数 response 网页传回用户端的回应 page JSP 网页本身 exception 针对错误网页,未捕捉的例外pageContext 网页的属性是在这里

24、管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config Servlet的构架部件 二十七、请你谈谈SSH整合答:SSH:Struts表示层+Spring业务层+Hibernate持久层Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。View:沿用JSP, ,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,ActionHibe

25、rnate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。Spring:Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。二十八、应用效劳器与Web Server的区别二十九、Java Servlet API中forward() 与redirect()的区别答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者那么是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际

26、的链接。在有些情况下,比方,需要跳转到一个其它效劳器上的资源,那么必须使用sendRedirect()方法。三十、写一个简单的C/S结构程序,Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读效劳器几个字符,再写入本地显示? 答:Server端程序: package test; import .*; import java.io.*; public class Server private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out;

27、public Server() try ss=new ServerSocket(10000); while(true) socket = ss.accept(); String RemoteIP = socket.getInetAddress().getHostAddress(); String RemotePort = :+socket.getLocalPort(); System.out.println(A client come in!IP:+RemoteIP+RemotePort); in = new BufferedReader(new InputStreamReader(socke

28、t.getInputStream(); String line = in.readLine(); System.out.println(Cleint send is : + line); out = new PrintWriter(socket.getOutputStream(),true); out.println(Your Message Received!); out.close(); in.close(); socket.close(); catch (IOException e) out.println(wrong); public static void main(String a

29、rgs) new Server(); ; Client端程序: package test; import java.io.*; import .*; public class Client Socket socket; BufferedReader in; PrintWriter out; public Client() try System.out.println(Try to Connect to 127.0.0.1:10000); socket = new Socket(127.0.0.1,10000); System.out.println(The Server Connected!)

30、; System.out.println(Please enter some Character:); BufferedReader line = new BufferedReader(new InputStreamReader(System.in); out = new PrintWriter(socket.getOutputStream(),true); out.println(line.readLine(); in = new BufferedReader(new InputStreamReader(socket.getInputStream(); System.out.println(

31、in.readLine(); out.close(); in.close(); socket.close(); catch(IOException e) out.println(Wrong); public static void main(String args) new Client(); ;九、请问软件开发中的设计模式你会使用哪些?答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 Singleton模式一般形式: 定义一个类,它的构造函数为private

32、的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。 十、类的核心特性有哪些?类具有封装性、继承性和多态性。封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。继承性:类的继承性提供从已存在的类创立新类的机制,继承inheritance使一个新类自动拥有被继承类父类的全部成员。多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。十一、请问类与对象有什么区别?类类就是某一种事物的一般性的集合体,是相同或相

33、似的各个事物共同特性的一种抽象。对象在面向对象概念中,对象Object是类的实例instance。对象与类的关系就像变量与数据类型的关系一样。十二、写出生产者消费者模型的实现十三、用软件工程和Java来表达购物车shopping cart系统实现十四、文件系统的几个类:、的区别十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。十六、请问你在“电信运营支撑系统中遇到了哪些问题?你是怎么解决的?做这个工程你最大的收获是什么?十七、请说出几个常用的异常类答:NullpointException空指针异常 ClassNotFoundException类找不到异常 ClassCast

34、Exception类型转换异常 IllegalArgumentException非法参数异常 ArithmeticException算术异常 NumberFormatException数据格式异常 IndexOutOfBoundsException数组下标越界异常 IllegalStateException非法语句异常十八、什么是进程和线程?两者的区别是什么?十九、请简要描述一下你做的ShoppingCart工程。二十、请问网络7层协议,tcp/ip4 层协议是什么?二十一、Java面向对象的四大特点二十二、public,private,protected,default访问权限可见性答:pu

35、blic:全局可见 protected:继承体系结构之间可见 default或不写:同包可见 private:本类可见。二十三、名词解释CRM Customer Relationship Management, 客户关系管理ERP Enterprise Resource Planning, 企业资源规划OSS Operation Support System, 运营支撑系统BSS Business Support System, 数据定义语言BOSS Business Operation Support System, 数据定义语言OA Office Automatization, 办公自动化

36、 OOPSOAGUIDDL Data Definition Language, 数据定义语言DML Data Manipulation Language, 数据操作语言WYSIWYG 所见即所得 What You See is What You GetCMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVC MVC是ModelViewController的简写。Model 代表的是应用的业务逻辑通过JavaBean,EJB组件实现, View 是应用的表示面由JSP页面产生,Controller 是提供应用的处理过程控制一般是一个Servlet,通过这种设计

37、模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。OLECORBA CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:用不同的程序设计语言书写 在不同的进程中运行 为不同的操作系统开发。UML UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,

38、合作图),实现图等。XMLCMMIJREJ2EEJ2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAP Simpl

39、e Object Access Protocol,简单对象访问协议WSDLJDO JDO是Java对象持久化的新的标准,为Java Data Object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码如JDBC API的使用。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库RDBMS)JDO更通用,提供到任何数据底层的存储功能,比方关系数据库、文件、XML以及对象数据库O

40、DBMS等等,使得应用可移植性更强。TDDDAOIoC Inversion of Control, 控制反转RMIDNS Internet Domain Name System, 因特网域名系统URLURI二十四、数据库连接池的工作机制二十五、互联网提供哪些效劳?二十六、请写出JSP的几个隐含内置对象答:JSP中隐含内置对象名称 类型 注释和范围request javax.servlet. . ServletRequest requestresponse javax.servlet. . ServletResponse responsepage javax.lang.Object pageEx

41、ception java.lang.Throwable pagepageContext javax.servlet.jsp.PageContext pagesession javax.servlet. . Session sessionapplication javax.servlet.ServletContext ServletContextout javax.servlet.jsp.JspWriter OutputStreamconfig javax.servlet.ServletConfig ServletConfigJSP共有以下9种根本内置组件可与ASP的6种内部组件相对应: req

42、uest 用户端请求,此请求会包含来自GET/POST请求的参数 response 网页传回用户端的回应 page JSP 网页本身 exception 针对错误网页,未捕捉的例外pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config Servlet的构架部件 二十七、请你谈谈SSH整合答:SSH:Struts表示层+Spring业务层+Hibernate持久层Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。View:沿用JSP, ,Form,Tag,Resourse ;Controller:ActionServlet,ActionHibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。Spring:Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。二十八、应用效劳器与Web Server的区别二十九、Java Servlet API中forward() 与redirect()的区别答:前者仅是容器中控制权的转向,在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁