下载

2下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 00JAVA面试题集2

00JAVA面试题集2.doc

00JAVA面试题集2

李浩
2018-09-08 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《00JAVA面试题集2doc》,可适用于IT/计算机领域

<<JAVA面试题集基础知识:C或Java中的异常处理机制的简单原理和应用。当JAVA程序违反了JAVA的语义规则时JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException访问的对象时会引发PointerException。另一种情况就是JAVA允许程序员扩展这种语义检查程序员可以创建自己的异常并自由选择在何时用throw关键字引发异常。所有的异常都是javalangThowable的子类。Java的接口和C的虚类的相同和不同处。由于Java不支持多继承而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性现有的单继承机制就不能满足要求。与继承相比接口有更高的灵活性因为接口中没有任何实现代码。当一个类实现了接口以后该类要实现接口里面所有的方法和属性并且接口里面的属性在默认状态下面都是publicstatic,所有方法默认情况下是public一个类可以实现多个接口。垃圾回收的优点和原理。并考虑种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制使c程序员最头疼的内存管理的问题迎刃而解它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制Java中的对象不再有“作用域”的概念只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收增量垃圾回收。请说出你所知道的线程同步的方法。wait():使一个线程处于等待状态并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态是一个静态方法调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程注意的是在调用此方法的时候并不能确切的唤醒某一个等待状态的线程而是由JVM确定唤醒哪个线程而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程注意并不是给所有唤醒线程一个对象的锁而是让它们竞争。请讲一讲析构函数和虚函数的用法和作用。ErrorewServerSocket()while(true){socket=ssaccept()StringRemoteIP=socketgetInetAddress()getHostAddress()StringRemotePort=":"socketgetLocalPort()Systemoutprintln("Aclientcomein!IP:"RemoteIPRemotePort)in=newBufferedReader(new InputStreamReader(socketgetInputStream()))Stringline=inreadLine()Systemoutprintln("Cleintsendis:"line)out=newPrintWriter(socketgetOutputStream(),true)outprintln("YourMessageReceived!")outclose()inclose()socketclose()}}catch(IOExceptione){outprintln("wrong")}}publicstaticvoidmain(Stringargs){newServer()}}Client端程序:packagetestimportjavaio*importjavanet* publicclassClient{SocketsocketBufferedReaderinPrintWriteroutpublicClient(){try{Systemoutprintln("TrytoConnectto:")socket=newSocket("",)Systemoutprintln("TheServerConnected!")Systemoutprintln("PleaseentersomeCharacter:")BufferedReaderline=newBufferedReader(new InputStreamReader(Systemin))out=newPrintWriter(socketgetOutputStream(),true)outprintln(linereadLine())in=newBufferedReader(newInputStreamReader(socketgetInputStream()))Systemoutprintln(inreadLine())outclose()inclose()socketclose()}catch(IOExceptione){outprintln("Wrong")}}publicstaticvoidmain(Stringargs){newClient()}}、用JAVA实现一种排序JAVA类实现序列化的方法(二种)?如在COLLECTION框架中实现比较要实现什么样的接口?答:用插入法进行排序代码如下packagetestimportjavautil*classInsertSort{ArrayListalpublicInsertSort(intnum,intmod){al=newArrayList(num)Randomrand=newRandom()Systemoutprintln("TheArrayListSortBefore:")for(inti=i<numi){aladd(newInteger(Mathabs(randnextInt())mod))Systemoutprintln("al"i"="alget(i))}}publicvoidSortIt(){IntegertempIntintMaxSize=for(inti=i<alsize()i){tempInt=(Integer)alremove(i)if(tempIntintValue()>=((Integer)alget(MaxSize))intValue()){aladd(MaxSize,tempInt)MaxSizeSystemoutprintln(altoString())}else{for(intj=j<MaxSizej){if (((Integer)alget(j))intValue()>=tempIntintValue()){aladd(j,tempInt)MaxSizeSystemoutprintln(altoString())break}}}}Systemoutprintln("TheArrayListSortAfter:")for(inti=i<alsize()i){Systemoutprintln("al"i"="alget(i))}}publicstaticvoidmain(Stringargs){InsertSortis=newInsertSort(,)isSortIt()}}JAVA类实现序例化的方法是实现javaioSerializable接口Collection框架中实现比较要实现Comparable接口和Comparator接口、编程:编写一个截取字符串的函数输入为一个字符串和字节数输出为按字节截取的字符串。但是要保证汉字不被截半个如“我ABC”应该截为“我AB”输入“我ABC汉DEF”应该输出为“我ABC”而不是“我ABC汉的半个”。答:代码如下:packagetest classSplitString{StringSplitStrintSplitBytepublicSplitString(Stringstr,intbytes){SplitStr=strSplitByte=bytesSystemoutprintln("TheStringis:′"SplitStr"′SplitBytes="SplitByte)}publicvoidSplitIt(){intloopCountloopCount=(SplitStrlength()SplitByte==)(SplitStrlength()SplitByte):(SplitStrlength()SplitByte)Systemoutprintln("WillSplitinto"loopCount)for(inti=i<=loopCounti){if(i==loopCount){Systemoutprintln(SplitStrsubstring((i)*SplitByte,SplitStrlength()))}else{Systemoutprintln(SplitStrsubstring((i)*SplitByte,(i*SplitByte)))}}}publicstaticvoidmain(Stringargs){SplitStringss=newSplitString("test中dd文dsaf中男大n中国中国人 ewldfls=",)ssSplitIt()}}、JAVA多线程编程。用JAVA写一个多线程程序如写四个线程二个加二个对一个变量减一输出。希望大家补上谢谢、STRING与STRINGBUFFER的区别。答:STRING的长度是不可变的STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作特别是内容要修改时那么使用StringBuffer如果最后需要String那么使用StringBuffer的toString()方法Jsp方面、jsp有哪些内置对象作用分别是什么答:JSP共有以下种基本内置组件(可与ASP的种内部组件相对应): request用户端请求此请求会包含来自GETPOST请求的参数response网页传回用户端的回应pageContext网页的属性是在这里管理session与请求有关的会话期applicationservlet正在执行的内容out用来传送回应的输出configservlet的构架部件pageJSP网页本身exception针对错误网页未捕捉的例外、jsp有哪些动作作用分别是什么答:JSP共有以下种基本动作jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个JavaBean。jsp:setProperty:设置JavaBean的属性。jsp:getProperty:输出某个JavaBean的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记、JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用jsp:include动作实现<jsp:includepage="includedjsp"flush="true">它总是会检查所含文件中的变化适合用于包含动态页面并且可以带参数静态INCLUDE用include伪码实现,定不会检查所含文件的变化适用于包含静态页面<includefile="includedhtm">、两种跳转方式分别是什么有什么区别答:有两种分别为:<jsp:includepage="includedjsp"flush="true"><jsp:forwardpage="nextpagejsp">前者页面不会转向include所指的页面只是显示该页的结果主页面还是原来的页面。执行完后还会回来相当于函数调用。并且可以带参数后者完全转向新页面不会再回来。相当于goto语句。Servlet方面、说一说Servlet的生命周期答:servlet有良好的生存期的定义包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javaxservletServlet接口的init,service和destroy方法表达。、Servlet版本间(忘了问的是哪两个版本了)的不同希望大家补上谢谢、JAVASERVLETAPI中forward()与redirect()的区别?答:前者仅是容器中控制权的转向在客户端浏览器地址栏中不会显示出转向后的地址后者则是完全的跳转浏览器将会得到跳转的地址并重新发送请求链接。这样从浏览器的地址栏中可以看到跳转后的链接地址。所以前者更加高效在前者可以满足需要时尽量使用forward()方法并且这样也有助于隐藏实际的链接。在有些情况下比如需要跳转到一个其它服务器上的资源则必须使用sendRedirect()方法。、Servlet的基本架构publicclassServletNameextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}} Jdbc、Jdo方面、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询答:程序如下:packagehelloantimportjavasql*publicclassjdbc{StringdbUrl="jdbc:oracle:thin:::orcl"StringtheUser="admin"StringthePw="manager"Connectionc=StatementconnResultSetrs=publicjdbc(){try{ClassforName("oraclejdbcdriverOracleDriver")newInstance()c=DriverManagergetConnection(dbUrl,theUser,thePw)conn=ccreateStatement()}catch(Exceptione){eprintStackTrace()}}publicbooleanexecuteUpdate(Stringsql){try{connexecuteUpdate(sql)returntrue}catch(SQLExceptione){eprintStackTrace()returnfalse}}publicResultSetexecuteQuery(Stringsql){rs=try{rs=connexecuteQuery(sql)}catch(SQLExceptione){eprintStackTrace()}returnrs}publicvoidclose(){try{connclose()cclose()}catch(Exceptione){eprintStackTrace()}}publicstaticvoidmain(Stringargs){ResultSetrsjdbcconn=newjdbc()rs=connexecuteQuery("select*fromtest")try{while(rsnext()){Systemoutprintln(rsgetString("id"))Systemoutprintln(rsgetString("name"))}}catch(Exceptione){eprintStackTrace()}}}、ClassforName的作用为什么要用答:调用该访问返回一个以字符串指定类名的类的对象。、Jdo是什么答:JDO是Java对象持久化的新的规范为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储因此对开发人员来说存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上使开发人员解脱出来从而集中时间和精力在业务逻辑上。另外JDO很灵活因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用提供到任何数据底层的存储功能比如关系数据库、文件、XML以及对象数据库(ODBMS)等等使得应用可移植性更强。、在ORACLE大数据量下的分页解决方法。一般用截取ID方法还有是三层嵌套方法。答:一种分页方法<inti=intnumPages=Stringpages=requestgetParameter("page")intcurrentPage=currentPage=(pages==)():{IntegerparseInt(pages)}sql="selectcount(*)fromtables"ResultSetrs=DBLinkexecuteQuery(sql)while(rsnext())i=rsgetInt()intintPageCount=intPageCount=(inumPages==)(inumPages):(inumPages)intnextPageintupPagenextPage=currentPageif(nextPage>=intPageCount)nextPage=intPageCountupPage=currentPageif(upPage<=)upPage=rsclose()sql="select*fromtables"rs=DBLinkexecuteQuery(sql)i=while((i<numPages*(currentPage))rsnext()){i}>输出内容输出翻页连接合计:<=currentPage><=intPageCount><ahref="Listjsppage=">第一页<a><a href="Listjsppage=<=upPage>">上一页<a><for(intj=j<=intPageCountj){if(currentPage!=j){><ahref="listjsppage=<=j>"><=j><a><}else{outprintln(j)}}><ahref="Listjsppage=<=nextPage>">下一页<a><ahref="Listjsppage=<=intPageCount>">最后页 <a>Xml方面、xml有哪些解析技术区别是什么答:有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的这种结构占用的内存较多而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件不需要一次全部装载整个文件。当遇到像文件开头文档结束或者标签开头与标签结束时它会触发一个事件用户通过在其回调事件中写入处理代码来处理XML文件适合对XML的顺序访问STAX:StreamingAPIforXML(StAX)、你在项目中用到了xml技术的哪些方面如何实现的答:用到了数据存贮信息配置两方面。在做数据交换平台时将不能数据源的数据组装成XML文件然后将XML文件压缩打包加密后通过网络传送给接收者接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时利用XML可以很方便的进行软件的各种配置参数都存贮在XML文件中。、用jdom解析xml文件时如何解决中文问题如何解析答:看如下代码,用编码方式加以解决packagetestimportjavaio*publicclassDOMTest{privateStringinFile="c:peoplexml"privateStringoile="c:peoplexml"publicstaticvoidmain(Stringargs){newDOMTest()}publicDOMTest(){try{javaxxmlparsersDocumentBuilderbuilder=javaxxmlparsersDocumentBuilderFactorynewInstance()newDocumentBuilder()orgwcdomDocumentdoc=buildernewDocument()orgwcdomElementroot=doccreateElement("老师")orgwcdomElementwang=doccreateElement("王")orgwcdomElementliu=doccreateElement("刘")wangappendChild(doccreateTextNode("我是王老师"))rootappendChild(wang)docappendChild(root)javaxxmltransformTransformertransformer=javaxxmltransformTransformerFactorynewInstance()newTransformer()transformersetOutputProperty(javaxxmltransformOutputKeysENCODING,"gb")transformersetOutputProperty(javaxxmltransformOutputKeysINDENT,"yes")  transformertransform(newjavaxxmltransformdomDOMSource(doc),new javaxxmltransformstreamStreamResult(oile))}catch(Exceptione){Systemoutprintln(egetMessage())}}}、编程用JAVA解析XML的方式答:用SAX方式解析XMLXML文件如下:<xmlversion=""encoding="gb"><person><name>王小明<name><college>信息学院<college><telephone><telephone><notes>男,年生,博士年调入海南大学<notes><person>事件回调类SAXHandlerjavaimportjavaio*importjavautilHashtableimportorgxmlsax*publicclassSAXHandlerextendsHandlerBase{privateHashtabletable=newHashtable()privateStringcurrentElement=privateStringcurrentValue=publicvoidsetTable(Hashtabletable){thistable=table}publicHashtablegetTable(){returntable}publicvoidstartElement(Stringtag,AttributeListattrs)throwsSAXException{currentElement=tag}publicvoidcharacters(charch,intstart,intlength)throwsSAXException{currentValue=newString(ch,start,length)}publicvoidendElement(Stringname)throwsSAXException{if(currentElementequals(name))tableput(currentElement,currentValue)}}JSP内容显示源码,SaxXmljsp:<HTML><HEAD><TITLE>剖析XML文件peoplexml<TITLE><HEAD><BODY><pageerrorPage="ErrPagejsp"contentType="texthtmlcharset=GB"><pageimport="javaio*"><pageimport="javautilHashtable"><pageimport="orgwcdom*"><pageimport="orgxmlsax*"><pageimport="javaxxmlparsersSAXParserFactory"><pageimport="javaxxmlparsersSAXParser"><pageimport="SAXHandler"><Filefile=newFile("c:peoplexml")FileReaderreader=newFileReader(file)ParserparserSAXParserFactoryspf=SAXParserFactorynewInstance()SAXParsersp=spfnewSAXParser()SAXHandlerhandler=newSAXHandler()spparse(newInputSource(reader),handler)HashtablehashTable=handlergetTable()outprintln("<TABLEBORDER=><CAPTION>教师信息表<CAPTION>")outprintln("<TR><TD>姓名<TD>""<TD>"(String)hashTableget(newString("name"))"<TD><TR>")outprintln("<TR><TD>学院<TD>""<TD>"(String)hashTableget(newString("college"))"<TD><TR>")outprintln("<TR><TD>电话<TD>""<TD>"(String)hashTableget(newString("telephone"))"<TD><TR>")outprintln("<TR><TD>备注<TD>""<TD>"(String)hashTableget(newString("notes"))"<TD><TR>")outprintln("<TABLE>")><BODY><HTML>EJB方面、EJB有哪些内容分别用在什么场合EJB和EJB的区别答:规范内容包括Bean提供者应用程序装配者EJB容器EJB配置工具EJB服务提供者系统管理员。这里面EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建撤消激活去活与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS、EJB与JAVABEAN的区别?答:JavaBean是可复用的组件对JavaBean并没有严格的规范理论上讲任何一个Java类都可以是一个Bean。但通常情况下由于JavaBean是被容器所创建(如Tomcat)的所以JavaBean应具有一个无参的构造器另外通常JavaBean还要实现Serializable接口用于实现Bean的持久性。JavaBean实际上相当于微软COM模型中的本地进程内COM组件它是不能被跨进程访问的。EnterpriseJavaBean相当于DCOM即分布式组件。它是基于Java的远程方法调用(RMI)技术的所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中EJB客户从不直接访问真正的EJB组件而是通过其容器访问。EJB容器是EJB组件的代理EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。、EJB的基本架构答:一个EJB包括三个部分:RemoteInterface接口的代码packageBeansimportjavaxejbEJBObjectimportjavarmiRemoteExceptionpublicinterfaceAddextendsEJBObject{somemethoddeclare}HomeInterface接口的代码packageBeansimportjavarmiRemoteExceptionimportjaaxejbCreateExceptionimportjavaxejbEJBHomepublicinterfaceAddHomeextendsEJBHome{somemethoddeclare}EJB类的代码packageBeansimportjavarmiRemoteExceptionimportjavaxejbSessionBeanimportjavxejbSessionContextpublicclassAddBeanImplementsSessionBean{somemethoddeclare} JEE,MVC方面、MVC的各个部分都有那些技术来实现如何实现答:MVC是Model-View-Controller的简写。"Model"代表的是应用的业务逻辑(通过JavaBeanEJB组件实现)"View"是应用的表示面(由JSP页面产生)"Controller"是提供应用的处理过程控制(一般是一个Servlet)通过这种设计模型把应用逻辑处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。、应用服务器与WEBSERVER的区别?希望大家补上谢谢、JEE是什么?答:Je是Sun公司提出的多层(multidiered),分布式(distributed),基于组件(componentbase)的企业级应用模型(enterprieseapplicationmodel)在这样的一个应用系统中可按照功能划分为不同的组件这些组件又可在不同计算机上并且处于相应的层次(tier)中。所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。、WEBSERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。答:WebService描述语言WSDLSOAP即简单对象访问协议(SimpleObjectAccessProtocol)它是用于交换XML编码信息的轻量级协议。UDDI的目的是为电子商务建立标准UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范同时也包含一组使企业能将自身提供的WebService注册以使别的企业能够发现的访问协议的实现标准。、BS与CS的联系与区别。希望大家补上谢谢、STRUTS的应用(如STRUTS架构)答:Struts是采用JavaServletJavaServerPages技术开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(ModelViewController)设计模式的应用构架。Struts有如下的主要功能:一包含一个controllerservlet能将用户的请求发送到相应的Action对象。二JSP自由tag库并且在controllerservlet中提供关联支持帮助开发员创建交互式表单应用。三提供了一系列实用对象:XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。设计模式方面、开发中都用到了那些设计模式用在什么场合答:每个模式都描述了一个在我们的环境中不断出现的问题然后描述了该问题的解决方案的核心。通过这种方式你可以无数次地使用那些已有的解决方案无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSPServlet或者JEE的相关应用。简单工厂模式等。、UML方面答:标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,JavaScript方面、如何校验数字型varre=^d{,}$|d{,}$varstr=documentformall(i)valuevarr=strmatch(re)if(r==){sign=break}else{documentformall(i)value=parseFloat(str)}CORBA方面、CORBA是什么用途是什么答:CORBA标准是公共对象请求代理结构(CommonObjectRequestBrokerArchitecture)由对象管理组织(ObjectManagementGroup缩写为OMG)标准化。它的组成是接口定义语言(IDL),语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。其目的为:用不同的程序设计语言书写在不同的进程中运行为不同的操作系统开发LINUX方面、LINUX下线程GDI类的解释。答:LINUX实现的就是基于核心轻量级进程的"一对一"线程模型一个线程实体对应一个核心轻量级进程而线程之间的管理在核外函数库中实现。GDI类为图像设备编程接口类库。JAVA华为面试题JAVA方面面向对象的特征有哪些方面String是最基本的数据类型吗int和Integer有什么区别String和StringBuffer的区别运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态运行时异常表示虚拟机的通常操作中可能遇到的异常是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常但是并不要求必须声明抛出未被捕获的运行时异常。说出一些常用的类包,接口请各举个说出ArrayList,Vector,LinkedList的存储性能和特性ArrayList和Vector都是使用数组方式存储数据此数组元素数大于实际存储的数据以便增加和插入元素它们都允许直接按序号索引元素但是插入元素要涉及数组元素移动等内存操作所以索引数据快而插入数据慢Vector由于使用了synchronized方法(线程安全)通常性能上较ArrayList差而LinkedList使用双向链表实现存储按序号索引数据需要进行前向或后向遍历但是插入数据时只需要记录本项的前后项即可所以插入速度较快。设计个线程其中两个线程每次对j增加另外两个线程对j每次减少。写出程序。以下程序使用内部类实现线程对j增减的时候没有考虑顺序问题。publicclassThreadTest{privateintjpublicstaticvoidmain(Stringargs){ThreadTesttt=newThreadTest()Incinc=ttnewInc()Decdec=ttnewDec()for(inti=i<i){Threadt=newThread(inc)tstart()t=newThread(dec)tstart()}}privatesynchronizedvoidinc(){jSystemoutprintln(ThreadcurrentThread()getName()"inc:"j)}privatesynchronizedvoiddec(){jSystemoutprintln(ThreadcurrentThread()getName()"dec:"j)} classIncimplementsRunnable{publicvoidrun(){for(inti=i<i){inc()}}}classDecimplementsRunnable{publicvoidrun(){for(inti=i<i){dec()}}}}.JSP的内置对象及方法。requestrequest表示HttpServletRequest对象。它包含了有关浏览器请求的信息并且提供了几个用于获取cookie,header,和session数据的有用的方法。responseresponse表示HttpServletResponse对象并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)outout对象是javaxjspJspWriter的一个实例并提供了几个方法使你能用于向浏览器回送输出结果。pageContextpageContext表示一个javaxservletjspPageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API并且包装了通用的servlet相关功能的方法。sessionsession表示一个请求的javaxservlethttpHttpSession对象。Session可以存贮用户的状态信息applicationapplicaton表示一个javaxservleServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息configconfig表示一个javaxservletServletConfig对象。该对象用于存取servlet实例的初始化参数。pagepage表示从该页面产生的一个servlet实例用socket通讯写出客户端和服务器端的通讯要求客户发送数据后能够回显相同的数据。参见课程中socket通讯例子。说出Servlet的生命周期并说出Servlet和CGI的区别。Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法(doGetdoPost)等当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中它通过多线程方式运行其service方法一个实例可以服务于多个请求并且其实例一般不会销毁而CGI对每个请求都产生新的进程服务完成后就销毁所以效率上低于servlet。EJB是基于哪些技术实现的并说出SessionBean和EntityBean的区别StatefulBean和StatelessBean的区别。 .EJB包括(SessionBean,EntityBean)说出他们的生命周期及如何管理事务的? .说出数据连接池的工作机制是什么 同步和异步有和异同在什么情况下分别使用他们?举例说明。 应用服务器有那些? 你所知道的集合类都有哪些?主要方法? 给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T请用JDBC检索出表T的所有数据。 .说出在JSP页面里是怎么分页的页面需要保存以下参数:总行数:根据sql语句得到总行数每页显示行数:设定值当前页数:请求参数页面根据当前页数和每页行数计算出当前页第一行行数定位结果集到此行对结果集取出每页显示行数的行即可。  数据库方面: 存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合涉及特定表或其它对象的任务用户可以调用存储过程而函数通常是数据库已定义的方法它接收参数并返回某种类型的值并且不涉及特定用户表。事务是什么?事务是作为一个逻辑单元执行的一系列操作一个逻辑工作单元必须有四个属性称为ACID(原子性、一致性、隔离性和持久性)属性只有这样才能成为一个事务:原子性事务必须是原子工作单元对于其数据修改要么全都执行要么全都不执行。一致性事务在完成时必须使所有的数据都保持一致状态。在相关数据库中所有规则都必须应用于事务的修改以保持所有数据的完整性。事务结束时所有的内部数据结构(如B树索引或双向链表)都必须是正确的。隔离性由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态要么是另一并发事务修改它之前的状态要么是另一事务修改它之后的状态事务不会查看中间状态的数据。这称为可串行性因为它能够重新装载起始数据并且重播一系列事务以使数据结束时的状态与原始事务执行的状态相同。持久性事务完成之后它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 游标的作用?如何知道游标已经到了最后?游标用于定位结果集的行通过判断全局变量FETCHSTATUS可以判断是否到了最后通常此变量不等于表示出错或到了最后。触发器分为事前触发和事后触发这两种触发有和区别。语句级触发和行级触发有何区别。事前触发器运行于触发事件发生之前而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行而行级触发在触发器所影响的每一行触发一次。视图:是用户查看表中数据的一种方式通过视图可以查看一张表中部分或全部数据而数据仍存放在表中可以将视图比作该表的一个查询窗口。这类视图也可以像表一样进行插入、更新、删除、查询等操作。视图也可以从多张表或视图中派生出来在派生视图时也可以使用各种函数。如果视图是从多张表中派生的或者是派生视图时引用了集合函数则该类视图只能进行查询操作而不能进行插入、更新、删除、查询。使用视图可以方便用户操作提高数据的安全性触发器:也是一组sql或者plsql语句组成完成固定功能的程序单元。当触发器在满足触发条件是自动执行而不需要用户显示调用。触发器不能接受输入输出参数。  中远面试题、面向对象的三个基本特征、方法重载和方法重写的概念和区别、接口和内部类、抽象类的特性、文件读写的基本类**、串行化的注意事项以及如何实现串行化、线程的基本概念、线程的基本状态以及状态之间的关系、线程的同步、如何实现线程的同步、几种常用的数据结构及内部实现原理。、Socket通信(TCP、UDP区别及Java实现方式)**、Java的事件委托机制和垃圾回收机制、JDBC调用数据库的基本步骤**、解析XML文件的几种方式和区别、Java四种基本权限的定义、Java的国际化二、JSP、至少要能说出个隐含对象以及他们的区别**、forward和redirect的区别、JSP的常用指令三、servlet、什么情况下调用doGet()和doPost()?、servlet的init()方法和service()方法的区别、servlet的生命周期、如何现实servlet的单线程模式、servlet的配置、四种会话跟踪技术四、EJB**、EJB容器提供的服务主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。、EJB的角色和三个对象EJB角色主要包括Bean开发者应用组装者部署者系统管理员EJB容器提供者EJB服务器提供者三个对象是Remote(Local)接口、Home(LocalHome)接口Bean类、EJB的几种类型会话(Session)Bean实体(Entity)Bean消息驱动的(MessageDriven)Bean会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种、bean实例的生命周期对于StatelessSessionBean、EntityBean、MessageDrivenBean一般存在缓冲池管理而对于EntityBean和StatefullSessionBean存在Cache管理通常包含创建实例设置上下文、创建EJBObject(create)、业务方法调用、remove等过程对于存在缓冲池管理的Bean在create之后实例并不从内存清除而是采用缓冲池调度机制不断重用实例而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。、激活机制以StatefullSessionBean为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量根据MRU或NRU算法实例在激活和去激活状态之间迁移激活机制是当客户端调用某个EJB实例业务方法时如果对应EJBObject发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。、remote接口和home接口主要作用remote接口定义了业务方法用于EJB客户端调用业务方法home接口是EJB工厂用于创建和移除查找EJB实例、客服端调用EJB对象的几个基本步骤一、设置JNDI服务工厂以及JNDI服务地址系统属性二、查找Home接口三、从Home接口调用Create方法创建Remote接口四、通过Remote接口调用其业务方法五、数据库、存储过程的编写、基本的SQL语句六、weblogic、如何给weblogic指定大小的内存在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName)增加setMEMARGS=XmsmXmxm可以调整最小内存为M最大M、如何设定的weblogic的热启动模式(开发模式)与产品发布模式可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件增加setPRODUCTIONMODE=true。、如何启动时不需输入用户名与密码修改服务启动文件增加WLSUSER和WLSPW项。也可以在bootproperties文件中增加加密过的用户名和密码、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中保存在此Domain的configxml文件中它是服务器的核心配置文件。、说说weblogic中一个Domain的缺省目录结构比如要将一个简单的helloWorldjsp放入何目录下,然的在浏览器上就可打入http:主机:端口号hellowordjsp就可以看到运行结果了又比如这其中用到了一个自己写的javaBean该如何办Domain目录服务器目录applications将应用目录放在此目录下将可以作为应用访问如果是Web应用应用目录需要满足Web应用目录要求jsp文件可以直接放在应用目录中Javabean需要放在应用目录的WEBINF目录的classes目录中设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。、如何查看在weblogic中已经发布的EJB可以使用管理控制台在它的Deployment中可以查看所有已发布的EJB、如何在weblogic中进行ssl配置与客户端的认证配置或说说jee(标准)进行ssl的配置缺省安装中使用DemoIdentityjks和DemoTrustjksKeyStore实现SSL需要配置服务器使用EnableSSL配置其端口在产品模式下需要从CA获取私有密钥和数字证书创建identity和trustkeystore装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。、在weblogic中发布ejb需涉及到哪些配置文件不同类型的EJB涉及的配置文件不同都涉及到的配置文件包括ejbjarxml,weblogicejbjarxmlCMP实体Bean一般还需要weblogiccmprdbmsjarxml、EJB需直接实现它的业务接口或Home接口吗,请简述理由远程接口和Home接口不需要直接实现他们的实现代码是由服务器产生的程序运行中对应实现类会作为对应接口类型的实例被使用。、说说在weblogic中开发消息Bean时的persistent与nonpersisten的差别persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来而non-persistent方式的消息将被丢弃。、说说你所熟悉或听说过的jee中的几种常用模式及对设计模式的一些看法SessionFacadePattern:使用SessionBean访问EntityBeanMessageFacadePattern:实现异步调用EJBCommandPattern:使用CommandJavaBeans取代SessionBean实现轻量级访问DataTransferObjectFactory:通过DTOFactory简化EntityBean数据提供特性GenericAttributeAccess:通过AttibuteAccess接口简化EntityBean数据提供特性BusinessInterface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂项目队伍越庞大则越能体现良好设计的重要

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/37

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利