`

Java笔试面试题

    博客分类:
  • J2EE
 
阅读更多

1. 抽象类和接口区别

   (1)接口只有定义无实现;抽象类可以有定义和实现。
   (2)一个类只能继承一个抽象类,却能实现多个接口。
   (3)接口字段定义默认为public static final,抽象类默认friendly(本包可见)

2. Hash table原理,以及与HashMap的区别
   简单来说是通过节点的关键码确定节点的存储位置,在内部数组中的索引号和关键字建立对应关系f,即给定键值K,根据哈希函数f,获得存储位置。类似Hashmap的Key--value

   哈希函数 f 的两个重要特点:
   [1] 哈希函数可以自定义, 只要使得整数 f(K) 的范围不超出哈希表内部存储数组的上下界即可.
   [2] K 的取法有任意种, 但 f(K) 只能固定在一个范围, 因此不同的关键字可能对应了相同的哈希值, 形成了冲突.

   总的来说,"直接定址"与"解决冲突"是哈希表的两大特点。

   区别:
   (1)HashMap是Hahstable的轻量级实现,它们都实现了Map接口。采用的hash/rehash算法大体相同,性能上差异不大。
   (2)HashMap允许空(null)键值,HashTable不允许。
   (3)HashMap是非线程安全的,HashTable是。HashTable的方法是Synchronize的,而HashMap不是,在多线程访问HashTable时,不需要自己为它的方法实现同步;而HashMap需要。
   (4)HashMap将HashTable的contains方法改为containsvalue和containskey。
   (5)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

3. forward和redirect区别
  (1)forward是服务器端请求资源,将资源发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,地址栏不会变。
   通俗来说,A访问B,B访问C,A-->B--> C,此时打开的是C的内容,但地址栏是B的地址。

   redirect是服务端根据逻辑,发送一个状态码告诉浏览器重新去请求另一个地址,地址栏URL改变。相当于客户端向服务器端发出两次request,同时接收两次response。
   通俗来说,A访问B,若想访问C,需由B返回给A一个参数,告诉A去访问C,过程是A-->B-->A-->C,地址栏是C的地址。2次访问指的是一次访问B,一次访问C。将会丢失第一次的Attributes/parameters.所以需要用session保存参数,而不能用setAttribute
 
   (2)forward是控制权的转移,而redirect是完全的跳转,所以forward更加高效。
   (3)forward只需一次request,而redirect需两次,所以forward可以在转发页面A和被转发到的页面B中共享数据,而redirect在A和C中无法共享数据,即丢失参数。
   (4)forward:一般用于用户登陆的时候,根据角色转发到相应的模块;redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

   forward使用例子

 <jsp:forward page="/servlet/login.jsp" />
 <jsp:forward page="/servlet/login.jsp">
 <jsp:param name="username" value="jsmith" />
 </jsp:forward>
 

4. 什么是Web容器(不太懂)

   实现J2EE规范中Web协议的应用,该协议定义了Web程序的运行时环境,包括并发性、安全性、生命周期等。如Java中的Tomcat容器,ASP中的IIS容器。

 

5. 解释关于J2EE的名词。(有必要深入学习)

   (1)JNDI: Java Naming and Directory Interface,Java命名和目录接口。向程序员提供一种通用的接口,以访问属于不同供应商的产品的命名和目录服务,与JDBC类似。提供一个目录服务,让其他各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

   (2)JMS:Java Message Service,Java消息服务,主要实现各个应用程序间的通讯,包括点对点和广播。

   (3)JTA:Java Transaction API,Java事务服务,提供各种分布式事务服务,应用程序只需调用其提供的接口即可。

   (4)JAF:Java Action Framework,Java安全认证框架,提供一些安全控制方面的框架,让开发者通过各种部署和自定义实现在即的个性安全控制策略。

   (5)RMI:Remote Method Interface,远程方法调用。

 

6. EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。

   EJB包括Session Bean、Entity Bean、 Message Driven Bean,基于JNDI、RMI、JAT技术。

   Session Bean完成服务器端业务,如访问数据库、调用其他EJB组件。非持久化对象,只实现运行在服务器端的业务逻辑。

   Entity Bean代表数据存储中维护的数据。持久化对象,代表存储在持久性存储器中的实体的对象视图。

   Session Bean分为Stateful Bean和Stateless Bean,均可将系统逻辑放在method中。

   Stateful可记录呼叫者状态,一个使用者有一个对应的Stateful session Bean实体。而Stateless不记录,可能数个使用者实行某个stateless session bean的方法时,共用一个实体。

   Stateful消耗J2EE server较多内存,却能维持使用者状态。

 

7. XML的解析方法

 

8. 什么是Web Service

 

 


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics