您的位置:首页 > 职场人生

Java面试题大汇总

2007-10-25 18:38 423 查看
这些java的面试题是从网上收集来的,为了加深印象,所以我全部手敲来加深印象,毕竟java语言的东西比较多,知识点比较多,没有很长的时间来学习和思考,是不会理解和运用在自己的实际开发中的,我在许多公司面试的时候都有很多面试题和这里的一样,这些面试题的一些答案不全面,往往被面试的人的答案不是不对,但是去得到面试官的一阵阵的疑问,也许这些面试官不是搞技术的,或者不是什么技术行业的精英,我们就无奈的人倒霉吧.
下面开始写java面试题及答案:
j2EE基础问答:
1. 下面那些类是可以被继承的?
java.lang.Thread (true)
java.lang.Number (true)
java.lang.Double (false)
java.lang.Math (false)
java.lang.Void (false)
java.lang.Class (false)
java.lang.ClassLoader (true)
2. 接口和抽象类的区别?
1) 接口可以被多重实现(implements),实现而抽象类只能被单一继承(extends)..
(若要同时实现多个接口,就用逗号分隔,只要那个类不是被声明为final或者那个类定义为abstract的都能被继承.同时实现继承和实现的代码如:class A extends B implements C,D,E )
2) 接口只有定义,而抽象类可以有定义和实现.
3) 接口的字段定义默认为public static final ,抽象类的默认字段是friendly (本包可见).
3. Hashtable的原理, Hashtable和HashMap的区别?
1) Hashtable的原理:通过接点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.
2) Hashtable和HashMap的区别:
A) Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类.
B) Hashtable中的方法是同步的,而HashMap中的方法在默认情况下是非同步的,(即是说,在多线程应用程序中,不用专门的操作就安全地使用Hashtable了,而对于HashMap,则需要额外的同步机制,但HashMap的同步问题可通过Collections的一个静态方法得到,解决:
Map Collections synchronizedMap(Map m),这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的).
C) 在HashMap中,null可以作为键值,这样的键值只有一个,可以有一个或多个键所对应的值为null,当get()方法返回的值为null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null.因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个值,而应该用containsKey()方法来判断.
4. Collection和Collections的区别?
Collection是java.util包下的一个接口,它是各种集合结构的父接口.
Collections是java.util包下的一个类,它包含有各种有关集合操作的静态方法.
5.. froward和redirect的区别?
forward是servlet的一个内部调用,是在服务器端直接转到新的URL,对于浏览器是透明的。
redirect是重定向,有2次 request,第2次request将丢失第一次的attributes/parameters等. , sendRedirect()是向浏览器发送一个redirect通知,浏览器重定向到新的URL
前者浏览器的地址栏显示的是Servlet的URL,后者浏览器的地址栏显示的是新的URL.
因而当目标URL会自动刷新时,两者会造成一些差别。
6. 什么是web容器?
实现J2RR规范中web协议的应用,该协议定义了web程序的运行时的环境,包括:并发性,安全性,生命周期管理等.
7. 解释下面关于J2EE的名词:
1) JNDI:Java Naming & Directory Interface,Java命名目录服务,主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.
2) JMS::Java Message Service,Java消息服务,主要实现各个应用程序之间的通讯,包括点对点和广播.
3) JTA:Java Transaction API,Java事务服务,提供各种分布式事务服务,应用程序只需要调用其提供的接口即可.
4) JAF:Java Action FrameWork,Java安全认框架,提供一些安全控制方面的框架,让开发者通过各种部署和自定义实现自己的个性安全控制策略.
5) RMI:Remote Method Interface,运程方法调用.
8) EJB是基于哪些技术实现的?并说出SessionBean与EntityBean的区别,StatefulBean与StatelessBean的区别?
1) EIB包括Session Bean,Entity Bean,Message Driven Bean,基于JNDI,RMI,JTA等技术实现
2) SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库,调用其他EIB组件.EntityBean 被用来代表应用系统中用到的数据,.对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体.
SessionBean可以再细分为Stateful Session Bean和Stateless Session Bean,可以记录呼叫者的状态,.因此,通常来说,,一个使用者会有一个相对应的Stateful Session Bean的实体,Stateless Session Bean虽然也是逻辑组件,但它却不负责记录使用者状态,也就是说当使用者呼叫Stateless Session Bean的时候,EJB Container并不会找寻特定的Stateless Session Bean的实体来执行这个method,换言之,很可能数个使用者在执行某个Stateless Session Bean的methods时,会是同一个Bean的Instance在执行,从内存方面来看,Stateful Session Bean与Stateless Session Bean比较,Stateful Session Bean会消耗J2EE Server较多的内存,然而Stateful Session Bean的优势在于它可以维持使用者的状态.
9) XML的解析方法?
SAX,DOM,JDOM
(引申文章:来源于
http://blog.csdn.net/lphpc/archive/2004/11/10/176140.aspx
Java下XML编程接口比较:DOM SAX JDOM JAXP
一、DOM (文档对象模型)
为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;
使用场合:一旦解析了文档还需多次访问这些数据;
硬件资源充足(内存、CPU)
二、SAX
为解决DOM的问题,出现了SAX。
SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。
优点:不用事先调入整个文档,占用资源少;
SAX解析器代码比DOM解析器代码小,适于Applet,下载
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;
无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
使用场合:Applet;
只需XML文档的少量内容,很少回头访问;
机器内存少;
三、JDOM
为减少DOM、SAX的编码量,出现了JDOM;
优点:20-80原则,极大减少了代码量
使用场合:要实现的功能简单,如解析、创建等
Java程序
但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan
四、JAPX
为多个XML解析器提供了统一编程接口
更换解析器,不用更改代码
使用场合:若不用Jdom,一般建议使用JAPX,
10. 什么是WebService?
WebService就是为了使原来各孤立站点之间的信息能够相互通信,共享而提出的一种接口,WebService使用的是Internet上统一,开放的标准,如HTTP,XML,SOAP(简单对象访问协议)WSDL等,所以WebService可以在任何支持这些标准的环境(Windows,Linux)中使用.
注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通信协议.在此协议下,软件的组件或应用程序能够通过标准的HTTP协议进行通讯,它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够广泛的被用户访问.
优势:
1) 跨平台
2) SOAP是基于HTTP和XML这些业界标准的,得到了所有的重要公司的支持.
3) 由于使用了SOAP,数据是以ASCII文本的方式,而非二进制传输,调试很方便,并且由于这样,它的数据容易通过防火墙,不需要防火墙为了程序而单独开一个”漏洞”.
4) 此外,WebService实现的技术难度要比CORBA和DCOM小的多.
5) 要实现B2B集成,EDI比较完善和比较复杂,而用WebService则可以低成本的实现,小公司也可以用上.
6) 在C/S的程序中,WebService可以实现网页无整体刷新与服务器打交道并取数.
缺点:
1) WebService使用了XML对数据进行封装,会造成大量的数据要在网络上传输
2) WebService规范没有规定任何与实现相关的细节,包括对象模型,编程语言,这一点,它不如CORBA,.
11. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
1) 多线程有两种实现方法,分别是继承Thread类和实现Runnable接口.
2) 同步也有两种实现方法,分别为sychronized,wait与notify.
12. Jsp中动态include与静态include的区别?
1) 动态include是用jsp:include动作来实现
<jsp:include page=”include.jsp” flush=”true”/>
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数.
3) 静态include用include代码来实现,不会检查所含文件的变化,适用于包含静态页面
<%@ include file=”include.htm”%>
二. Java编程与程序的运行结果.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息