j2ee面试题

试题(一)

COLLECTION中遗留类(HASHTABLEVECTOR)和现有类的区别?(同步)

答:就ArrayListVector主要从二方面来说
.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 
.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 
HashMapHashTable主要从三方面来说。 
.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMapJava 1.2引进的Map接口的一个实现 
.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 
.值:只有HashMap可以让你将空值作为一个表的条目的keyvalue

  4.EJBJAVA BEAN的区别?

: EJBJAVA BEANSUN的不同组件规范,EJB是在容器中运行的,分步式的,而JAVA BEAN主要是一种可利用的组件,主要在客户端UI表现上。Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如WebspereWebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。     

  5.JAVA中的多态与继承?(可出编程,选择题。)

:当一个类拥有另一个类的所有数据和操作时,就称这两个类之间存在着继承关系。被继承的类称为父类或超类,继承了父类的所有数据和操作的类就为子类。一个父类可以同时拥有多个子类,父类实际是所有子类的公共域和公共方法的集合;而每一个子类则是父类的特殊化,是对父类公共域和方法在功能、内涵方面的扩展和延伸。

Java语言的多态是指程序中同名的不同方法共存的情况。多态是面向对象程序设计的又一个特性。面向对象程序设计中,利用这种多态来提高程序的抽象性,突出Java语言的继承性。

6.抽象类与接口?

答:抽象类与接口都用于抽象,但是抽象类(JAVA)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)接口的好处是将实现与表现分离。 

  17。WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI解释。

答:Web Service描述语言WSDL 
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。 
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

19LINUX下线程,GDI类的解释。

答:LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 
GDI类为图像设备编程接口类库。

 20JAVA多线程编程。用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。

答:以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

public class ThreadTest1{

private int j;

public static void main(String args[]){

ThreadTest1 tt=new ThreadTest1();

Inc inc=tt.new Inc();

Dec dec=tt.new Dec();

for(int i=0;i<2;i++){

Thread t=new Thread(inc);

t.start();

t=new Thread(dec);

t.start();

}

}

private synchronized void inc(){

j++;

System.out.println(Thread.currentThread().getName()+"-inc:"+j);

}

private synchronized void dec(){

j--;

System.out.println(Thread.currentThread().getName()+"-dec:"+j);

}

class Inc implements Runnable{

public void run(){

for(int i=0;i<100;i++){

inc();

}

}

}

class Dec implements Runnable{

public void run(){

for(int i=0;i<100;i++){

dec();

}

}

}

}

 21JAVA的基本功: STRINGSTRINGBUFFER的区别。

答:STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffertoString()方法

 22STRUTS的应用(STRUTS架构)

答:Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能: 
.包含一个controller servlet,能将用户的请求发送到相应的Action对象。 
.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 
.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

三、servlet

   1、什么情况下调用doGet()doPost()

GET请求调用doGet()方法,POST请求调用doPost()方法

   2servletinit()方法和service()方法的区别

方法init()用于初始化servletservice()用于处理请求

   3servlet的生命周期

在服务器启动时,当servlet被客户首次请求或被配置好,这时由服务器加载servlet.;创建一个Servlet实例;服务器调用Servletinit()方法;服务器从包括在客户请求中的数据里构造一个ServletRequestHttpServletRequest对象,还构造一个ServletResponseHttpServletResponse对象来返回响应提供方法;服务器调用servletservice()方法;一旦Servlet容器检测到一个Servlet要被卸载,服务器会在所有Servletservice()线程完成之后(或在服务器规定时间后)调用Servletdestroy()方法。

   4、如何现实servlet的单线程模式

创建实现SingleThreadModel接口的Servlet

   5servlet的配置

Servlet配置包括Servlet的名字、Servlet初始化参数和Servlet上下文

   6、四种会话跟踪技术

隐藏字段、URL重写、CookieSession

四、EJB

   **1EJB容器提供的服务

主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。

   2EJB的角色和三个对象

EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者

三个对象是RemoteLocal)接口、HomeLocalHome)接口,Bean

   2EJB的几种类型

会话(SessionBean ,实体(EntityBean 消息驱动的(Message DrivenBean

会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种

实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种

   3bean 实例的生命周期

对于Stateless Session BeanEntity BeanMessage Driven Bean一般存在缓冲池管理,而对于Entity BeanStatefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Objectcreate)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。

   4、激活机制

Statefull Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRUNRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActiveejbPassivate方法。

   5remote接口和home接口主要作用

remote接口定义了业务方法,用于EJB客户端调用业务方法

home接口是EJB工厂用于创建和移除查找EJB实例

   6、客服端调用EJB对象的几个基本步骤

一、 设置JNDI服务工厂以及JNDI服务地址系统属性

二、 查找Home接口

三、 从Home接口调用Create方法创建Remote接口

四、 通过Remote接口调用其业务方法

Jsp方面
1、jsp有哪些动作?作用分别是什么?
答:JSP共有以下6种基本动作
   jsp:include:在页面被请求的时候引入一个文件。 
   jsp:useBean:寻找或者实例化一个JavaBean。 
   jsp:setProperty:设置JavaBean的属性。 
   jsp:getProperty:输出某个JavaBean的属性。 
   jsp:forward:把请求转到一个新的页面。 
   jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
2、jsp中两种跳转方式分别是什么?有什么区别?
答:有两种,分别为:
  <jsp:include page="included.jsp" flush="true">
  <jsp:forward page= "nextpage.jsp"/>
  前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。
Servlet方面
1、Servlet的基本架构
public class ServletName extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException  {
      }
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException  {
      }
}
Xml方面
1、你在项目中用到了xml技术的哪些方面?如何实现的?
答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。
EJB方面
1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?
答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....
2、EJB的基本架构
答:一个EJB包括三个部分:
  Remote Interface 接口的代码
  package Beans;
  import javax.ejb.EJBObject;
  import java.rmi.RemoteException;
  public interface Add extends EJBObject
  {
   //some method declare 
  }
  Home Interface 接口的代码
  package Beans;
  import java.rmi.RemoteException;
  import jaax.ejb.CreateException;
  import javax.ejb.EJBHome;
  public interface AddHome extends EJBHome
  {    //some method declare  }
  EJB类的代码
  package Beans;
  import java.rmi.RemoteException;
  import javax.ejb.SessionBean;
  import javx.ejb.SessionContext;
  public class AddBean Implements SessionBean
  {    //some method declare  }  
1、MVC的各个部分都有那些技术来实现?如何实现?
答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
2、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。
答:Web Service描述语言WSDL 
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
设计模式方面
1、开发中都用到了那些设计模式?用在什么场合?
答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。
2、UML方面
答:标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,
JavaScript方面
1、如何校验数字型?
var re=/^\d{1,8}$|\.\d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{   sign=-4;
   break;
}
else{   document.form1.all(i).value=parseFloat(str);}
CORBA方面
1、CORBA是什么?用途是什么? 
答:CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:用不同的程序设计语言书写;在不同的进程中运行 ;为不同的操作系统开发。
LINUX方面
1、LINUX下线程,GDI类的解释。
答:LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
GDI类为图像设备编程接口类库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值