??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品人成网线在线播放va,亚洲А∨精品天堂在线,久久亚洲精品中文字幕三区http://www.tkk7.com/fisher/articles/102012.htmlFisherFisherMon, 05 Mar 2007 14:44:00 GMThttp://www.tkk7.com/fisher/articles/102012.htmlhttp://www.tkk7.com/fisher/comments/102012.htmlhttp://www.tkk7.com/fisher/articles/102012.html#Feedback0http://www.tkk7.com/fisher/comments/commentRss/102012.htmlhttp://www.tkk7.com/fisher/services/trackbacks/102012.htmlJAVA相关基础知识355?/p>

char型变量中能不能存贮一个中文汉?Z?
能够定义成ؓ一个中文的Q因为java中以unicode~码Q一个char?6个字节,所以放一个中文是没问题的
56、多U程有几U实现方?都是什?同步有几U实现方?都是什?
多线E有两种实现ҎQ分别是l承ThreadcM实现Runnable接口
同步的实现方面有两种Q分别是synchronized,wait与notify
57、JSP的内|对象及Ҏ?br />request表示HttpServletRequest对象。它包含了有x览器h的信息,q且提供了几个用于获取cookie, header, 和session数据的有用的Ҏ?
    response表示HttpServletResponse对象Qƈ提供了几个用于设|送回 览器的响应的方法(如cookies,头信息等Q?
    out对象是javax.jsp.JspWriter的一个实例,q提供了几个Ҏ使你能用于向览器回送输出结果?
    pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各U范围的名字I间、servlet相关的对象的APIQƈ且包装了通用的servlet相关功能的方法?
    session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信?
    applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信?
    config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数?
    page表示从该面产生的一个servlet实例
58、线E的基本概念、线E的基本状态以及状态之间的关系
U程指在E序执行q程中,能够执行E序代码的一个执行单位,每个E序臛_都有一个线E,也就是程序本w?br />Java中的U程有四U状态分别是Q运行、就l、挂赗结束?
59、JSP的常用指?br /><%@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
isErrorPage(是否能用Exception对象)QisELIgnored(是否忽略表达?
<%@include file="filename"%>
<%@taglib prefix="c"uri="http://......"%>
60、什么情况下调用doGet()和doPost()Q?br />Jsp面中的form标签里的method属性ؓget时调用doGet()Qؓpost时调用doPost()?
61、servlet的生命周?br />web容器加蝲servletQ生命周期开始。通过调用servlet的init()Ҏq行servlet的初始化。通过调用service()Ҏ实现Q根据请求的不同调用不同的do***()Ҏ。结束服务,web容器调用servlet的destroy()Ҏ?br />62、如何现实servlet的单U程模式
<%@ page isThreadSafe="false"%>
63、页面间对象传递的Ҏ
requestQsessionQapplicationQcookie{?br />64、JSP和Servlet有哪些相同点和不同点Q他们之间的联系是什么?
JSP是Servlet技术的扩展Q本质上是Servlet的简易方式,更强调应用的外表表达。JSP~译后是"cservlet"。Servlet和JSP最主要的不同点在于QServlet的应用逻辑是在Java文g中,q且完全从表C层中的HTML里分d来。而JSP的情冉|Java和HTML可以l合成一个扩展名?jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑?br />65、四U会话跟t技?br />会话作用域ServletsJSP 面描述
page否是代表与一个页面相关的对象和属性。一个页面由一个编译好?Java servlet c(可以带有M?include 指oQ但是没?include 动作Q表C。这既包?servlet 又包括被~译?servlet ?JSP 面
request是是代表?Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨多个页面,涉及多个 Web lgQ由?forward 指o?include 动作的关p)
session是是代表与用于某?Web 客户机的一个用户体验相关的对象和属性。一?Web 会话可以也经怼跨越多个客户?br />application是是代表与整?Web 应用E序相关的对象和属性。这实质上是跨越整个 Web 应用E序Q包括多个页面、请求和会话的一个全局作用?br />66、Request对象的主要方法:
setAttribute(String name,Object)Q设|名字ؓname的request的参数?br />getAttribute(String name)Q返回由name指定的属性?br />getAttributeNames()Q返回request对象所有属性的名字集合Q结果是一个枚丄实例
getCookies()Q返回客L的所有Cookie对象Q结果是一个Cookie数组
getCharacterEncoding()Q返回请求中的字W编码方?br />getContentLength()Q返回请求的Body的长?br />getHeader(String name)Q获得HTTP协议定义的文件头信息
getHeaders(String name)Q返回指定名字的request Header的所有|l果是一个枚丄实例
getHeaderNames()Q返回所以request Header的名字,l果是一个枚丄实例
getInputStream()Q返回请求的输入,用于获得h中的数据
getMethod()Q获得客L向服务器端传送数据的Ҏ
getParameter(String name)Q获得客L传送给服务器端的有name指定的参数?br />getParameterNames()Q获得客L传送给服务器端的所有参数的名字Q结果是一个枚丄实例
getParameterValues(String name)Q获得有name指定的参数的所有?br />getProtocol()Q获取客L向服务器端传送数据所依据的协议名U?br />getQueryString()Q获得查询字W串
getRequestURI()Q获取发求字W串的客L地址
getRemoteAddr()Q获取客L的IP地址
getRemoteHost()Q获取客L的名?br />getSession([Boolean create])Q返回和h相关Session
getServerName()Q获取服务器的名?br />getServletPath()Q获取客L所h的脚本文件的路径
getServerPort()Q获取服务器的端口号
removeAttribute(String name)Q删除请求中的一个属?br />67、J2EE是技术还是^台还是框Ӟ
    J2EE本n是一个标准,一个ؓ企业分布式应用的开发提供的标准q_?br />    J2EE也是一个框Ӟ包括JDBC、JNDI、RMI、JMS、EJB、JTA{技术?br />68、我们在web应用开发过E中l常遇到输出某种~码的字W,如iso8859-1{,如何输出一个某U编码的字符Ԍ
  Public String translate (String str) {
    String tempStr = "";
    try {
      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
      tempStr = tempStr.trim();
    }
    catch (Exception e) {
      System.err.println(e.getMessage());
    }
    return tempStr;
  }
69、简q逻辑操作(&,|,^)与条件操?&&,||)的区别?br />区别主要{两点:a.条g操作只能操作布尔型的,而逻辑操作不仅可以操作布尔?而且可以操作数值型
b.逻辑操作不会产生短\
70、XML文定义有几UŞ式?它们之间有何本质区别Q解析XML文有哪几种方式Q?
a: 两种形式 dtd  schemaQb: 本质区别:schema本n是xml的,可以被XML解析器解?q也是从DTD上发展schema的根本目?Qc:有DOM,SAX,STAX{?
    DOM:处理大型文g时其性能下降的非常厉実뀂这个问题是由DOM的树l构所造成的,q种l构占用的内存较多,而且DOM必须在解析文件之前把整个文装入内存,适合对XML的随?br />SAX:不现于DOM,SAX是事仉动型的XML解析方式。它序dXML文gQ不需要一ơ全部装载整个文件。当遇到像文件开_文档l束Q或者标{ּ头与标签l束Ӟ它会触发一个事Ӟ用户通过在其回调事g中写入处理代码来处理XML文gQ适合对XML的顺序访?
    STAX:Streaming API for XML (StAX)
71、简qsynchronized和java.util.concurrent.locks.Lock的异?Q?br />主要相同点:Lock能完成synchronized所实现的所有功?br />主要不同点:Lock有比synchronized更精的U程语义和更好的性能。synchronized会自动释NQ而Lock一定要求程序员手工释放Qƈ且必dfinally从句中释放?br />72、EJB的角色和三个对象
一个完整的ZEJB的分布式计算l构由六个角色组成,q六个角色可以由不同的开发商提供Q每个角色所作的工作必须遵@Sun公司提供的EJB规范Q以保证彼此之间的兼Ҏ。这六个角色分别是EJBlg开发者(Enterprise Bean ProviderQ?、应用组合者(Application AssemblerQ、部|者(DeployerQ、EJB 服务器提供者(EJB Server ProviderQ、EJB 容器提供者(EJB Container ProviderQ、系l管理员QSystem AdministratorQ?br />三个对象是RemoteQLocalQ接口、HomeQLocalHomeQ接口,Beanc?br />73、EJB容器提供的服?br />主要提供声明周期理、代码生、持l性管理、安全、事务管理、锁和ƈ发行理{服务?br />74、EJB规范规定EJB中禁止的操作有哪些?
    1.不能操作U程和线EAPI(U程API指非U程对象的方法如notify,wait{?Q?.不能操作awtQ?.不能实现服务器功能,4.不能寚w态属生存取,5.不能使用IO操作直接存取文gpȝQ?.不能加蝲本地?Q?.不能this作ؓ变量和返回,8.不能循环调用?br />75、remote接口和home接口主要作用
remote接口定义了业务方法,用于EJB客户端调用业务方法?br />home接口是EJB工厂用于创徏和移除查找EJB实例
76、bean 实例的生命周?br />对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池理Q而对于Entity Bean和Statefull Session Bean存在Cache理Q通常包含创徏实例Q设|上下文、创建EJB ObjectQcreateQ、业务方法调用、remove{过E,对于存在~冲池管理的BeanQ在create之后实例q不从内存清除,而是采用~冲池调度机制不断重用实例,而对于存在Cache理的Bean则通过ȀzdLzL制保持Bean的状态ƈ限制内存中实例数量?br />77、EJB的激zL?br />以Stateful Session Bean ZQ其Cache大小军_了内存中可以同时存在的Bean实例的数量,ҎMRU或NRU法Q实例在ȀzdLzȝ态之间迁U,ȀzL制是当客L调用某个EJB实例业务ҎӞ如果对应EJB Object发现自己没有l定对应的Bean实例则从其去ȀzBean存储中(通过序列化机制存储实例)回复Q激z)此实例。状态变q前会调用对应的ejbActive和ejbPassivateҎ?br />78、EJB的几U类?br />会话QSessionQBean Q实体(EntityQBean 消息驱动的(Message DrivenQBean
会话Bean又可分ؓ有状态(StatefulQ和无状态(StatelessQ两U?br />实体Bean可分为Bean理的持l性(BMPQ和容器理的持l性(CMPQ两U?br />79、客服端调用EJB对象的几个基本步?br />讄JNDI服务工厂以及JNDI服务地址pȝ属性,查找Home接口Q从Home接口调用CreateҎ创徏Remote接口Q通过Remote接口调用其业务方法?br />80、如何给weblogic指定大小的内?
在启动Weblogic的脚本中Q位于所在Domian对应服务器目录下的startServerNameQ,增加set MEM_ARGS=-Xms32m -Xmx200mQ可以调整最内存ؓ32MQ最?00M
81、如何设定的weblogic的热启动模式(开发模?与品发布模?
可以在管理控制台中修改对应服务器的启动模式ؓ开发或产品模式之一。或者修Ҏ务的启动文g或者commenv文gQ增加set PRODUCTION_MODE=true?br />82、如何启动时不需输入用户名与密码?
修改服务启动文gQ增?WLS_USER和WLS_PWV也可以在boot.properties文g中增加加密过的用户名和密?
83、在weblogic理制台中对一个应用域(或者说是一个网?Domain)q行jms及ejb或连接池{相关信息进行配|后,实际保存在什么文件中?
保存在此Domain的config.xml文g中,它是服务器的核心配置文g?br />84、说说weblogic中一个Domain的缺省目录结?比如要将一个简单的helloWorld.jsp攑օ何目录下,然的在浏览器上就可打入http://L:端口?/helloword.jsp可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办?
Domain目录\服务器目录\applicationsQ将应用目录攑֜此目录下可以作为应用访问,如果是Web应用Q应用目录需要满Web应用目录要求Qjsp文g可以直接攑֜应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,讄服务器的~省应用可以实现在览器上无需输入应用名?br />85、在weblogic中发布ejb需涉及到哪些配|文?br />不同cd的EJB涉及的配|文件不同,都涉及到的配|文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP实体Bean一般还需要weblogic-cmp-rdbms-jar.xml
86、如何在weblogic中进行ssl配置与客L的认证配|或说说j2ee(标准)q行ssl的配|?br />~省安装中用DemoIdentity.jks和DemoTrust.jks  KeyStore实现SSLQ需要配|服务器使用Enable SSLQ配|其端口Q在产品模式下需要从CA获取U有密钥和数字证书,创徏identity和trust keystoreQ装载获得的密钥和数字证书。可以配|此SSLq接是单向还是双向的?br />87、如何查看在weblogic中已l发布的EJB?
可以使用理控制収ͼ在它的Deployment中可以查看所有已发布的EJB
88、CORBA是什?用途是什?
CORBA 标准是公共对象请求代理结?Common Object Request Broker Architecture)Q由对象理l织 (Object Management GroupQ羃写ؓ OMG)标准化。它的组成是接口定义语言(IDL), 语言l定(binding:也译~?和允许应用程序间互操作的协议?其目的ؓQ用不同的程序设计语a书写在不同的q程中运行,Z同的操作pȝ开发?br />89、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看?br />  Session Facade PatternQ用SessionBean讉KEntityBean
Message Facade PatternQ实现异步调?br />EJB Command PatternQ用Command JavaBeans取代SessionBeanQ实现轻量讉K
Data Transfer Object FactoryQ通过DTO Factory化EntityBean数据提供Ҏ?br />Generic Attribute AccessQ通过AttibuteAccess接口化EntityBean数据提供Ҏ?br />Business InterfaceQ通过q程Q本圎ͼ接口和Beancd现相同接口规范业务逻辑一致?br />QJQ架构的设计好坏直接媄响系l的性能、可扩展性、可l护性、组件可重用性及开发效率。项目越复杂Q项目队伍越庞大则越能体现良好设计的重要性?br />90、说说在weblogic中开发消息Bean时的persistent与non-persisten的差?br />persistent方式的MDB可以保证消息传递的可靠?也就是如果EJB容器出现问题而JMS服务器依然会消息在此MDB可用的时候发送过来,而nonQpersistent方式的消息将被丢弃?br />



Fisher 2007-03-05 22:44 发表评论
]]>
JAVA相关基础知识 6http://www.tkk7.com/fisher/articles/102013.htmlFisherFisherMon, 05 Mar 2007 14:44:00 GMThttp://www.tkk7.com/fisher/articles/102013.htmlhttp://www.tkk7.com/fisher/comments/102013.htmlhttp://www.tkk7.com/fisher/articles/102013.html#Feedback0http://www.tkk7.com/fisher/comments/commentRss/102013.htmlhttp://www.tkk7.com/fisher/services/trackbacks/102013.htmlJAVA相关基础知识 
JAVA相关基础知识
1、面向对象的特征有哪些方面 ?
1.抽象Q?br />抽象是忽略一个主题中与当前目标无关的那些斚wQ以便更充分地注意与当前目标有关的方面。抽象ƈ不打了解全部问题,而只是选择其中的一部分Q暂时不用部分细节。抽象包括两个方面,一是过E抽象,二是数据抽象?br />2.l承Q?br />l承是一U联l类的层ơ模型,q且允许和鼓q的重用,它提供了一U明表q共性的Ҏ。对象的一个新cd以从现有的类中派生,q个q程UCؓcȝѝ新cȝ承了原始cȝҎ,新类UCؓ原始cȝzc(子类Q,而原始类UCؓ新类的基c(父类Q。派生类可以从它的基c那里承方法和实例变量Qƈ且类可以修改或增加新的方法之更适合Ҏ的需要?br />3.装Q?br />装是把q程和数据包围v来,Ҏ据的讉K只能通过已定义的界面。面向对象计始于这个基本概念,即现实世界可以被描绘成一pd完全自治、封装的对象Q这些对象通过一个受保护的接口访问其他对象?br />4. 多态性:
多态性是指允怸同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语ah灉|、抽象、行为共享、代码共享的优势Q很好的解决了应用程序函数同名问题?br />2、String是最基本的数据类型吗?
基本数据cd包括byte、int、char、long、float、double、boolean和short?br />java.lang.StringcLfinalcd的,因此不可以承这个类、不能修改这个类。ؓ了提高效率节省空_我们应该用StringBufferc?br />3、int ?Integer 有什么区?br />Java 提供两种不同的类型:引用cd和原始类型(或内|类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了装cR?br />原始cd装c?br />booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用cd和原始类型的行ؓ完全不同Qƈ且它们具有不同的语义。引用类型和原始cdh不同的特征和用法Q它们包括:大小和速度问题Q这U类型以哪种cd的数据结构存储,当引用类型和原始cd用作某个cȝ实例数据时所指定的缺省倹{对象引用实例变量的~省gؓ nullQ而原始类型实例变量的~省g它们的类型有兟?br />4、String 和StringBuffer的区?br />JAVAq_提供了两个类QString和StringBufferQ它们可以储存和操作字符Ԍ卛_含多个字W的字符数据。这个StringcL供了数g可改变的字符丌Ӏ而这个StringBuffercL供的字符串进行修攏V当你知道字W数据要改变的时候你可以用StringBuffer。典型地Q你可以使用StringBuffers来动态构造字W数据?br />5、运行时异常与一般异常有何异同?
异常表示E序q行q程中可能出现的非正常状态,q行时异常表C拟机的通常操作中可能遇到的异常Q是一U常见运行错误。java~译器要求方法必d明抛出可能发生的非运行时异常Q但是ƈ不要求必d明抛出未被捕Lq行时异常?br />6、说出Servlet的生命周期,q说出Servlet和CGI的区别?br />Servlet被服务器实例化后Q容器运行其initҎQ请求到达时q行其serviceҎQserviceҎ自动zNq行与请求对应的doXXXҎQdoGetQdoPostQ等Q当服务器决定将实例销毁的时候调用其destroyҎ?br />与cgi的区别在于servlet处于服务器进E中Q它通过多线E方式运行其serviceҎQ一个实例可以服务于多个hQƈ且其实例一般不会销毁,而CGIҎ个请求都产生新的q程Q服务完成后销毁,所以效率上低于servlet?br />7、说出ArrayList,Vector, LinkedList的存储性能和特?br />ArrayList和Vector都是使用数组方式存储数据Q此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素Q但是插入元素要涉及数组元素Ud{内存操作,所以烦引数据快而插入数据慢QVector׃使用了synchronizedҎQ线E安全)Q通常性能上较ArrayList差,而LinkedList使用双向链表实现存储Q按序号索引数据需要进行前向或后向遍历Q但是插入数据时只需要记录本的前后即可,所以插入速度较快?br />8、EJB是基于哪些技术实现的Qƈ说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别?br />    EJB包括Session Bean、Entity Bean、Message Driven BeanQ基于JNDI、RMI、JAT{技术实现?br />SessionBean在J2EE应用E序中被用来完成一些服务器端的业务操作Q例如访问数据库、调用其他EJBlg。EntityBean被用来代表应用系l中用到的数据?br />对于客户机,SessionBean是一U非持久性对象,它实现某些在服务器上q行的业务逻辑?br />对于客户机,EntityBean是一U持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用E序实现的实体?br />Session Bean q可以再l分?Stateful Session Bean ?Stateless Session Bean Q这两种?Session Bean都可以将pȝ逻辑攑֜ method之中执行Q不同的?Stateful Session Bean 可以记录呼叫者的状态,因此通常来说Q一个用者会有一个相对应?Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑lgQ但是他却不负责记录使用者状态,也就是说当用者呼?Stateless Session Bean 的时候,EJB Container q不会找ȝ定的 Stateless Session Bean 的实体来执行q个 method。换a之,很可能数个用者在执行某个 Stateless Session Bean ?methods Ӟ会是同一?Bean ?Instance 在执行。从内存斚w来看Q?Stateful Session Bean ?Stateless Session Bean 比较Q?Stateful Session Bean 会消?J2EE Server 较多的内存,然?Stateful Session Bean 的优势却在于他可以维持用者的状态?br />9、Collection ?Collections的区别?
  Collection是集合类的上U接口,l承与他的接口主要有Set 和List.
Collections是针寚w合类的一个帮助类Q他提供一pd静态方法实现对各种集合的搜索、排序、线E安全化{操作?br />10?amp;?amp;&的区别?
    &是位q算W,表示按位与运,&&是逻辑q算W,表示逻辑与(andQ?br />11、HashMap和Hashtable的区别?
    HashMap是Hashtable的轻量实现Q非U程安全的实玎ͼQ他们都完成了Map接口Q主要区别在于HashMap允许I(nullQ键|keyQ?׃非线E安全,效率上可能高于Hashtable?br />HashMap允许null作ؓ一个entry的key或者valueQ而Hashtable不允许?br />HashMap把Hashtable的containsҎL了,Ҏcontainsvalue和containsKey。因为containsҎҎ让h引v误解?
Hashtablel承自Dictionaryc,而HashMap是Java1.2引进的Map interface的一个实现?br />最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是Q在多个U程讉KHashtableӞ不需要自׃ؓ它的Ҏ实现同步Q而HashMap 必Mؓ之提供外同步?
Hashtable和HashMap采用的hash/rehash法都大概一P所以性能不会有很大的差异?br />12、final, finally, finalize的区别?
  final 用于声明属性,Ҏ和类Q分别表C属性不可变Q方法不可覆盖,cM可ѝ?br />finally是异常处理语句结构的一部分Q表CL执行?br />finalize是Objectcȝ一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回Ӟ例如关闭文g{?br />13、sleep() ?wait() 有什么区?
    sleep是线E类QThreadQ的ҎQ导致此U程暂停执行指定旉Q给执行Zl其他线E,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁?br />wait是ObjectcȝҎQ对此对象调用waitҎD本线E放弃对象锁Q进入等待此对象的等待锁定池Q只有针Ҏ对象发出notifyҎQ或notifyAllQ后本线E才q入对象锁定池准备获得对象锁q入q行状态?br />14、Overload和Override的区别。Overloaded的方法是否可以改变返回值的cd?
Ҏ的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现。如果在子类中定义某Ҏ与其父类有相同的名称和参敎ͼ我们说该Ҏ被重?(Overriding)。子cȝ对象使用q个ҎӞ调用子cM的定义,对它而言Q父cM的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参C数或有不同的参数cdQ则UCؓҎ的重?Overloading)。Overloaded的方法是可以改变q回值的cd?br />15、error和exception有什么区?
error 表示恢复不是不可能但很困隄情况下的一U严重问题。比如说内存溢出。不可能指望E序能处理这L情况?br />    exception 表示一U设计或实现问题。也是_它表C如果程序运行正常,从不会发生的情况?/p>

16、同步和异步有何异同Q在什么情况下分别使用他们QD例说明?br />如果数据在U程间共享。例如正在写的数据以后可能被另一个线E读刎ͼ或者正在读的数据可能已l被另一个线E写q了Q那么这些数据就是共享数据,必须q行同步存取?br />当应用程序在对象上调用了一个需要花费很长时间来执行的方法,q且不希望让E序{待Ҏ的返回时Q就应该使用异步~程Q在很多情况下采用异步途径往往更有效率?br />17、abstract class和interface有什么区?
声明Ҏ的存在而不d现它的类被叫做抽象类Qabstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ该类声明ҎQ但不能在该cM实现该类的情c不能创建abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ。取而代之,在子cM实现该方法。知道其行ؓ的其它类可以在类中实现这些方法?br />接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了该实现类不能从接口定义中l承行ؓ。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ。然后,它可以在实现了该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现了接口?br />18、heap和stack有什么区别?br />栈是一U线形集合,其添加和删除元素的操作应在同一D完成。栈按照后进先出的方式进行处理?br />堆是栈的一个组成元?br />19、forward 和redirect的区?br />forward是服务器h资源Q服务器直接讉K目标地址的URLQ把那个URL的响应内容读取过来,然后把这些内容再发给览器,览器根本不知道服务器发送的内容是从哪儿来的Q所以它的地址栏中q是原来的地址?br />    redirect是服务端根据逻辑,发送一个状态码,告诉览器重新去h那个地址Q一般来说浏览器会用刚才h的所有参数重新请求,所以session,request参数都可以获取?br />20、EJB与JAVA BEAN的区别?
Java Bean 是可复用的组Ӟ对Java Beanq没有严格的规范Q理ZԌM一个Javac都可以是一个Bean。但通常情况下,׃Java Bean是被容器所创徏Q如TomcatQ的Q所以Java Bean应具有一个无参的构造器Q另外,通常Java Beanq要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微YCOM模型中的本地q程内COMlgQ它是不能被跨进E访问的。Enterprise Java Bean 相当于DCOMQ即分布式组件。它是基于Java的远E方法调用(RMIQ技术的Q所以EJB可以被远E访问(跨进E、跨计算机)。但EJB必须被布|在诸如Webspere、WebLogicq样的容器中QEJB客户从不直接讉K真正的EJBlgQ而是通过其容器访问。EJB容器是EJBlg的代理,EJBlg由容器所创徏和管理。客户通过容器来访问真正的EJBlg?br />21、Static Nested Class ?Inner Class的不同?
    Static Nested Class是被声明为静态(staticQ的内部c,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部cd例化后才能实例化?br />22、JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它L会检查所含文件中的变化,适合用于包含动态页面,q且可以带参数?br />静态INCLUDE用include伪码实现,定不会检查所含文件的变化Q适用于包含静态页?lt;%@ include file="included.htm" %>
23、什么时候用assert?
    assertion(断言)在Y件开发中是一U常用的调试方式Q很多开发语a中都支持q种机制。在实现中,assertion是在程序中的一条语句,它对一个boolean表达式进行检查,一个正程序必M证这个boolean表达式的gؓtrueQ如果该gؓfalseQ说明程序已l处于不正确的状态下Q系l将l出警告或退出。一般来_assertion用于保证E序最基本、关键的正确性。assertion查通常在开发和试时开启。ؓ了提高性能Q在软g发布后,assertion查通常是关闭的?br />24、GC是什? Z么要有GC?
  GC是垃圾收集的意思(Gabage CollectionQ?内存处理是编Eh员容易出现问题的地方Q忘记或者错误的内存回收会导致程序或pȝ的不E_甚至崩溃QJava提供的GC功能可以自动监测对象是否过作用域从而达到自动回收内存的目的QJava语言没有提供释放已分配内存的昄操作Ҏ?
25、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    short s1 = 1; s1 = s1 + 1; Qs1+1q算l果是int型,需要强制{换类型)
short s1 = 1; s1 += 1;Q可以正编译)
26、Math.round(11.5){於多少? Math.round(-11.5){於多少?
    Math.round(11.5)==12
Math.round(-11.5)==-11
roundҎq回与参数最接近的长整数Q参数加1/2后求其floor.
27、String s = new String("xyz");创徏了几个String Object?
    两个

 



Fisher 2007-03-05 22:44 发表评论
]]>
JAVA相关基础知识3http://www.tkk7.com/fisher/articles/102011.htmlFisherFisherMon, 05 Mar 2007 14:43:00 GMThttp://www.tkk7.com/fisher/articles/102011.htmlhttp://www.tkk7.com/fisher/comments/102011.htmlhttp://www.tkk7.com/fisher/articles/102011.html#Feedback0http://www.tkk7.com/fisher/comments/commentRss/102011.htmlhttp://www.tkk7.com/fisher/services/trackbacks/102011.htmlJAVA相关基础知识491?/p>

Servlet执行时一般实现哪几个ҎQ?br />public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
92、j2ee常用的设计模式?说明工厂模式?br />    Java中的23U设计模式:
FactoryQ工厂模式)Q    ?BuilderQ徏造模式)Q     ?Factory MethodQ工厂方法模式)Q?br />PrototypeQ原始模型模式)QSingletonQ单例模式)Q  ?FacadeQ门面模式)Q?br />AdapterQ适配器模式)Q  ?BridgeQ桥梁模式)Q      ?CompositeQ合成模式)Q?br />DecoratorQ装饰模式)Q  ?FlyweightQn元模式)Q   ?ProxyQ代理模式)Q?br />CommandQ命令模式)Q    ?InterpreterQ解释器模式Q, VisitorQ访问者模式)Q?br />IteratorQP代子模式Q,   MediatorQ调停者模式)Q  ?MementoQ备忘录模式Q,
ObserverQ观察者模式)Q ?StateQ状态模式)Q       ?StrategyQ策略模式)Q?br />Template MethodQ模板方法模式)Q?Chain Of ResponsibleityQ责任链模式Q?br />工厂模式Q工厂模式是一U经常被使用到的模式Q根据工厂模式实现的cd以根据提供的数据生成一l类中某一个类的实例,通常q一l类有一个公q抽象父类q且实现了相同的ҎQ但是这些方法针对不同的数据q行了不同的操作。首先需要定义一个基c,该类的子c通过不同的方法实C基类中的Ҏ。然后需要定义一个工厂类Q工厂类可以Ҏ条g生成不同的子cd例。当得到子类的实例后Q开发h员可以调用基cM的方法而不必考虑到底q回的是哪一个子cȝ实例?br />93、EJB需直接实现它的业务接口或Home接口吗,Lq理由?br />q程接口和Home接口不需要直接实玎ͼ他们的实C码是由服务器产生的,E序q行中对应实现类会作为对应接口类型的实例被用?br />94、排序都有哪几种ҎQ请列D。用JAVA实现一个快速排序?br />    排序的方法有Q插入排序(直接插入排序、希排序)Q交换排序(冒排序、快速排序)Q选择排序Q直接选择排序、堆排序Q,归ƈ排序Q分配排序(排序、基数排序)
快速排序的伪代码?br />/ /使用快速排序方法对a[ 0 :n- 1 ]排序
从a[ 0 :n- 1 ]中选择一个元素作为m i d d l eQ该元素为支?br />把余下的元素分割ZDleft 和r i g h tQ得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支?br />递归C用快速排序方法对left q行排序
递归C用快速排序方法对right q行排序
所得结果ؓl e f t + m i d d l e + r i g h t
95、请对以下在J2EE中常用的名词q行解释(或简单描q?
web容器Q给处于其中的应用程序组ӞJSPQSERVLETQ提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必x其它pȝ问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE{。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器?br />EJB容器QEnterprise java bean 容器。更h行业领域特色。他提供l运行在其中的组件EJB各种理功能。只要满J2EE规范的EJB攑օ该容器,马上׃被容器进行高效率的管理。ƈ且可以通过现成的接口来获得pȝU别的服务。例如邮件服务、事务管理?br />JNDIQ(Java Naming & Directory InterfaceQJAVA命名目录服务。主要提供的功能是:提供一个目录系l,让其它各地的应用E序在其上面留下自己的烦引,从而满_速查扑֒定位分布式应用程序的功能?br />JMSQ(Java Message ServiceQJAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播?br />JTAQ(Java Transaction APIQJAVA事务服务。提供各U分布式事务服务。应用程序只需调用其提供的接口卛_?br />JAFQ(Java Action FrameWorkQJAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部v和自定义实现自己的个性安全控制策略?br />RMI/IIOP:QRemote Method Invocation /internet对象h中介协议Q他们主要用于通过q程调用服务。例如,q程有一台计机上运行一个程序,它提供股分析服务,我们可以在本地计机上实现对其直接调用。当然这是要通过一定的规范才能在异构的pȝ之间q行通信。RMI是JAVAҎ的?br />96、JAVA语言如何q行异常处理Q关键字Qthrows,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java通过面向对象的方法进行异常处理,把各U不同的异常q行分类Qƈ提供了良好的接口。在Java中,每个异常都是一个对象,它是ThrowablecL其它子类的实例。当一个方法出现异常后便抛Z个异常对象,该对象中包含有异怿息,调用q个对象的方法可以捕获到q个异常q进行处理。Java的异常处理是通过5个关键词来实现的Qtry、catch、throw、throws和finally。一般情况下是用try来执行一D늨序,如果出现异常Q系l会抛出QthrowsQ一个异常,q时候你可以通过它的cd来捕捉(catchQ它Q或最后(finallyQ由~省处理器来处理?br />用try来指定一块预防所?异常"的程序。紧跟在tryE序后面Q应包含一个catch子句来指定你惌捕捉?异常"的类型?br />throw语句用来明确地抛Z?异常"?br />throws用来标明一个成员函数可能抛出的各种"异常"?br />Finally为确保一D代码不发生什?异常"都被执行一D代码?br />可以在一个成员函数调用的外面写一个try语句Q在q个成员函数内部写另一个try语句保护其他代码。每当遇C个try语句Q?异常"的框架就攑ֈ堆栈上面Q直到所有的try语句都完成。如果下一U的try语句没有ҎU?异常"q行处理Q堆栈就会展开Q直到遇到有处理q种"异常"的try语句?br />97、一?.java"源文件中是否可以包括多个c(不是内部c)Q有什么限Ӟ
可以。必d有一个类名与文g名相同?br />98、MVC的各个部分都有那些技术来实现?如何实现?
MVC是ModelQViewQController的简写?Model" 代表的是应用的业务逻辑Q通过JavaBeanQEJBlg实现Q, "View" 是应用的表示面(由JSP面产生Q,"Controller" 是提供应用的处理q程控制Q一般是一个ServletQ,通过q种设计模型把应用逻辑Q处理过E和昄逻辑分成不同的组件实现。这些组件可以进行交互和重用?br />99、java中有几种Ҏ可以实现一个线E?用什么关键字修饰同步Ҏ? stop()和suspend()ҎZ不推荐用?
有两U实现方法,分别是承ThreadcM实现Runnable接口
用synchronized关键字修饰同步方?br />反对使用stop()Q是因ؓ它不安全。它会解除由U程获取的所有锁定,而且如果对象处于一U不q诏状态,那么其他U程能在那种状态下查和修改它们。结果很难检查出真正的问题所在。suspend()ҎҎ发生死锁。调用suspend()的时候,目标U程会停下来Q但却仍然持有在q之前获得的锁定。此Ӟ其他MU程都不能访问锁定的资源Q除非被"挂v"的线E恢复运行。对MU程来说Q如果它们想恢复目标U程Q同时又试图使用M一个锁定的资源Q就会造成死锁。所以不应该使用suspend()Q而应在自qThreadcM|入一个标志,指出U程应该zdq是挂v。若标志指出U程应该挂vQ便用wait()命其q入{待状态。若标志指出U程应当恢复Q则用一个notify()重新启动U程?br />100、java中有几种cd的流QJDK为每U类型的提供了一些抽象类以供l承Q请说出他们分别是哪些类Q?br />字节,字符。字节流l承于InputStream \ OutputStreamQ字W流l承于InputStreamReader \ OutputStreamWriter。在java.io包中q有许多其他的流Q主要是Z提高性能和用方ѝ?br />101、java中会存在内存泄漏吗,L单描q?br />会。如Qint i,i2;  return (i-i2);   //when i够大的正?i2够大的负数。结果会造成溢位Q导致错误?br />102、java中实现多态的机制是什么?
Ҏ的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现?br />103、垃圑֛收器的基本原理是什么?垃圾回收器可以马上回收内存吗Q有什么办法主动通知虚拟行垃圑֛Ӟ
对于GC来说Q当E序员创建对象时QGC开始监控这个对象的地址、大以及用情c通常QGC采用有向囄方式记录和管理堆(heap)中的所有对象。通过q种方式定哪些对象?可达?Q哪些对象是"不可辄"。当GC定一些对象ؓ"不可?ӞGC有责Q回收q些内存I间。可以。程序员可以手动执行System.gc()Q通知GCq行Q但是Java语言规范q不保证GC一定会执行?br />104、静态变量和实例变量的区别?
static i = 10; //帔R
   class A a;  a.i =10;//可变
105、什么是java序列化,如何实现java序列化?
序列化就是一U用来处理对象流的机Ӟ所谓对象流也就是将对象的内容进行流化。可以对化后的对象q行d操作Q也可将化后的对象传输于网l之间。序列化是ؓ了解军_对对象流q行d操作时所引发的问题?br />序列化的实现Q将需要被序列化的cd现Serializable接口Q该接口没有需要实现的ҎQimplements Serializable只是Z标注该对象是可被序列化的Q然后用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象?对象Q接着Q用ObjectOutputStream对象的writeObject(Object obj)Ҏ可以将参数为obj的对象写?即保存其状?Q要恢复的话则用输入?br />106、是否可以从一个staticҎ内部发出寚wstaticҎ的调用?
不可?如果其中包含对象的method()Q不能保证对象初始化.
107、写clone()ҎӞ通常都有一行代码,是什么?
Clone 有缺省行为,super.clone();他负责生正大的I间Qƈ逐位复制?br />108、在JAVA中,如何跛_当前的多重嵌套@环?
用break; return Ҏ?br />109、List、Map、Set三个接口Q存取元素时Q各有什么特点?
List 以特定次序来持有元素Q可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value|value可多倹{?br />110、J2EE是什么?
J2EE是Sun公司提出的多?multi-diered),分布?distributed),Zlg(component-base)的企业应用模型(enterpriese application model).在这L一个应用系l中Q可按照功能划分Z同的lgQ这些组件又可在不同计算ZQƈ且处于相应的层次(tier)中。所属层ơ包括客户层(clietn tier)lg,web层和lg,Business层和lg,企业信息pȝ(EIS)层?br />



Fisher 2007-03-05 22:43 发表评论
]]>
JAVA面试题集(?J2EE斚w.txthttp://www.tkk7.com/fisher/articles/102009.htmlFisherFisherMon, 05 Mar 2007 14:42:00 GMThttp://www.tkk7.com/fisher/articles/102009.htmlhttp://www.tkk7.com/fisher/comments/102009.htmlhttp://www.tkk7.com/fisher/articles/102009.html#Feedback0http://www.tkk7.com/fisher/comments/commentRss/102009.htmlhttp://www.tkk7.com/fisher/services/trackbacks/102009.htmlJSP斚w
Servlet斚w
Jdbc、Jdo斚w
Xml斚w
EJB斚w
J2EE,MVC斚w
CORBA斚w
LINUX斚w


**


Jsp斚w

1、jsp有哪些内|对?作用分别是什?

{?JSP共有以下9U基本内|组Ӟ可与ASP?U内部组件相对应Q:

 request 用户端请求,此请求会包含来自GET/POSTh的参?

response |页传回用户端的回应

pageContext |页的属性是在这里管?

session 与请求有关的会话?

application servlet 正在执行的内?

out 用来传送回应的输出

config servlet的构枉?

page JSP|页本n

exception 针对错误|页Q未捕捉的例?

2、jsp有哪些动?作用分别是什?

{?JSP共有以下6U基本动?

jsp:includeQ在面被请求的时候引入一个文件?

jsp:useBeanQ寻找或者实例化一个JavaBean?

jsp:setPropertyQ设|JavaBean的属性?

jsp:getPropertyQ输出某个JavaBean的属性?

jsp:forwardQ把h转到一个新的页面?

jsp:pluginQ根据浏览器cd为Java插g生成OBJECT或EMBED标记

3、JSP中动态INCLUDE与静态INCLUDE的区别?

{:动态INCLUDE用jsp:include动作实现

<jsp:include page="included.jsp" flush="true" />它L会检查所含文件中的变化,适合用于包含动态页面,q且可以带参?

静态INCLUDE用include伪码实现,定不会检查所含文件的变化Q适用于包含静态页?

<%@ include file="included.htm" %>

4、两U蟩转方式分别是什?有什么区?

{:有两U,分别为:

<jsp:include page="included.jsp" flush="true">

<jsp:forward page= "nextpage.jsp"/>

前者页面不会{向include所指的面Q只是显C늚l果Q主面q是原来的页面。执行完后还会回来,相当于函数调用。ƈ且可以带参数.后者完全{向新面Q不会再回来。相当于go to 语句?

Servlet斚w

1、说一说Servlet的生命周?

{?servlet有良好的生存期的定义Q包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroyҎ表达?

2、Servlet版本?忘了问的是哪两个版本?的不?

希望大家补上Q谢?

3、JAVA SERVLET API中forward() 与redirect()的区别?

{?前者仅是容器中控制权的转向Q在客户端浏览器地址栏中不会昄{向后的地址Q后者则是完全的跌{Q浏览器会得到跌{的地址Qƈ重新发送请求链接。这P从浏览器的地址栏中可以看到跌{后的链接地址。所以,前者更加高效,在前者可以满需要时Q尽量用forward()ҎQƈ且,q样也有助于隐藏实际的链接。在有些情况下,比如Q需要蟩转到一个其它服务器上的资源Q则必须使用sendRedirect()Ҏ?

4、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 {

}

}

 

Jdbc、Jdo斚w

1、可能会让你写一DJdbcqOracle的程?q实现数据查?

{?E序如下Q?

package hello.ant;

import java.sql.*;

public class jdbc

{

String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";

String theUser="admin";

String thePw="manager";

Connection c=null;

Statement conn;

ResultSet rs=null;

public jdbc()

{

try{

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

c = DriverManager.getConnection(dbUrl,theUser,thePw);

conn=c.createStatement();

}catch(Exception e){

e.printStackTrace();

}

}

public boolean executeUpdate(String sql)

{

try

{

conn.executeUpdate(sql);

return true;

}

catch (SQLException e)

{

e.printStackTrace();

return false;

}

}

public ResultSet executeQuery(String sql)

{

rs=null;

try

{

rs=conn.executeQuery(sql);

}

catch (SQLException e)

{

e.printStackTrace();

}

return rs;

}

public void close()

{

try

{

conn.close();

c.close();

}

catch (Exception e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

ResultSet rs;

jdbc conn = new jdbc();

rs=conn.executeQuery("select * from test");

try{

while (rs.next())

{

System.out.println(rs.getString("id"));

System.out.println(rs.getString("name"));

}

}catch(Exception e)

{

e.printStackTrace();

}

}

}

2、Class.forName的作?Z么要?

{:调用该访问返回一个以字符串指定类名的cȝ对象?

3、Jdo是什?

{?JDO是Java对象持久化的新的规范Qؓjava data object的简U?也是一个用于存取某U数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发h员来_存储数据对象完全不需要额外的代码Q如JDBC API的用)。这些繁琐的例行工作已经转移到JDO产品提供商n上,使开发h员解脱出来,从而集中时间和_֊在业务逻辑上。另外,JDO很灵z,因ؓ它可以在M数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用Q提供到M数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMSQ等{,使得应用可移植性更强?

4、在ORACLE大数据量下的分页解决Ҏ。一般用截取IDҎQ还有是三层嵌套Ҏ?

{?一U分|?

<%

int i=1;

int numPages=14;

String pages = request.getParameter("page") ;

int currentPage = 1;

currentPage=(pages==null)?(1):{Integer.parseInt(pages)}

sql = "select count(*) from tables";

ResultSet rs = DBLink.executeQuery(sql) ;

while(rs.next()) i = rs.getInt(1) ;

int intPageCount=1;

intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);

int nextPage ;

int upPage;

nextPage = currentPage+1;

if (nextPage>=intPageCount) nextPage=intPageCount;

upPage = currentPage-1;

if (upPage<=1) upPage=1;

rs.close();

sql="select * from tables";

rs=DBLink.executeQuery(sql);

i=0;

while((i<numPages*(currentPage-1))&&rs.next()){i++;}

%>

//输出内容

//输出页q接

合计:<%=currentPage%>/<%=intPageCount%><a href="List.jsp?page=1">W一?lt;/a><a

 

href="List.jsp?page=<%=upPage%>">上一?lt;/a>

<%

for(int j=1;j<=intPageCount;j++){

if(currentPage!=j){

%>

<a href="list.jsp?page=<%=j%>">[<%=j%>]</a>

<%

}else{

out.println(j);

}

}

%>

<a href="List.jsp?page=<%=nextPage%>">下一?lt;/a><a href="List.jsp?page=<%=intPageCount%>">最后页

 

</a>

 

Xml斚w

1、xml有哪些解析技?区别是什?

{?有DOM,SAX,STAX{?

DOM:处理大型文g时其性能下降的非常厉実뀂这个问题是由DOM的树l构所造成的,q种l构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随问SAX:不现于DOM,SAX是事仉动型的XML解析方式。它序dXML文gQ不需要一ơ全部装载整个文件。当遇到像文件开_文档l束Q或者标{ּ头与标签l束Ӟ它会触发一个事Ӟ用户通过在其回调事g中写入处理代码来处理XML文gQ适合对XML的顺序访?

STAX:Streaming API for XML (StAX)

2、你在项目中用到了xml技术的哪些斚w?如何实现?

{?用到了数据存贮,信息配置两方面。在做数据交换^台时Q将不能数据源的数据l装成XML文gQ然后将XML文g压羃打包加密后通过|络传送给接收者,接收解密与解压羃后再同XML文g中还原相关信息进行处理。在做Y仉|时Q利用XML可以很方便的q行QY件的各种配置参数都存贮在XML文g中?

3、用jdom解析xml文g时如何解决中文问?如何解析?

{?看如下代?用编码方式加以解?

package test;

import java.io.*;

public class DOMTest

{

private String inFile = "c:\people.xml";

private String outFile = "c:\people.xml";

public static void main(String args[])

{

new DOMTest();

}

public DOMTest()

{

try

{

javax.xml.parsers.DocumentBuilder builder =

javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();

org.w3c.dom.Document doc = builder.newDocument();

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、编E用JAVA解析XML的方?

{?用SAX方式解析XMLQXML文g如下Q?

<?xml version="1.0" encoding="gb2312"?>

<person>

<name>王小?lt;/name>

<college>信息学院</college>

<telephone>6258113</telephone>

<notes>?1955q生,博士Q?5q调入v南大?lt;/notes>

</person>

事g回调cSAXHandler.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文gpeople.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>教师信息?lt;/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斚w

1、EJB2.0有哪些内?分别用在什么场? EJB2.0和EJB1.1的区?

{:规范内容包括Bean提供者,应用E序装配者,EJB容器QEJB配置工具QEJB服务提供者,pȝ理员。这里面QEJB容器是EJB之所以能够运行的核心。EJB容器理着EJB的创建,撤消Q激z,LQ与数据库的q接{等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....

2、EJB与JAVA BEAN的区别?

{?Java Bean 是可复用的组Ӟ对Java Beanq没有严格的规范Q理ZԌM一个Javac都可以是一个Bean。但通常情况下,׃Java Bean是被容器所创徏Q如Tomcat)的,所以Java Bean应具有一个无参的构造器Q另外,通常Java Beanq要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微YCOM模型中的本地q程内COMlgQ它是不能被跨进E访问的。Enterprise Java Bean 相当于DCOMQ即分布式组件。它是基于Java的远E方法调用(RMIQ技术的Q所以EJB可以被远E访问(跨进E、跨计算机)。但EJB必须被布|在诸如Webspere、WebLogicq样的容器中QEJB客户从不直接讉K真正的EJBlgQ而是通过其容器访问。EJB容器是EJBlg的代理,EJBlg由容器所创徏和管理。客户通过容器来访问真正的EJBlg?

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

}

EJBcȝ代码

package Beans;

import java.rmi.RemoteException;

import javax.ejb.SessionBean;

import javx.ejb.SessionContext;

public class AddBean Implements SessionBean

{

//some method declare

}

 

J2EE,MVC斚w

1、MVC的各个部分都有那些技术来实现?如何实现?

{?MVC是ModelQViewQController的简写?Model" 代表的是应用的业务逻辑Q通过JavaBeanQEJBlg实现Q, "View" 是应用的表示面(由JSP面产生Q,"Controller" 是提供应用的处理q程控制Q一般是一个ServletQ,通过q种设计模型把应用逻辑Q处理过E和昄逻辑分成不同的组件实现。这些组件可以进行交互和重用?

2、应用服务器与WEB SERVER的区别?

希望大家补上Q谢?

3、J2EE是什么?

{?Je22是Sun公司提出的多?multi-diered),分布?distributed),Zlg(component-base)的企业应用模型(enterpriese application model).在这L一个应用系l中Q可按照功能划分Z同的lgQ这些组件又可在不同计算ZQƈ且处于相应的层次(tier)中。所属层ơ包括客户层(clietn tier)lg,web层和lg,Business层和lg,企业信息pȝ(EIS)层?

4、WEB SERVICE名词解释。JSWDL开发包的介l。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释?



Fisher 2007-03-05 22:42 发表评论
]]>
Java模拟试题http://www.tkk7.com/fisher/articles/102007.htmlFisherFisherMon, 05 Mar 2007 14:40:00 GMThttp://www.tkk7.com/fisher/articles/102007.htmlhttp://www.tkk7.com/fisher/comments/102007.htmlhttp://www.tkk7.com/fisher/articles/102007.html#Feedback0http://www.tkk7.com/fisher/comments/commentRss/102007.htmlhttp://www.tkk7.com/fisher/services/trackbacks/102007.html、给出如下代?
class Test{
  private int m;
  public static void fun() {
    // some code...
  }
}
如何使成员变量m 被函数fun()直接讉K?
 A、将private int m 改ؓprotected int m
 B、将private int m 改ؓ public int m
 C、将private int m 改ؓ static int m
 D、将private int m 改ؓ int m
{? C

 

2、下面哪几个函数是public void example(){...}的重载函敎ͼ
 A?public void example( int m){...}
 B、public int example(){...}
 C、public void example2(){...}
 D?public int example ( int m, float f){...}
{? AQD

 

3、给Z面的代码D?
public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a; y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;
z=c;
}
}
在代码说?/ assignment x=a, y=b处写入如下哪几个代码是正的Q?br /> A?Base(a,b);
 B、x=a, y=b;
 C、x=a; y=b;
 D、this(a,b);
{? CQD

 

4、已知如下定义:String s = "story";
下面哪个表达式是合法的?
 A?s += "books";
 B、char c = s[1];
 C、int len = s.length;
 D、String t = s.toLowerCase();
{? AQD

 

5、Java中main()函数的值是什?
 A?String
 B、int
 C、char
 D、void
{?D

 

6、如下哪些字串是Java中的标识W?
 A?fieldname
 B、super
 C?number
 D?number
 E?number
{: A,E

 

7、如下哪些是Java中有效的关键字?
 A?const
 B、NULL
 C、false
 D、this
 E?native
{:A,C,D,E

 

8、如下哪些是Java中正的整数表示?
 A?2
 B?x22
 C?22
 D?2H
{? A,B,C

 

9、下面的代码D中Q执行之后i 和j 的值是什?
int i = 1;
int j;
j = i++;
 A?1, 1
 B?, 2
 C?, 1
 D?, 2
{? C

 

10、下面句话是正确?
 A?>> 是算术右UL作符.
 B?gt;> 是逻辑右移操作W?
 C?gt;>> 是算术右UL作符
 D?gt;>> 是逻辑右移操作W?br />{:A,D

 

11、下面哪个赋D句是合法的?
 A、float a = 2.0
 B、double b = 2.0
 C、int c = 2
 D、long d = 2
{:B,C,D

 

12、下面哪个是main()函数的合法参?
 A、char args[]
 B、char args[][]
 C、String arg要[]
 D、String args
{:  C

 

13、下面哪个语句是创徏数组的正语句?
 A?float f[][] = new float[6][6];
 B、float []f[] = new float[6][6];
 C、float f[][] = new float[][6];
 D、float [][]f = new float[6][6];
 E、float [][]f = new float[6][];
{:A,B,C,D

 

14、已知表辑ּint m[] = {0, 1, 2, 3, 4, 5, 6 };
下面哪个表达式的g数组下标量L相等Q?br /> A?m.length()
 B、m.length
 C、m.length()+1
 D、m.length+1
{:B

 

15、已知如下的命o执行 java MyTest a b c
请问哪个语句是正的Q?br /> A?args[0] = "MyTest a b c"
 B、args[0] = "MyTest"
 C、args[0] = "a"
 D、args[1]= 'b'
{:C, D

 

16、已知如下代码:
public class Test
{
long a[] = new long[10];
public static void main ( String arg[] ) {
System.out.println ( a[6] );
}
}
请问哪个语句是正的Q?
 A、Output is null.
 B、Output is 0.
 C、When compile, some error will occur.
 D、When running, some error will occur.
{:B

 

17、已知如下代码:
boolean m = true;
if ( m == false )
System.out.println("False");
else
System.out.println("True");
执行l果是什么?
 A、False
 B、True
 C、None
 D、An error will occur when running.
{: B

 

18、已知如下代码:
public class Test
{
public static void main(String arg[])
{
int i = 5;
do {
System.out.println(i);
} while (--i>5)
System.out.println("finished");
}
}
执行后的输出是什么?
 A?5
 B?
 C?
 D、Finished
 E、None
{:A,D

 

19、下面代码执行后的输出是什么?
outer: for(int i=0;i<3; i++)
inner: for(int j=0;j<2;j++)
{
if(j==1) continue outer;
System.out.println(j+ "and "+i);
}
 A?0 and 0
 B? and 1
 C? and 2
 D? and 0
 E? and 1
 F? and 2
 G? and 0
 H?2 and 1
 I?2 and 2
{: A,B,C

 

20、已知如下代码:
switch (m)
{
case 0: System.out.println("Condition 0");
case 1: System.out.println("Condition 1");
case 2: System.out.println("Condition 2");
case 3: System.out.println("Condition 3");break;
default: System.out.println("Other Condition");
}
当m 的gؓ什么时输出"Condition 2"?
 A?0
 B?
 C?
 D?
 E?
 F、None
{:A,B,C

 

21、当览器返回到新URL的包含applet 的页面时调用以下哪个函数Q?br /> A?init()
 B、start()
 C、stop()
 D、destroy()
{:B

 

22、以下哪个方法用于定义线E的执行体?
 A?start()
 B、init()
 C、run()
 D、main()
 E、synchronized()
{:C

 

23、Java中如下哪个约束符是正的?
 A?private
 B、public
 C、protected
 D、protect
 E、friend
{:A,B,C

 

24如果cM的成员变量可以被同一包访问,则用如下哪个约束符?
 A?private
 B、public
 C、protected
 D、no modifier
 E、final
{:D

 

25、以下哪个约束符可用于定义成员常量?
 A?static
 B、final
 C、abstract
 D、No modifier can be used
{:B

 

26、如下哪个语句正说明了nativeҎ?
 A?public native void test();
 B、public native void test(){}
 C、public void native test();
 D、public native test(){}
{:A

 

27、已知如下类说明Q?br />public class Test {
private float f = 1.0;
int m = 12;
static int n=1;
public static void main(String arg[]) {
Test t = new Test();
// some code...
}
}
如下哪个使用是正的Q?br /> A?t.f
 B、this.n
 C、Test.m
 D、Test.n
{:A,D

 

28、已知如下代码:
1: class Example{
2: String str;
3: public Example(){
4: str= "example";
5: }
6: public Example(String s){
7: str=s;
8: }
9:} }
10: class Demo extends Example{
11: }
12: public class Test{
13:public void f () {
14:Example ex = new Example("Good");
15:Demo d = new Demo("Good");
16:} }
哪句语句会导致错误?
 A?line 3
 B、line 6
 C、line 10
 D、line 14
 E、line 15
{:E

 

29、已知如下类定义Q?br />class Base {
public Base (){ //... }
public Base ( int m ){ //... }
protected void fun( int n ){ //... }
}
public class Child extends Base{
// member methods
}
如下哪句可以正确地加入子cMQ?br /> A?private void fun( int n ){ //...}
 B、void fun ( int n ){ //... }
 C、protected void fun ( int n ) { //... }
 D、public void fun ( int n ) { //... }
{:C,D

 

30、如下哪个语句是正确的?
 A?In Java single inheritance is allowed, which makes code more reliable.
 B、A subclass inherits all methods ( including the constructor ) from the superclass.
 C?A class can implement as many interfaces as needed.
 D、When a class implements an interface, it can define as many methods of the interface as needed.
{:A,C

 

31、在如下源代码文件Test.java? 哪个是正的cd义?
 A?public class test {
public int x = 0;
public test(int x)
{
this.x = x;
}
}
 B、public class Test{
public int x=0;
public Test(int x) {
this.x = x;
}
}
 C、public class Test extends T1, T2 {
public int x = 0;
public Test (int x) {
this.x = x;
}
}
 D?public class Test extends T1{
public int x=0;
public Test(int x){
this.x = x;
}
}
 E、protected class Test extends T2{
public int x=0;
public Test(int x){
this.x=x;
}
}
{:B,D

 

32、Person, Student 和Teacher 都是cd。这些类有以下承关pR?br />Person
|
---------------
| |
Student Teacher
q且在Java源代码中有如下表辑ּQ?br />Person p = new Student();
如下哪个语句是正的Q?
 A?The expression is legal.
 B、The expression is illegal.
 C、Some errors will occur when compile.
 D、Compile is correct but it will be wrong when running.
{:A

 

33、当Frame改变大小Ӟ攑֜其中的按钮大不变,则用如下哪个layout?
 A?FlowLayout
 B、CardLayout
 C、North and South of BorderLayout
 D、East and West of BorderLayout
 E、GridLayout
{:D

 

34、当Frame改变大小Ӟ攑֜其中的按钮大不变,则用如下哪个layout?
 A?FlowLayout
 B、CardLayout
 C、North and South of BorderLayout
 D、East and West of BorderLayout
 E、GridLayout
{:A

 

35、如下哪个方法可以从WindowEvent获取事g?
 A?getFrame()
 B、getID()
 C、getSource()
 D、getWindow()
{:C,D

 

36、以下哪个有关事件监听器的语句是正确的?
 A?Multiple listeners can be attached to one component.
 B、Only one listener can be attached to one component.
 C、One listener can receive and process the events from multiple components.
 D、One listener can receive and process the events from only one component.
{:A,C

 

37、监听器接口的方法返回值是什么?
 A?int
 B、String
 C、void
 D、Object
 E、AWTEvent
{:C

 

38、下面哪个事件监听器在Java中有事g适配?
 A?MouseListener
 B、KeyListener
 C、ActionListener
 D、ItemListener
 E、WindowListener
{:A,B,E

 

39、下面哪个方法与applet的显C无?
 A?update()
 B、draw()
 C、repaint()
 D、paint()
{:B

 

40、已知如下说明:
TextArea ta = new TextArea ("Hello", 5, 5);
请问哪个语句是正的Q?
 A?The maximum number of characters in a line is 5.
 B、The displayed height is 5 lines otherwise constrain.
 C、The displayed string can use multiple fonts.
 D、The displayed strings are editable.
{:B,D

 

41、请问如下哪个方法可以将MenuBar加入Frame?
 A?setMenu()
 B、setMenuBar()
 C、add()
 D、addMenuBar()
{:B

 

42、下面哪个不是Java中的容器?
 A?ScrollPane
 B、Canvas
 C、Scrollbar
 D、Applet
 E、Dialog
{:B,C

 

43、下面哪个方法可用于定义新线E类Q?br /> A?implement the Runnable interface
 B、add a run() method in the class
 C、create an instance of Thread
 D、extend the Thread class
{:A,D

 

44、下面哪个stream是node?
 A?FileInputStream
 B、BufferedInputStream
 C、PushbackInputStream
 D、ByteArrayInputStream
{:A,D

 

45、哪个类可用于处理Unicode?
 A?InputStreamReader
 B、BufferedReader
 C、Writer
 D、PipedInputStream
{:A,B

 

 



Fisher 2007-03-05 22:40 发表评论
]]>
վ֩ģ壺 δʮ18ֹվ| ɫè˳վ߹ۿ| ͵͵޸պ| 㶮ѹۿ| ޹Ʒ˾Ʒ| ԲľƷƵѿ| a߹ۿƵ| ޾ƷպĻþþ| ߹ۿİ | 99ƷƵ| Ƶ| ֻˬƵѿ| Ů1963ҹƵ| ޾ƷѶ| avƷɫҹĻ| ֻˬִ̼| ĻƵ߹ۿ| Ļŷպ| ɫþþۺ| ˬˬˬƵ| ˿wwwѸ| ۺϼɫһ| AVһ| ҹӰӴȫѹۿ| ÿµĻ| ҹ޾ƷӰ| Ʒ߹ۿ| ޹˾Ʒ߹ۿ| ִִˬƵ| ˾ƷƵҳȫ| ѹۿӰ| Ʒva߹ۿ| һëƬ߲| VA߹ۿ| ޹VA߹ۿ| ëƬaëƬѲ| 41515hh| Ļһ| պĻ| av| Ƶ|