2020年度Java笔试题答案.docx

上传人:无*** 文档编号:64492116 上传时间:2022-11-29 格式:DOCX 页数:96 大小:52.37KB
返回 下载 相关 举报
2020年度Java笔试题答案.docx_第1页
第1页 / 共96页
2020年度Java笔试题答案.docx_第2页
第2页 / 共96页
点击查看更多>>
资源描述

《2020年度Java笔试题答案.docx》由会员分享,可在线阅读,更多相关《2020年度Java笔试题答案.docx(96页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2020年Java笔试题+答案Java笔试题答:Je22是Sun公司提出的多层(multi-diered), 分布式(distributed),基于组件(component-base) 的企业级应用模型(enterpriese application model) .在这样的个应用系统中,可按照功能划分为不同的组件,这些组件又可 在不同计算机上,并且处于相应的层次(tier)中。 所属层次包括客户层(clietn tier)组件,web层和 组件,Business层和组件,企业信息系统(EIS)层。9答:J2EE本身是个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是个框架,包括J

2、DBC、JNDI、RMI、 JMS、EJB、JTA 等技术。?如何实现?答:MVC 是 ModelViewController 的简写。 Model代表的是应用的业务逻辑(通过 JavaBean, EJB组件实现),View是应用的 表示面(由JSP页面产生),Controller是提供应用的处理过程控制(一般是个Servlet), 通过这种设计模型把应用逻辑,处理过程和显示 逻辑分成不同的组件实现。这些组件可以进行交 互和重用。(如STRUTS架构) 答:Struts 是采用 Java Servlet/JavaServer Pages 技术,开发 Web应用程序的开放源码的framework

3、 采用Struts能开发出基于 MVC(Model-View-Controller)设计模式 的应用 构架 Struts有如下的主要功能:servlet,能将用户的请求发送到相应的Action 对象。,并且在controller servlet中提供关联支持,帮 助开发员创建交互式表单应用。:XML处理、通过Java reflection APIs自动处理 JavaBeans属性、国际化的提示和消息。SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM 的解释。SOAP、UDDI,WSDL 解释。答:Web ServiceWeb Service是基于网络的、分布 式的模块化组件,

4、它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其 它兼容的组件进行互操作。JAXP(Java API for XML Parsing)定义 了 在 Java中使用DOM, SAX, XSLT的通用的接口。 这样在你的程序中你只要使用这些通用的接口, 当你需要改变具体的实现时候也不需要修改代码。JAXM(Java API for XML Messaging)是为 SOAP通信提供访问方法和传输机制的APIoWSDL是种XML格式,用于将网络服务描 述为组端点,这些端点对包含面向文档信息或 面向过程信息的消息进行操作。这种格式首先对 操作和消息进行抽象描述,然后将其绑

5、定到具体的网络协议和消息格式上以定义端点。相 关的具体端点即组合成为抽象端点(服务)。SOAP即简单对象访问协议(Simple ObjectAccess Protocol),它是用于交换XML编码信息 的轻量级协议。UDDI的目的是为电子商务建立标准;UDDI是 套基于 Web的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范,同时也 包含组使企业能将自身提供的WebService注册,以使别的企业可以发现的访问协 议的实现标准。答:有如下八个方面的不同:硬件环境不同:C/S 一般建立在专用的网络上,小范围里 的网络环境,局域网之间再通过专门服务器提 供连接和数据交换

6、服务.B/S建立在广域网之上的,不必是专门的 网络硬件环境,例与电话上网,租用设备.信息 自己管理.有比C/S更强的适应范围,一般只要 有操作系统和浏览器就行对安全要求不同C/S 一般面向相对固定的用户群,对信息 安全的控制能力很强.一般高度机密的信息系 统采用C/S结构适宜.可以通过B/S发布部分可 公开信息.B/S建立在广域网之上,对安全的控制能 相对弱,可能面向不可知的用户。(3)对程序架构不同C/S程序可以更加注重流程,可以对权限 多层次校验,对系统运行速度可以较少考虑.B/S对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展

7、的趋势, Exchange等,全面支持网络的构件搭建的系统,SUN和 IBM推的JavaBean构件技术等,使B/S更加成 熟.(4)软件重用不同C/S程序可以不可避免的整体性考虑,构 件的重用性不如在B/S要求下的构件的重用性 好.B/S对的多重结构,要求构件相对独立的功 能.,而不是做在墙上的石头桌子(5)系统维护不同C/S程序由于整体性,必须整体考察,处理 出现的问题以及系统升级.升级难.可能是再做 一个全新的系统B/S构件组成,方面构件个别的更换,实现系 统的无缝升级.(6 )处理问题不同C/S程序可以处理用户面固定,并且在相 同区域,安全要求高需求,与操作系统相关.应 该都是相同的系

8、统B/S建立在广域网上,面向不同的用户群, 分散地域,这是C/S无法作到的,与操作系统平 台关系最小.(7)用户接口不同C/S多是建立的Window平台上,表现方法 有限,对程序员普遍要求较高B/S建立在浏览器上,有更加丰富和生动 的表现方式与用户交流.并且大部分难度减低, 减低开发成本.(8)信息流不同C/S程序一般是典型的中央集权的机械式 处理,交互性相对低B/S信息流向可变化,B-B B-C B-G等信 息、流向的变化,更像交易中心。答:(Java Naming & Directory Interface) JAVA 命名目录服务。主要提供的功能是:提供个目 录系统,让其它各地的应用程序

9、在其上面留下自 己的索引,从而满足快速查找和 定位分布式应用程序的功能。答:(Java Message Service) JAVA 消息月艮务。主 要实现各个应用程序之间的通讯。包括点对点和 广播答:(Java Transaction API) JAVA 事务服务。提供各种分布式事务服务。应用程序只需调用其 提供的接口即可。?用在什么场合?答:每个模式都描述了一个在我们的环境中不断 出现的问题,然后描述了该问题的解决方案的核 心。通过这种方式,你可以无数次地使用那些已 有的解决方案,无需在重复相同的工作。主要用到了 MVC的设计模式。用来开发 JSP/Servlet或者J2EE的相关应用。简单

10、厂模 式等。11.、j2ee常用的设计模式?说明工厂模式。答:Java中的23种设计模式:Factory (厂模式),Builder(建造模式),Factory Method (工厂方法模式),Prototype (原始模型模式),Singleton (单例模 式), Facade (门面模式),Adapter (适配器模式),Bridge (桥梁模式),Composite (合成模式),Decorator (装饰模式),Flyweight (享元模式), Proxy (代理模式),Command (命令模式),Interpreter (解释器模式),Visitor (访问者模式),Itera

11、tor (迭代子模式),Mediator (调停者模式), Memento (备忘录模式),Observer (观察者模式),State (状态模式),Strategy (策略模式),Template Method (模板方法模式),Chain Of Responsibleity (责任链模式)工厂模式:厂模式是种经常被使用到的模 式,根据工厂模式实现的类可以根据提供的数据 生成一组类中某个类的实例,通常这组类有 一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不 同的操作。首先需要定义一个基类,该类的子类 通过不同的方法实现了基类中的方法。然后需要 定义个厂类,厂类可

12、以根据 条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑 到底返回的是哪个子类的实例。答:标准建模语言UMLo用例亂静态图(包括类 图、对象图和包图),行为图,交互图(顺序图,合作 图),实现图RMI指的是远程方法调用(Remote Method Invocation)它是种机制,可以让在某个Java 虚拟机上的对象调用另一个Java虚拟机中的 对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。调用这样个对象 时,其参数为“marshalled”并将其从本地虚拟 机发送到远程虚拟机(该远程虚拟机的参数为unmarshalled*)上。该方法终止时,将

13、编组来自远程机的结果并将结果发送到调用 方的虚拟机。如果方法调用导致抛出异常,则该 异常将指示给调用方。JAVA基础“public/private/protected/缺省的修饰符”的使用类?public :公共,均可访问private:私有的,.protected:.缺省,friendly :目前类,同一个包,都可以访问.作用域目前类同一 package子孙类其它 packagepublicqprotectedqXfriendlyqqXXprivateqXxxInner Class (匿名内部类)是否可以extends(继 承)其它类,是否可以implements(实 现)interface

14、(接 口)?匿名内部类是没有名字的内部类,不能继承其它 类,但个内部类可以作为个接口,由另个内 部类实现.、由于匿名内部类没有名字,所以它没有构造 函数。因为没有构造函数,所以它必须完全借用 父类的构造函数来实例化,换言之:匿名内部类 完全把创建对象的任务交给了父类 去完成。二、在匿名内部类里创建新的方法没有太大意 义,但它可以通过覆盖父类的方法达到神奇效 果,如上例所示。这是多态性的体现。三、因为匿名内部类没有名字,所以无法进行向 下的强制类型转换,持有对个匿名内部类对象 引用的变量类型一定是它的直接或间接父类类 型。new v类或接口,v类的主体,匿名类匿名类是不能有名称的类,所以没办法引

15、用它们。必须在创建时,作为new语句的一部分来 声明它们。这就要采用另种形式的new语句,如下所示:new v类或接口,v类的主体,这种形式的new语句声明一个新的匿名类,它 对个给定的类进行扩展,或者实现个给定的 接口。它还创建那个类的个新实例,并把它作 为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类 的主体。如果匿名类对另一个类进行扩展,它的主体可以 访问类的成员、覆盖它的方法等等,这和其它任 何标准的类都是样的。如果匿名类实现了一个 接口,它的主体必须实现接口的方法。注意匿名类的声明是在编译时进行的,实例化在 运行时进行。这意味着for循环中的个new语 句

16、会创建相同匿名类的几个实例,而不是创建几 个不同匿名类的个实例。从技术上说,匿名类可被视为非静态的内部类, 所以它们具有和方法内部声明的非静态内部类 样的权限和限制。如果要执行的任务需要一个对象,但却不值得创 建全新的对象(原因可能是所需的类过于简单, 或者是由于它只在个方法内部使用),匿名类 就显得非常有用。匿名类尤其适合在Swing应用程序中快速创建事件处理程序。exp:return new Contents() private int i = 11;public int value() return i; );这种奇怪的语法要表达的意思是:“创建从 Contents衍生出来的匿名类的一个

17、对象”。由 new表达式返回的句柄会自动上溯造型成一个 Contents句柄。匿名内部类的语法其实要表达的是:class MyContents extends Contents private int i = 11;public int value() return i; )return new MyContentsQ;若试图定义内部类,并想使用在匿名内部类外部定义的一个对象,则编译器要求外部对象必须是Hna!属性.public class Parcel9 public Destinationdest(final String dest, Hnal float price) return ne

18、w Destination() private int cost;/ Instance initialization for each object:cost = (price);if(cost 100)(Over budget!);private String label = dest;public String readLabel() return label; );)public static void main(String args) Parcel9 p = new Parcel9();Destination d = (Tanzania,);nested class 和 inner

19、class 的不同?nested class在C+中是嵌套类,inner,不需要一 个外部类对象;不能从个static内部类的个对象访问到个外 部类的对象.5&和&的区别&是位运算符,表示按位与运算;&是逻辑运算 符,表示逻辑与(and)collection是集合类的上级接口,继承与它的接口 主要是set和list其中list必须以特定的顺序容纳元素;而个set 不能包含重复的元素.映射(Map)一系列键值”,个包含自己值的 list,或者包含自己(键值)对的个!ist.均可构建自己的反复器.,排序,线程安全化等操作.public class SimpleCollection public s

20、tatic void main(String args) Collection c = new ArrayList();for(int i = 0; i char 或者 byte long,string 都 不能作用于swtich?为什么要有GC答:GC是垃圾收集的意思(Gabage Collection), 内存处理是编程人员容易出现问题的地方,忘记 或者错误的内存回收会导致程序或系统的不稳 定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动 回收内存的目的,Java语言没有提供释放已分 配内存的显示操作方法。f=?答:不正确。精度不准确,应该用强制类型转换, 如下

21、所示:float f=(float)FrameWork(包括如何写自己的数据结构)?答:Collection FrameWork 如下:Collection卜 ListI pLinkedList I pArrayList I -VectorI l-StackLSetMap pHashtable pHashMap 1-WeakHashMapCollection是最基本的集合接口,个Collection 代表组 Object ,即 Collection的元素 (Elements)Map提供key到value的映射.答:抽象类与接口都用于抽象,但是抽象类(JAVA 中)可以有自己的部分实现,而接口则

22、完全是 个标识(同时有多重继承的功能)Collection框架中实现比较要实现Comparable 接口和 Comparator 接口答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字 符串中的内容经常进行操作,尤其是内容要修改 时,那么使用StringBuffer,如果最后需要 String,那么使用 StringBuffer 的 toString。方法,Anally, Hnalize 的区另!答:final修饰符(关键字)如果个类被声明 为final,意味着它不能再派生出新的子类,不 能作为父类被继承。因此个类不能既被声明为 abstract的,又被声明为

23、final的将变量或方法声明为final,可以保证它们在 使用中不被改变。被声明为final的变量必须在 声明时给定初值,而在以后的引用中只能读取, 不可修改。被声明为final的方法也同样只能使用,不能重载finally一再异常处理时提供finally块来执行任 何清除操作。如果抛出个异常,那么相匹配的 catch子句就会执行,然后控制就会进入finally 块(如果有的话)finalize一方法名。Java技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之 前做必要的清理工作。这个方法是由垃圾收集器 在确定这个对象没有被引用时对这个对象调用的。它是在Object类中

24、定义的, 因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其它清理工作。 finalize()方法是在垃圾收集器删除对象之前对这个对象调用的答:主要有以下四方面:抽象就是忽略个主题中与目前目标无关的那 些方面,以便更充分地注意与目前目标有关的方 面。抽象并不打算了解全部问题,而只是选择其 中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。继承是种联结类的层次模型,并且允许和鼓励 类的重用,它提供了一种明确表述共性的方法。 对象的一个新类可以从现有的类中派生,这个过 程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而

25、 原始类称为新类的基类(父类)。派生类可以从 它的基类那里继承方法和实例变量,并且类可以 修改或增加新的方法使之更适合特 殊的需要。封装是把过程和数据包围起来,对数据的访问只 能通过已定义的界面。面向对象计算始于这个基 本概念,即现实世界可以被描绘成一系列完全自 治、封装的对象,这些对象通过个受保护的接口访问其它对象。4.多态性:多态性是指允许不同类的对象对同一消息作出 响应。多态性包括参数化多态性和包含多态性。 多态性语言具有灵活、抽象、行为共享、代码共 享的优势,很好的解决了应用程序函 数同名问题。答:基本数据类型包括byteint、char、long、float double boole

26、an 和 short,因此不可以继承这个类、不能修改这个类。为 了提高效率节省空间,我们应该用StringBuffer 类和!nteger有什么区别答:Java提供两种不同的类型:引用类型和原始 类型(或内置类型)。Int是java的原始数据类 型,Integer是java为int提供的封装类。Java 为每个原始类型提供了封装类。原始类型封装类,booleanBoolean,charCharacter,byteByte,shor tShort,intInteger,longLong,floatFloat,doubleDo uble引用类型和原始类型的行为完全不同,并且 它们具有不同的语 义。

27、引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪 种类型的数据结构存储,当引用类型和原始类型 用作某个类的实例数据时所指定的缺 省值。对象引用实例变量的缺省值为null,而原 始类型实例变量的缺省值与它们的类型有关.答:异常表示程序运行过程中可能出现的非正常 状态,运行时异常表示虚拟机的通常操作中可能 遇到的异常,是种常见运行错误。java编译器 要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被 捕获的运行时异常。,HashMap 和 Hashtable 的区另答:就ArrayList与Vector主要从二方面来说:Vector是线程安全的

28、,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的:当需要增长时,Vector默认增长为原来培,而 ArrayList却是原来的一半就HashMap与HashTable主要从三方面来说。:Hashtable是基于陈旧的Dictionary类的, HashMap 是 Java:Hashtable是线程安全的,也就是说是同步的, 而HashMap是线程序不安全的,不是同步的:只有HashMap可以让你将空值作为个表的 条目的key或value,Vector, LinkedList的存储性能和特性答:ArrayList和Vector都是使用数组方式存储 数据,此数组元素数大于实际存

29、储的数据以便增 加和插入元素,它们都允许直接按序号索引元 素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢, Vector由于使用了 synchronized方法(线程安 全),通常性能上较ArrayList差,而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只 需要记录本项的前后项即可,所以插入速度较快答:HashMap是Hashtable的轻量级实现(非线 程安全的实现),他们都完成了 Map接口,主要 区别在于HashMap允许空(null)键值(key), 由于非线程安全,效率上可能高于Hashtable Has

30、hMap允许将null作为一个entry的key或 者 value,而 Hashtable 不允许。HashMap 把 Hashtable 的 contains 方法去掉 了,改成 containsvalue 和 containsKey。因为 contains 方法容易让人引起误解。Hashtable 继承自 Dictionary 类,interface 的一 个实现。最大的不同是,Hashtable的方法是Synchronize 的,而HashMap不是,在多个线程访问 Hashtable时,不需要自己为它的方法实现同步, 而HashMap就必须为之提供外同步。Hashtable 和 Has

31、hMap 采用的 hash/rehash 算法 都大概样,所以性能不会有很大的差异。*答:栈是种线形集合,其添加和删除元素的操 作应在同一段完成。栈按照后进先出的方式进行 处理。堆是栈的一个组成元素答:当JAVA程序违反了 JAVA的语义规则时, JAVA虚拟机就会将发生的错误表示为个异 常。违反语义规则包括2种情况。种是JAVA 类库内置的语义检查。例如数组下标越界,会引发 IndexOutOfBoimdsException;访问 null 的对 象时会引发NullPointerException另种情况 就是JAVA允许程序员扩展这种语义检查,程序 员可以创建自己的异常,并自由选择在何时用

32、throw关键字引发异常。并考虑2种回收机制答:Java语言中一个显著的特点就是引入了垃圾 回收机制,使C+程序员最头疼的内存管理的问 题迎刃而解,它使得Java程序员在编写程序的 时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域“ 的概念,只有对象的引用有作用域。垃圾回 收可以有效的防止内存泄露,有效的使用可以使 用的内存。垃圾回收器通常是作为个单独的低级别的线程运行,不可预知的情况下 对内存堆中已经死亡的或者长时间没有使用的 对象进行清楚和回收,程序员不能实时的调用垃 圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记 垃圾回收,增量垃圾回收。?主要方法?答:最常用的集合类是List和Mapo List的具 体实现包括ArrayList和Vector,它们是可变 大小的列表,比较适合构建、存储和操作任何类 型对象的元素列表。List适用于按数值索引访问元素的情形。Map提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作键和值”),其 中每个键映射到个值。答:JVM中类的装载是由ClassLoader和它的子 类来实现的,Java ClassLoader是

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com