java面试题大全附答案

上传人:博****1 文档编号:455648784 上传时间:2023-03-23 格式:DOC 页数:212 大小:1.36MB
返回 下载 相关 举报
java面试题大全附答案_第1页
第1页 / 共212页
java面试题大全附答案_第2页
第2页 / 共212页
java面试题大全附答案_第3页
第3页 / 共212页
java面试题大全附答案_第4页
第4页 / 共212页
java面试题大全附答案_第5页
第5页 / 共212页
点击查看更多>>
资源描述

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

1、1.请说出ArrayList,Vector,LinkedList的存储性能和特性?解答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。2List、Map、Set三个接口存储元素时各有什么特点?解答:

2、1)List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。2)Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。3)Map接口:请注意,Map没有继承Collection接口,Map提供key到value的映射3、abstract class和interface有什么区别?解答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要

3、创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract?类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract?类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。新型多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,所有成员变量都是public static final的。一个类可以实现多个接口,当类实现接口时,必须实现接口的所有

4、方法。抽象类在Java语言中表示的是一种单继承的关系,对于interface?来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。;抽象类中可以定义自己的成员变量,也可以包含非抽象的方法,而在接口中只能有静态的常量,所有方法必须是抽象的;实现抽象类时可以只实现其中的部分方法,而要是实现一个接口的话就必须实现这个接口中的所有抽象方法。4.JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接5.forward 和redirect

5、的区别 解答:forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,并且从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedir

6、ect()方法。6.Java反射机制的作用? 解答:Java反射机制的作用是: 1)在运行时判断任意一个对象所属的类。 2)在运行时构造任意一个类的对象。 3)在运行时判断任意一个类所具有的成员变量和方法。 4)在运行时调用任意一个对象的方法7你是怎么理解java的泛型的? 解答: 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。 泛型是Java

7、 SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。1. 编写程序,完成文件复制功能 2. Servlet创建过程及生命周期Servlet 在容器中运行时,其实例的创建及销毁等是由容器进行控制。 Servlet 的创建有两种方法。 1). 客户端请求对应的 Servlet 时,创建 Servlet 实例;大部分Servlet 都是这种 Servlet 。 2). 通过在web.xml

8、中设置load-on-startup来创建servlet实例,这种实例在Web 应用启动时,立即创建Servlet 实例 Servlet 的运行都遵循如下生命周期: 1). 创建 Servlet 实例。 2). Web 容器调用 Servlet 的 init() 方法,对Servlet 进行初始化。 3). Servlet 初始化后,将一直存在于容器中,用于响应客户端请求。根据客户端的请求方式通过Servlet中service()方法去相应的doXXX()方法; 4). Web 容器销毁Servlet 时,调用 Servlet 的 destroy() 方法,通常在关闭Web容器之时销毁Serv

9、let。 3. 用sql语句分页: Mysql数据库: SELECTTOP 页大小* FROMtable1 WHEREidNOTIN (SELECTTOP页大小*(页数-1)idFROMtable1ORDERBYid) ORDERBYid Oracle数据库: 在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。截取ID的方法select * from emp a, (select empno,rownum as num from emp)b where a.empno=b.empno and b.num between 5 and 7;三层嵌套SELECT * F

10、ROM ( SELECT A.*, rownum r FROM ( SELECT * FROM emp ) A WHERE rownum 5;4. list.map.set的存储特点?List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,value可多值5. final,finally,finaliz的区别 final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声 明为final的。将变量或方法声明为final,可以保证它们在使用中

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

12、alize() 方法以整理系统资源或者执行其他清理工作 finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。6. arraylist和vector的区别?1).同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程不安全的,不是同步的2).数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半7. 说出ArrayList,Vector, LinkedList的存储性能和特性?1). ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦 LinkedLi

13、st 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始2). ArrayList和Vector都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加和插入操作,他们都允许直接用序号索引元素,但是插入数据元素涉及到元素移动等内存操作,所以索引数据快而插入数据慢.3). Vector使用了sychronized方法(线程安全),所以在性能上比ArrayList要差些.4). LinkedList使用双向链表方式存储数据,按序号索引数据需要前向或后向遍历数据,所以索引数据慢,是插入数据时只需要记录前后项即可,所以插

14、入的速度快.8. HASHMAP,HASHTABLE区别1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。9. .描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理Session用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上

15、一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当 Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择Cookie 用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性session工作原理(1)当有Session启动时,服务器生成一个唯一值,称为Session ID(好像是通过取进程ID的方式取得的)。(2)然后,服务器开辟一块内存,

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

当前位置:首页 > 医学/心理学 > 基础医学

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