FAQ(JAVA基础二)整理

上传人:汽*** 文档编号:473451133 上传时间:2022-09-28 格式:DOC 页数:25 大小:76.51KB
返回 下载 相关 举报
FAQ(JAVA基础二)整理_第1页
第1页 / 共25页
FAQ(JAVA基础二)整理_第2页
第2页 / 共25页
FAQ(JAVA基础二)整理_第3页
第3页 / 共25页
FAQ(JAVA基础二)整理_第4页
第4页 / 共25页
FAQ(JAVA基础二)整理_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《FAQ(JAVA基础二)整理》由会员分享,可在线阅读,更多相关《FAQ(JAVA基础二)整理(25页珍藏版)》请在金锄头文库上搜索。

1、JAVA类型(二)1.java中会存在内存泄漏吗,请简单描述。答案:会。如:int i,i2; return (i-i2); /when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。2.java中实现多态的机制是什么?答案:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。3.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?答案:对于GC来说,当程序员创建对象时,GC就开始监控这个

2、对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是可达的,哪些对象是不可达的。当GC确定一些对象为不可达时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。4.String 和StringBuffer的区别?答案:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字

3、符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。5.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?答案:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”

4、了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。6.abstract class和interface有什么区别?答案:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方

5、法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换

6、,instanceof 运算符可以用来决定某对象的类是否实现了接口。7.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?答案:都不能。8.静态变量和实例变量的区别?答案:static i = 10; /常量class A a; a.i =10;/可变9.什么是java序列化,如何实现java序列化?答案:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化

7、的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。10.是否可以从一个static方法内部发出对非static方法的调用?答案:不可以,如果其中包含对象的method();不能保证对象初始化.11.写clone()

8、方法时,通常都有一行代码,是什么?答案:Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。12.在JAVA中,如何跳出当前的多重嵌套循环?答案:用break; return 方法。13.Java中的异常处理机制的简单原理和应用?答案:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩

9、展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。14.List、Map、Set三个接口,存取元素时,各有什么特点?答案:List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。15.J2EE是什么?答案:J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的

10、一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。16.UML方面 答案:标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。17.说出一些常用的类,包,接口,请各举5个答案:常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer常用的包:java.lang java.awt java

11、.io java.util java.sql常用的接口:Remote List Map Document NodeList18.sleep() 和 wait() ,yield()有什么区别? 答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。19.同步和异步有何异同

12、,在什么情况下分别使用他们?答案:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率.20.启动一个线程是用run()还是start()?答案:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。21.I/

13、O流中输入输出流理解?答案:I/O流分类:功能:,内容,方向处理对象流:ObjectOutputStream,ObjectInputStream序列化22.开发中都用到了那些设计模式?用在什么场合? 答案:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。23.jsp有哪些动作?作用分别是什么? 答案:JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。jsp

14、:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。24.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 答案:可以继承其他类或完成其他接口,在swing编程中常用此方式。25.应用服务器与WEB SERVER的区别?答

15、案:1、应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。2、应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常比应用服务器简单,如apache就是web服务器,Jboss 就是EJB应用服务器。应用服务器:Weblogic、Tomcat、Jboss;WEB SERVER:IIS、 Apache26.XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?答案: a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等 DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 STAX:Streaming API for XML (StAX)27.如何给weblogic指定

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

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号