java面试题 - 参考答案

上传人:第*** 文档编号:33577343 上传时间:2018-02-15 格式:DOC 页数:7 大小:147KB
返回 下载 相关 举报
java面试题 - 参考答案_第1页
第1页 / 共7页
java面试题 - 参考答案_第2页
第2页 / 共7页
java面试题 - 参考答案_第3页
第3页 / 共7页
java面试题 - 参考答案_第4页
第4页 / 共7页
java面试题 - 参考答案_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《java面试题 - 参考答案》由会员分享,可在线阅读,更多相关《java面试题 - 参考答案(7页珍藏版)》请在金锄头文库上搜索。

1、中国电子器材深圳有限公司Java 面试题姓名:_ 应聘职位:_1. 面向对象的特征有哪些方面?1).抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象包括两个方面,一是过程抽象,二是数据抽象。2).继承:继承是一种类的层次模型,允许和鼓励类的重用,它提供了一种明确表述共性的方法。客观事物既有共性,也有特性。如果只考虑事物的共性,而不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系。抽象机制是考虑事物的共性,继承机制是考虑事物的特性,这样才能完整地描述客观世界的层次关系。继承能使软件模块具有可重用性、独立性,缩短软件开发周期,提高软件开发效率

2、,同时使软件易于维护。3).封装:封装是把过程和数据包围起来,没必要直接去操作对象属性,只要调用这些方法就可以实现要完成的任务,这种现象称为封装,它把对象属性封装在一个对象内部,对象与外界打交道全部通过其自身的方法来实现,有效的把对象属性隐藏在对象内部。但是如果一味地强调封装,对象的任何属性都不允许外部直接存取,则要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。为了避免这一点,在程序的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。4).多态性:多态性是指在一个程序中同名的不同方法共存的情况(类继承中父类和子类中可

3、以有多个同名但不同意义或实现方式的属性和方法) ,允许不同类的对象对同一消息作出不同响应。2. String 和 StringBuffer 的区别?final, finally, finalize 的区别?1)、String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的 String 对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是 final 类,即不能被继承.StringBuffer:是一个可变对象,当对他进行修改的时候不会像 String 那样重新建立对象它只能通过构造函数来建立,StringBuffer sb = new St

4、ringBuffer();note:不能通过付值符号对他进行付值. sb = welcome to here!;/error对象被建立以后,在内存中就会分配内存空间,并初始保存一个 null.向 StringBuffer中国电子器材深圳有限公司中付值的时候可以通过它的 append 方法.sb.append(hello);字符串连接操作中 StringBuffer 的效率要比 String 高:String str = new String(welcome to );str += here;的处理步骤实际上是通过建立一个 StringBuffer,让侯调用 append(),最后再将 Stri

5、ngBuffer toSting();这样的话 String 的连接操作就比 StringBuffer 多出了一些附加操作,当然效率上要打折扣.并且由于 String 对象是不可变对象,每次操作 Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.2)、final修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract 的,又被声明为 final 的。将变量或方法声明为 final,可以保证它们在使用中不被改变。被声明为 final 的变量必须在声明时给定初

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

7、作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。3. JSP 有哪些内置对象和动作?它们的作用分别是什么?9 种内置对象及作用:1、request 对象:客户端的请求信息被封装在 request 对象中,通过它才能了解到客户的需求,然后做出响应。2、response 对象: response 对象包含了响应客户请求的有关信息。3、session 对象:session 对象指的是客户端与服务器的一次会话,从客户连到服务器的一个 WebApplication 开始,直到客户端与服务器断开连接为止。4、out 对象:是向客户端输出内容常用的对象5、page 对象:page

8、对象就是指向当前 JSP 页面本身,有点象类中的 this 指针。6、application 对象:application 对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后中国电子器材深圳有限公司连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了 application 对象的生命。7、exception 对象:exception 对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个 JSP 页面

9、要应用此对象,就必须把 isErrorPage 设为 true,否则无法编译。8、pageContext 对象:pageContext 对象提供了对 JSP 页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的 SESSION,也可以取本页面所在的 application 的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫 pageContext。9、config 对象: config 对象是在一个 Servlet 初始化时,JSP 引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个 Se

10、rvletContext 对象) 。jsp 动作及作用:jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个 JavaBean。jsp:setProperty:设置 JavaBean 的属性。jsp:getProperty:输出某个 JavaBean 的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。4. MVC 是什么,如何实现?在组合框架模式中,三者各自的特点是什么?MVC 是 ModelView Controller 的简写。Model 代表

11、的是应用的业务逻辑(通过JavaBean,EJB 组件实现) , View 是应用的表示面(由 JSP 页面产生) ,Controller 是提供应用的处理过程控制(一般是一个 Servlet) ,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。5. 什么是 Singleton,它的作用是什么,它有几种形式?请用代码写出一个 Singleton 类。Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在。一般 Singleton 模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为 priva

12、te 的,它有一个 static 的 private 的该类变量,在类初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用,继而调用其中的方法。public class Singleton private Singleton()/在自己内部定义自己一个实例,是不是很奇怪?/注意这是 private 只供内部调用中国电子器材深圳有限公司private static Singleton instance = new Singleton();/这里提供了一个供外部访问本 class 的静态方法,可以直接访问 public static Singleton getIn

13、stance() return instance; 第二种形式:public class Singleton private static Singleton instance = null;public static synchronized Singleton getInstance() /这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 /使用时生成实例,提高了效率!if (instance=null)instancenew Singleton();return instance; 其他形式:定义一个类,它的构造函数为 private 的,所有方法为 static 的。一般认为

14、第一种形式要更加安全些 6. 你熟悉的设计模式有那几种?用在什么场合?总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:中国电子器材深圳有限公司7. 请简述 ArrayList,Vector, LinkedList 的存储性能和特性,

15、HashMap 和 Hashtable 的区别?ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized 方法(线程安全) ,通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。中国电子器材深圳有限公司HashMap 是 Hashtable 的轻量级实现(非线

16、程安全的实现) ,他们都完成了 Map 接口,主要区别在于 HashMap 允许空( null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。 HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因为contains 方法容易让人引起误解。 Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现。 最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问Has

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

当前位置:首页 > 办公文档 > 解决方案

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