⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java面试题.txt

📁 JAVA美化原马 一个事例和一些最近学习心得 初级入门
💻 TXT
📖 第 1 页 / 共 5 页
字号:
org.w3c.dom.Element root = doc.createElement("老师"); 
org.w3c.dom.Element wang = doc.createElement("王"); 
org.w3c.dom.Element liu = doc.createElement("刘"); 
wang.appendChild(doc.createTextNode("我是王老师")); 
root.appendChild(wang); 
doc.appendChild(root); 
javax.xml.transform.Transformer transformer = 
javax.xml.transform.TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); 
transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes"); 

transformer.transform(new javax.xml.transform.dom.DOMSource(doc), 
new 
javax.xml.transform.stream.StreamResult(outFile)); 
} 
catch (Exception e) 
{ 
System.out.println (e.getMessage()); 
} 
} 
} 
4、编程用JAVA解析XML的方式. 
答:用SAX方式解析XML,XML文件如下: 
<?xml version="1.0" encoding="gb2312"?> 
<person> 
<name>王小明</name> 
<college>信息学院</college> 
<telephone>6258113</telephone> 
<notes>男,1955年生,博士,95年调入海南大学</notes> 
</person> 
事件回调类SAXHandler.java 
import java.io.*; 
import java.util.Hashtable; 
import org.xml.sax.*; 
public class SAXHandler extends Handlerbase 
{ 
private Hashtable table = new Hashtable(); 
private String currentElement = null; 
private String currentValue = null; 
public void setTable(Hashtable table) 
{ 
this.table = table; 
} 
public Hashtable getTable() 
{ 
return table; 
} 
public void startElement(String tag, AttributeList attrs) 
throws SAXException 
{ 
currentElement = tag; 
} 
public void characters(char[] ch, int start, int length) 
throws SAXException 
{ 
currentValue = new String(ch, start, length); 
} 
public void endElement(String name) throws SAXException 
{ 
if (currentElement.equals(name)) 
table.put(currentElement, currentValue); 
} 
} 
JSP内容显示源码,SaxXml.jsp: 
<HTML> 
<HEAD> 
<TITLE>剖析XML文件people.xml</TITLE> 
</HEAD> 
<BODY> 
<%@ page errorPage="ErrPage.jsp" 
contentType="text/html;charset=GB2312" %> 
<%@ page import="java.io.*" %> 
<%@ page import="java.util.Hashtable" %> 
<%@ page import="org.w3c.dom.*" %> 
<%@ page import="org.xml.sax.*" %> 
<%@ page import="javax.xml.parsers.SAXParserFactory" %> 
<%@ page import="javax.xml.parsers.SAXParser" %> 
<%@ page import="SAXHandler" %> 
<% 
File file = new File("c:\people.xml"); 
FileReader reader = new FileReader(file); 
Parser parser; 
SAXParserFactory spf = SAXParserFactory.newInstance(); 
SAXParser sp = spf.newSAXParser(); 
SAXHandler handler = new SAXHandler(); 
sp.parse(new InputSource(reader), handler); 
Hashtable hashTable = handler.getTable(); 
out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>"); 
out.println("<TR><TD>姓名</TD>" + "<TD>" + 
(String)hashTable.get(new String("name")) + "</TD></TR>"); 
out.println("<TR><TD>学院</TD>" + "<TD>" + 
(String)hashTable.get(new String("college"))+"</TD></TR>"); 
out.println("<TR><TD>电话</TD>" + "<TD>" + 
(String)hashTable.get(new String("telephone")) + "</TD></TR>"); 
out.println("<TR><TD>备注</TD>" + "<TD>" + 
(String)hashTable.get(new String("notes")) + "</TD></TR>"); 
out.println("</TABLE>"); 
%> 
</BODY> 
</HTML> 
EJB方面 
1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 
答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员
。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据
库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS..... 
2、EJB与JAVA BEAN的区别? 
答: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必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的
EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器
来访问真正的EJB组件。 
3、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 
} 
J2EE,MVC方面 
1、MVC的各个部分都有那些技术来实现?如何实现? 
答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件
实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般
是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件
可以进行交互和重用。 
2、应用服务器与WEB SERVER的区别? 
希望大家补上,谢谢 

3、J2EE是什么? 
答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业
级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件
,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组
件,web层和组件,Business层和组件,企业信息系统(EIS)层。 
4、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 
答:Web Service描述语言WSDL 
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。 
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注
册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发
现的访问协议的实现标准。 

5、BS与CS的联系与区别。 
希望大家补上,谢谢 
6、STRUTS的应用(如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属性、国际化的提
示和消息。 
设计模式方面 
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类为图像设备编程接口类库。 
 
1、概述struts,以及struts如何实现MVC架构的? 
答:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利
用面向对象设计、代码重用以及“编写一次、到处运行”的优点。Struts提供了一种创建Web应用程序的
框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。Struts采用jsp作为MVC的视图,由
ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的
每个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的JAVA类
以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是javabean,它是模型
的代表,主要封装数据和业务逻辑。 Struts的处理流程: 
l 控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。 
l 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,
控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。 
l 在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已
。还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误
信息的ActionErrors对象。 
l 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,
控制器通过该ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中
,如果系统中还有EJB,那么通过JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在
JavaBean中连接数据库,进行数据库相关的操作。 
2、概述MVC体系结构 
答:MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输
入的响应方式。 
在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的
变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的
信息以及选择处理输入信息的模型 
在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。 
3、多线程的优点 
答:可分两方面来答: 
l 相对于单线程而言 : 
可以响应多任务的并发操作。 
多线程取消了主循环和轮流检测机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中
一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。 
l 相对于进程而言:(可以答也可以不答) 
它所要求的开销比较小,转换成本较小。 
所有线程共享同一地址空间,相互协作。 
彼此之间通信很容易。 
4、EJB概述 
答:EJB是企业级的JavaBean,它提供了构建企业级业务逻辑的一种组件模型。 
EJB分为三种:Session Bean Entity Bean Message-Driven Bean 三种,其中Session Bean分为有状态和
无状态Session Bean两种,Entity Bean分为容器管理的Entity Bean ( CMP ) 和 Bean管理的 Entity 
Bean ( BMP )。每一个EJB由一个远程接口、一个本地接口和一个EJB容器实现组成,远程接口声明了提供
给EJB客户调用的各种应用方法,本地接口声明了创建新的EJB实例的create方法、寻找EJB实例的查找
(finder)方法以及删除EJB实例的remove方法。EJB容器提供了EJB的运行环境和生命周期的管理。 
5、用java访问Oracle数据库、取得记录并输出到界面 
答:…………………….. 
Class.forName(“oracle.jdbc.driver.OracleDriver”); 
Connection conn=DriverManager.getConnection( url , username , password ); 
Statement stmt=conn.createStatement(); 
String str=”select * from [table]”; 
ResultSet rs=stmt.executeQuery(str); 
While(rs.next()) 
{ 
…………………… 
} 
rs.close(); 
stmt.close(); 
conn.close(); 
6、概述java垃圾回收机制 
答:它的工作原理如下: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -