Java面试125面试题和答案 (九)

2014-11-24 11:33:08 · 作者: · 浏览: 49
理。 用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个
catch子句来指定你想要捕捉的"异常"的类型。 throw语句用来明确地抛出一个"异常"。 throws用来标明一个成员函数可能抛出的各种"异常"。 Finally为确保一段代码不管发生什么"异常"都被执行一段代码。 可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就 放到堆 栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语 句。 97、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以。必须只有一个类名与文件名相同。 98、MVC的各个部分都有那些技术来实现 如何实现 MVC 是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实 现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这 种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重 用。 99、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法 stop()和suspend()方法为何不推荐使用? 有两种实现方法,分别是继承Thread类与实现Runnable接口 用synchronized关键字修饰同步方法 反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改 它们。 结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得 的锁 定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定 的 资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该 挂 起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。 100、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。 101、java中会存在内存泄漏吗,请简单描述。 会。如:int i,i2; return (i-i2); //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。 102、java中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中 的所有 对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。 程序 员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。 104、静态变量和实例变量的区别? static i = 10; //常量 class A a; a.i =10;//可变 105、什么是java序列化,如何实现java序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是 为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象 流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出 (即保存其状态),要恢复的话则用输入流。 106、是否可以从一个static方法内部发出对非static方法的调用? 不可以,如果其中包含对象的method();不能保证对象初始化. 107、写clone()方法时,通常都有一行代码,是什么? Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。 108、在JAVA中,如何跳出当前的多重嵌套循环? 用break; return 方法。 109、List、Map、Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。 110、J2EE是什么? J2EE 是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业 级应用模型 (enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不 同
计算机上,并且处于相应的层次(tier)中。所属层次包括客户 层(clietn tier)组件,web层和组件,Business层和组件,企业 信息系统(EIS)层。 111、UML方面 标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。 112、说出一些常用的类,包,接口,请各举5个 常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer 常用的包:java.lang java.awt java.io java.util java.sql 常用的接口:Remote List Map Document NodeList 113、开发中都用到了那些设计模式 用在什么场合 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重 复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。 114、jsp有哪些动作 作用分别是什么 JSP 共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个 JavaB