日期:2014-05-19  浏览次数:20757 次

j2ee程序员面试题
1、 几种服务器的区别及何时应用?为什么?(如weblogic,Tomat等等)
Joss、tomcat、weblogic、websphere
Web服务器:tomcat主要作用发布web应用程序
企业服务器:主要发布企业级应用程序,打包程jar、ear、war
2、 使用Jms、socket的好处及它的用法?
Jms:
异步通信
Socket:
基于TCP、UDP的即时通信

3:谈谈你所了解的设计模式,说出去作用;
a、创建型模式
Singleton: 它是一种创建型的设计模式。解决的是实例化对象个数的问题,比如抽象工厂中的工厂、对象池等,其他创建型模式解决的都是new所带来的耦合关系。
Factory Method: 需要一个额外的工厂类来负责实例化“一边对象”。
Abstract factory: 创建一系列相互依赖的对象,并能在运行时改变系列。
b、结构型模式
Facade:注重简化接口,屏蔽各子系统的复杂性,提供更高层接口供客户访问。
Proxy:注重假借接口,通过增加间接代理,实现更多控制,屏蔽复杂性。
c、行为型模式
Observer:注重封装对象通知,支持通信对象的变化,实现对象状态改变,通知依赖它的对象并更新。
4、:tomcat5和tomcat6的区别。一个项目中,我们为什么要使用tomcat5或是tomcat6.
区别:
a、首先是目录的不同:Tomcat6.x在目录上最大的区别就是将 lib 包直接置于 HOME/lib 下,而tomcat 5.x 系列版本是分HOME/common,HOME/share,HOME/server 三个包存放的.
common目录中:存放Tomcat服务器和所有Web应用都能访问的JAR
share目录中: 存放所有web应用都能访问的,但tomcat不能访问的。
server目录中:存放Tomcat 服务器需要的但Web应用不能访问的JAR,另外该目录下webapps存放Tomcat 自带的APP-admin和manager两个应用。
b、bin文件夹下的启动文件不同了。
c、tomcat5.x基于Tomcat3.x,Tomcat4.x,遵循新的Servlet2.4,jsp2.0规范。他最大的特点是就是支持JDK5.0。tomcat5.x是个总结,改进版本,因为有了3.x,4.x作基础,加上使用JDK5.0使tomcat在性能上有了突飞猛进的发展,备受大家欢迎。
tomcat6.x是目前最新的版本。遵循新的Servlet2.5,jsp2.1规范。该版本增加了很多新特性。主要有:高级的IO功能:采用APR或NIO HTTP连接进行异步IO操作; 组件功能:可以使用ant-fextras.xml的方式为tomcat添加新的组件。

5:tomcat、weblogic的调优
a、禁用DNS查询
当web应用程序要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。
DNS查询需要占用网络,并且包括可能从很远的服务器或者不起作用的服务器上获取对应IP的过程,这样会耗费一定的时间。为了消除DNS对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLoopups参数值为”false”;
b、调整线程数
通过修改应用程序的连接器(connector)中的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。
6:你对java中的socket编程了解多少?
Socket是网络上运行的两个程序间双向通讯的一端,他既可以使接收请求,也可以是发送请求,利用它可以较方便地编写网络上数据的传递。
在java中,利用Socket方法,可以实现两台计算机之间的通讯。Socket可理解为客户端或服务器端的一个非凡的对象,这个对象有两个重要的方法,一个是getInputStream方法,另一个是getOutputStream方法。getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputStream方法得到的输入流实际上是从服务器端发出的数据流。getOutputStream方法得到一个输出流,客户端Socket对象上的getOutputStream方法返回的输出流就是将要发送到服务器端的数据流。(其实是一个缓冲区,暂时存储将要发送到服务器的数据)。

7:socket的连接方式,进行简单的说明
Socket client = new Socket(“服务器Ip”,服务器监听端口); 向服务器发送连接请求。
Socket(InetAddress address, int port): 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
Socket(String host, int port): 创建一个流套接字并将其连接到指定主机名上的指定端口号。
// Socket的实际工作由SocketImpl抽象类的实例执行。而具体实现是在SocketImpl抽象类的子类PlainSocketImpl的connect()中;

8:xml的解析方式?各有什么特点?项目中xml的数据怎么导入数据库中?
xml的解析方式:DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树型结构造成的,这种结构占用的内存较多,这是因为DOM必须在解析文件之前把整个文档都加载到内存中,适合对XML的随机访问。
SAX:不象DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文件结束,或者标签开头,标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件。
STAX:Streaming API for XML(这个不了解)

可以适用xml的解析方式解析xml数据成Object,再插入数据库中。
9:Sql2000和sql2005有什么区别?
a、 最直观的一点就是两者的界面有很明显的不同。sql2005的操作风格更接近于vs2005。
b、 sql2005比sql2000存储的数据量要大很多,sql2005支持数据库逻辑分区;
c、 sql2000与sql20005 jdbc连接不同:
sql2000 jdbc连接:url地址:jdbc:microsoft:sqlserver://:<1433>;
driver :com.microsoft.jdbc.sqlserver.SQLServerDriver;
sql2005 jdbc连接:url地址:jdbc:sqlserver://: [;databaseName=];
driver :com.microsoft.sqlserver.jdbc.SQLServerDriver;
d、 安全性能的提高:sql Server 2005包括了一些在安全性能上的改进,例如将用户和对象分开、数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
e、 sql2005还提供了一些新的特性,比如文件流支持(向第三代数据库迈出了可喜的一步)、T-Sql的改进(处理错误、递归查询功能、关系运算符PIVOT, APPLY, ROW_NUMBER和其他数据列排行功能,等等)、数据库镜像、透 明的客户端重定向、新的基于架构的安全模型、内建的Http服务器等…。
10:struts1.2和struts2.0的区别?如何控制两种框架中的单例模式?
struts1.2和struts2.0的对比
a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类
b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此每有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍然可以访问初始的Request和