面试题全部4存储过程中怎样设置触发器_第1页
面试题全部4存储过程中怎样设置触发器_第2页
面试题全部4存储过程中怎样设置触发器_第3页
面试题全部4存储过程中怎样设置触发器_第4页
面试题全部4存储过程中怎样设置触发器_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

jspservletB/SC/SServletfilter两个tomcat共个机文件内容,也可以修改原文件内容SAX解析SAX处理的优点非常类似于流的优点。分析能够立即开始,而不是等待所有的数据被处理。SAX解析器采用了基于的模型,它在解析XML文档的时候可以触发一系列的,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的已经找到。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据在内存中。这对于大型文档来说是个巨大的优点线性解析,不能随机,也无法修改原文件JDOM解析 JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快.JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。DOM4j解析 DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。1Servlet2、请求经过系列的过滤器,FilterDispatcher3、ActionMapperAction,FilterDispatcherAction4、Action通过ConfigurationManager询问框架的配置文件找到需要调Action5、Action创建一个ActionInvocation实6、ActionInvocationAction的execute7、ActionActionInvocationstruts.xml3oracleDELETEfrom表WHERE(id)IN(SELECTidFROM表 GROUPBYidHAVINGCOUNT(id)>1)ANDROWIDNOTIN(SELECTMIN(ROWID)FROM表 GROUPBYidHAVINGCOUNT(*)>1);实现方式共有两种:编码方式;式事务管理方式XML法上进行@TransactionalgeementById,geementsByName,struts2jarJSPspringjarstruts2-spriong-plugin.jar9(1)WebRoot\pages\User因为spring中的bean的id配置的 <bean(2)JSPaction<formaction="<%=path%>/user_regist.action"10(1)hibernatejar(2)增添pojo3)增加User.hbm.xmlhibernatespringapplicationContext.xmlhibernate如果数据库中创建表,则表示配置成service和在action中调用 增加和内springServletServletServletServletServlet阶段:类装载及实例创建阶段、实例初始化阶段、服务阶段以及实例销毁阶段。9session区1、数据存放在客户的浏览器上,session数据放在服务器上2、不是很安全,别人可以分析存放在本地的并进行session3、session会在一定时间内保存在服务器上。当增多,会比较占用你服务器的考虑到减轻服务器性能方面,应当使用4、单个在客户端的限制是3K,就是说一个站点在客户端存放的3K。5其他信息如果需要保留,可以放在ExtJSAjaxjavascriptwebExtJSRIAAJAX应用,是一个与技术无关的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Phpjava12、企业数据支持:XML、XMLDTD、XSL、SAX、DOM、JAXP RML、WEB服务通信等等内容4、常见的企业服务:命名服务 服务、服务、web服务查找JDNI、CORBA名称、LDAP DSML、JINI、JTA、JTS、JMS JAXM5web:webwebjava小服务、javawebservice6、企业应用程序支持7、javaEEWebService的、专门的第软件或硬件,就可相互交换数据或集成。依据WebService规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。14springaopiocAOPclassAOP15Struts2Strtus23FilterDispatcherActionFilterDispatcher78. HibernateJDBCORMDAOhibernateJava1.spring一、CoreJava:1—951—24基础及语法:1—61—页异常:62—6913页集合:70—8015页线程:81—9018—21IO&Socket:91—9521—24二、OOAD&UML:96—10124—25三、XML:102—10526—29四、SQL:106—10929—31五、JDBC&Hibernate:110—12131—35六、Web:122—16135—44七、EJB&Spring:162—17944—47八、数据结构&算法&计算机基础:180—18747—51九、C++:188—20151—55十、Weblogic及其它(附加部分)1——1355—57一、CoreJava部分:(95914道基础及语法部分:(61601道1、面向对象的特征有哪些方面?【基础】装封是过据围来对据的只过定的面面对计始这2public,private,protected,以及不写时的区别?【基础】 同包子孙 √protected × × ×3、String是最基本的数据类型吗?【基础】4、float型floatf=3.4答:不正确;精度确,应该用强制类型转换,如下所示:floatf=(float)3.4答:不能;应该用强制类型转换,如下所示:floatf=(float)1.3;。6、shorts1=1;s1=s1+1;有什么错?shorts11;s11;有什么错?【基础】答:shorts11;s1s11;s1+1int型,需要强制转换类型;shorts11;17、Javagoto?答:gotojavajava8、intInteger有什么区别?答:Java提供两种不同的类型 intjava的原始数据类型,Integerjava为intJava为每个原始类型提供了封装类:封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double类型和原始类型的行为完全不同,并且它们具有不同的语义。类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构,当类型和原始类型用作某个类的实例数据时所指定的缺省值。对象实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有b.逻辑操作不会产生短路。11、heap和stack有什么区别?【基础】12、Math.round(11.5)等于多少?Math.round(-11.5)等于多少?【基础】答:Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数,参1/2后求其floor。13、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?【基答:switch(expr1)中,expr1switch和caseint、short、char或者byte。long,string都不能作用于swtich。142乘以8等於几?【基础】答:2<<3。15length(String有没有length(lengthlength的属性。String有length()这个方法。16JAVA中,如何跳出当前的多重嵌套循环?【基础】label标识,然后用break:label17Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写OverridingOverloading。18、两个对象值相同(x.equals(y)truehashcode,这句话对不对?【基答:不对,有相同的hashcode19String类?【基础】答:Stringfinal类,故不可以继承。20true的有:B:“beijing”.equalsIgnoreCase(newString(“beijing”));【基础】答:A和B。结果,那么这里到底是值传递还是传递?【基础】答:是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的。对象的内容可以在被调用的方法中改变,但对象的是不会改变22webiso8859-1答:publicStringtranslate(Stringstr){StringtempStr="";tempStr=newString(str.getBytes("ISO-8859-1"),"GBK");tempStr=tempStr.trim();}catch(Exceptione){}return}23、StringStringBuffer的区别?答:JAVA平台提供了两个类:String和StringBuffer,它们可以和操作字符串,即包含多个字符的字符数据。这个StringStringBuffer类提供的字StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。24、String,StringBufferStringBuilder的区别。【基础】答:String的长度是不可变的;StringBuffer的长度是可变的,如果你对字符串中的内容经常进StringBufferString,那么使用StringBuffer的toString()方法;线程安全;StringBuilder是从JDK5开始,为StringBufferStringBuilder类,因为它25、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?【基础】答:方法的重写OverridingOverloadingJavaOverridingOverloading是一个类中多态性的一种表现。(Overloading)。Overloaded的方法是可以改变返回值的类型。26A和类BclassA{inta=1;doubled=2.0;voidshow(){System.out.println("ClassA:a="+a}}classBextendsA{floata=3.0f;Stringd="Javaprogram.";voidshow(){super.show(System.out.println("ClassB:a="+a}}mainAa=newA();main方法中定义类B的对象b:Ab=newB();ClassA:a=1d=2.0ClassA:a=1ClassB:a=3.0d=Javaprogram27JVM加载class文件的原理机制?答:JVMClassLoader和它的子类来实现的,JavaClassLoaderJava28、charjava中以unicode编码,一个char占1629 class和interface有什么区别?【基础答:方法的存在而不去实现它的类被叫做抽象类( class),它用于要创建一现某些基本行为的类,并为该类方法,但不能在该类中实现该类的情况。不能创建 象的,所有成员变量都是publicstaticfinal的。一个类可以实现多个接口,当类实现特殊接口时,法。由于有抽象类,它允许使用接口名作为变量的类型。通常的动态联编将生效。可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。30、StaticNestedClassInnerClass的不同?【基础】答:StaticNestedClass是被为静态(static)的内部类,它可以不依赖于外部类实例被实31、javaGC回收,导致耗费内存资源。 的method是否可同时是static,是否可同时是native,是否可同时是synchronized?【基础】答:静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接;而实例变量34staticstatic方法的调用?【基础】method(),不能保证对象初始化。答:Clone有缺省行为:super.clone(),他负责产生正确大小的空间,并逐位36、GC是什么?GC?答:GC是收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。Java程序员不用担心内存管理,因为收集器会自动进行管理。要请求收集,可以调用下面的方法之一:System.gcRuntime.getRuntime().gc()。37、回收的优点和原理。并考虑2种回收机制。【基础答:Java语言中一个显著的特点就是引入了回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个回收机制,Java中的对象不再有“作用域”的概念,只有对象的才有“作用域”。回收可以有效的防止内存,有效的使用可以使用的内存。回收器通常是作为一个单独的低级别的线程运行,不可预知的收器对某个对象或所有对象进行回收。回收机制有分代回收和标记回收,增量回答:对于GC来说,当程序员创建对象时,GC就开始这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gcGC运行,但是Java语言规范并不保证GC一定会执39、Strings=newString(“xyzStringObject?【基础】答:两个对象,一个是"xyx",一个是指向"xyx"的对象s。40、接口是否可继承接口?抽象类是否可实现(implements(concreteclass)?41、Java的接口和CJava不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属publicstaticpublic.一个类可以实现多个接口。435个。【基础】答:常用的类:BufferedReaderBufferedWriterFileReaderFileWirterStringInteger;常用的包:java.langjava.awtjava.iojava.utiljava.sql;常用的接口:RemoteListMap44、AnonymousInnerClass(内部类)是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)?【基础】swing编程中常用此方式。45、内部类可以他包含类的成员吗?有没有什么限制?【基础】答:一个内部类对象可以创建它的外部类对象的内容。46、java答:方法的覆盖OverridingOverloadingjavaOverridingOverloading47、在java中一个类被为final类型,表示了什么意思?【基础】48、下面哪些类可以被继承?【基础】1)java.lang.Thread(T)2)java.lang.Number(T)3)java.lang.Double(F)4)java.lang.Math(F)5)java.lang.Void(F)6)java.lang.Class(F)7)java.lang.ClassLoader(T)答:1、2、749 下面程序的运行结果:【基础classA{}publicA(){}}classBextendsA{}publicB(){}}publicclasspublicstaticvoidmain(String[]AabnewB();//执行到此处,结果:1a2babnewB();}}1a2b2bstatic代码段,可以看作是类首次加载(虚拟机加载)执行的代码,而packagepublicclassFatherClass{publicFatherClass(){System.out.println("FatherClass}}packageimportpublicclassChildClassextendsFatherClass{publicChildClass(){System.out.println("ChildClassCreate");}publicstaticvoidmain(String[]args){FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}FatherClassCreateFatherClassChildClass51、内部类的实现方式?【基础】packagepublicclassOuterClass{privateclassInterClass{publicInterClass(){System.out.println("InterClass}}publicOuterClass()InterClassic=newInterClass();System.out.println("OuterClass}publicstaticvoidmain(String[]args){OuterClassoc=newOuterClass();}}InterClassCreateOuterClass52、关于内部类:【基础】publicclassOuterClassprivatedoubled1=//insertcode}Youneedtoinsertaninnerclassdeclarationatline3,Whichtwoinnerclassdeclarationsarevalid?(Choosetwo.)classpublicstaticdoublemethoda(){return}publicclassstaticdoublemethoda(){return}privateclassInnerOne{doublemethoda(){returnd1;}}staticclassprotecteddoublemethoda(){return}classInnerOne{ doublemethoda();}答:答案为C、E静态内部类可以有静态成员,而非静态内部类则不能有静态成员;故A、BD非静态内部类的非静态成员可以外部类的非静态变量;故C正确如何取小数点前两位并四舍五入?【基础】答:1parse***(StringvalueOf(String)即可返回相应基本类String类中valueOftoString()方法获得相应字符串;java.math.BigDecimal对象,再利用其round()方法进行四舍五入到保留小数StringBuffer对象,然后调用StringBuffer中的reverse符串的反转,调用rece方法即可实现字符串的替换。55GB2312ISO-8859-1编码的字符串?【基础】Strings1Strings2=newString(s1.getBytes("GB2312"),"ISO-8859-publicString[]split(Stringstr,intchars){intn=(str.length()+chars-1)/chars;Stringret[]=newString[n];for(inti=0;i<n;i++){if(i<n-1){ret[i]=str.substring(i*chars,ret[i]=}}return}57、写一个函数,2个参数,1个字符串,1个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码:如(“ABC”,4)AB”,输入(“ABCDEF”,6)应该输出为ABCABC+汉的半个”。【基础】publicStringsubString(Stringstr,intsubBytes)intbytes=0;//用来字符串的总字节数for(inti=0;i<str.length();i++){if(bytes==subBytes){returnstr.substring(0,}charc=str.charAt(i);if(c<256){bytes1;//}elsebytes2;2if(bytes-subBytes==1){returnstr.substring(0,}}}return}1970年到现在的毫秒数?答:1java.util.Calendar实例(Calendar.getInstance())get()方法传入不同的参Calendartime=Calendar.getInstance();4)java.text.DataFormat类中的format()方法可将日期格式化。59、Java编程,打印昨天的当前时刻。【基础】答:publicclassYesterdayCurrent{publicstaticvoidmain(String[]args){Calendarcal=Calendar.getInstance();cal.add(Calendar.DATE,-1);}}60、java和javasciprt的区别。【基础】答:JavaScript与Java是两个公司开发的不同的两个产品。Java是SUN公司推出的新一代面Internet应用程序开发;而JavaScript是Netscape公司的产NetscapeNavigatorWeb页面中的基于对象和LiveScriptJavaOak语言。下面对两种语言间的异同基于对象和面向对象:Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象;JavaScript是种语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(ObjectBased)和驱动(EventDriver)的编程语言。因而它本身提供了非常丰富的内解释和编译:Java的源代码在执行之前,必须经过编译;JavaScript是一种解释性编程语强类型变量和类型弱变量:Java采用强类型变量检查,即所有变量在编译之前必须作;JavaScript中变量,采用其弱类型。即变量在使用前不需作,而是解释器在运行时检查其数据答:ssetio,asertonaertinssetionrualstioerrr。assert(a>0);//throwsanAssertionerrorifa<=assertExpression1assertExpression1:Expression2Expression1Expression2可以是得出一个值的任意表达式;这个值用于生成显示调试信息的String消source1.4javac-source1.4要在运行时启用断言,可使用-enableassertions或者-ea标记。要在运行时选择禁用断言,可使用-da或者-disableassertions标记。要在系统类中启用断言,可使用-esa或者-dsa标记。还可以在包的基础上启用或者禁用断言。可异常部分:(88道62、Java答:当JAVA程序了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。2JAVA类库内置的语义检查。例如数组下标越界,会IndexOutOfBoundception;null的对象时会NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并在何时用throw关键字java.lang.Thowable的子类。63、errorexception有什么区别?答:error表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;exception表示需要捕捉或者需要程序64、tryreturn语句,那么紧跟在这个try后的finallycodereturn前还是后?【基础】答:会执行,在return65、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finallytry块中可以抛出异常吗?【基础】答:Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。JavaThrowable类或其它子类的实例。当一个方法出现异常后便Java的异常处理是通过5个来实现的:try、catch、throw、throws和finally。一般情况下try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理;try用来指定一块预防所有“异常”的程序;catch子句紧跟在try块后面,用来指定你想要捕捉的“异常”的类型;throw语句用来明确地抛出一个“异常”;throws用来标明一个成员函数可能抛出的各种“异常”;Finally为确保一try语句,在try语句保护其他代码。每当遇到一个try语句,“异常”的框架就放到trytry语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。的异常,是一种常见运行错误。java编译器要求方法必须抛出可能发生的非运行时异常,但是并不要求必须抛出未获的运行时异常。答:ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundception,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException68、final,finally,finalize的区别?答:final:修饰符(关键字);如果一个类被为final,意味着它不能再派生出新的子类,不能作为父类被继承,因此一个类不能既被为的,又被为final的;将变量或方法声明为final,可以保证它们在使用中不被改变;被为final的变量必须在时给定初值,而在以后的中只能,不可修改;被为final的方法也同样只能使用,不能重载。finally:再异finallycatch子句就会执finally块(如果有的话)。finalize:方法名;Java技术允许使用finalize()方法在收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由收集器在确定这个对象没有被时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在69ExampleA继承ExceptionExampleB继承ExampleA;【基础】thrownew}catch(ExampleAe){}catch(Exceptione){}A:ExampleAB:ExceptionC:bD:无答:输出为A。集合部分:(1111道70JAVA中的CollectionFrameWork(及如何写自己的数据结构)【基础】答:CollectionFrameWork如下:│CollectionCollectionObjectCollection(Elements);Mapkeyvalue71、List,Set,MapCollection接口?【基础】答:List,Set是;Map不是。ListMap。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、和操作任何类型对象的元素列表。List适用于按数值索引元素的情形。Map提供了一个更通用的元素方法。Map集合类用于元素对(称作“键”和“值”),其73、说出ArrayList,Vector,LinkedList的性能和特性?【基础答:ArrayList和Vector都是使用数组方式数据,此数组元素数大于实际的数据以便增引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现,按序号索引数据需要进行前向或后向遍历,但74、Collection和Collections的区别?【基础】答:Collection是java.utilSet和List;Collections是个java.util下的类,是针对集合的帮助类,提供一系列静态方法实现75、HashMap和Hashtable的区别?MapHashMapnull键和多个nullHashtableHashMapHashtablecontains方法去掉了,改成containsvaluecontainsKey,因为contains方法容易让人引起误解;HashtableDictionary类,HashMapJava1.2MapHashtable的方法是Synchronize的,而HashMap不是,在多个线程Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法大致一样,所以性能不会有很大的差异。76、ArraylistVector区别?【基础】答:就ArrayList与Vector同步性:Vector是线程安全的(同步)ArrayList是线程序不安全的;数据增长:当需要增长时,VectorArrayList77、List、Map、Set答:List以特定次序来持有元素,可有重复元素。Set无法拥有重复元素,内部排序。Mapkey-value值,value78、Setequals()?它们有何区别?【基础】答:Setequalsequals()方法用来判断对象的内容是否相同,而”==”判断地址是否相等,用来决定值是否指向同一对象。79101-10packageimportjava.util.ArrayList;importjava.util.Collections;importjava.util.I importjava.util.List;importjava.util.Random;publicclassRandomSortpublicstaticvoidprintRandomBySort()RandomrandomnewRandom();Listlist=new10list中for(inti=0;i<10;i++){}Collections.sort(listItorit=list.itor();intcount=0;while(it.hasNextSystem.out.println(++count+":"+}}publicstaticvoidmain(String[]args){}}80JAVA实现一种排序,JAVA类实现序列化的方法?在COLLECTION框架中,实现比较要packagetest;importjava.util.*;classInsertSort{ArrayListpublicInsertSort(intnum,intmod){al=newArrayList(num);Randomrand=newRandom();System.out.println("TheArrayListSortBefore:");for(inti=0;i<num;i++){al.add(newInteger(Math.abs(rand.nextInt())%mod+}}publicvoidSortIt(){intfor(inti=1;i<al.size();i++){tempInt=(Integer)al.remove(i);if(tempIValue()>=for(intj=0;j<MaxSize;j++if}}}}System.out.println("TheArrayListSortAfter:");for(inti=0;i<al.size();i++){}}publicstaticvoidmain(String[]args){InsertSortis=newInsertSort(10,100);}}JAVA类实现序例化的方法是实现java.io.Serializable接口;Collection框架中实现比较要Comparable接口和Comparator接口。线程部分:(1073道81、sleep()wait()有什么区别?答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象notify方法(notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。82synchronized方法后,其它线程是否可进入此对象的其它方法?【基础】答:waitlock;sleep():使一个正在运行的InterruptedException异常;notify():唤醒JVM确定唤醒哪个线程,而且不是按优先级;84Thread类与实现Runnable接口,同步的实现方面有两种,分别是synchronized,wait与notify。答:如果数据将程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一就是程序本身;Java中的线程有四种状态分别是:运行、就绪、挂起、结束。88synchronized和java.util.concurrent.locks.Lock的异同?【中等难度】答:主要相同点:Lock能完成synchronized所实现的所有功能;主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronizedLock一定要求程finally从句中释放。89、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stopsuspend()方法hredRnnaesynhroized步法;使用stp(,因它安。会除线获的有定而如对处于nd(susend定此,他何程不能锁的源除“起的程复行对何程来nd(,应自己的Thrad类置个志,线应活还挂。标志线应该起便用wat(命进等状。标志线应恢,用一个otiy(重启线。904个线程,其中两个线程每次对j增加1,另两个线程对j每次减少1答:以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题:publicclassTestThread{privateintj;publicTestThread(intj){this.j=j;}privatesynchronizedvoidinc(){System.out.println(j+"--Inc--"+}privatesynchronizedvoiddec(){System.out.println(j+"--Dec--"+}publicvoidrun(){(newnewThread(newInc()).start();(newDec()).start();newThread(new}classDecextendsThread{publicvoidrun(){for(inti=0;i<100;i++){}}}classIncimplementsRunnable{publicvoidrun(){for(inti=0;i<100;}}}publicstaticvoidmain(String[]args){(newTestThread(5)).run();}}IOSocket部分:(55道91java序列化,如何实现java序列化?【基础】作时所的问题;序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStreamObjectOutputStreamObjectOutputStream对writeObject(Objectobjobj的对象写出(即保存其状态),要恢复的话则用92、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别InputStream、OutputStreamReader、Writer。java.io包中还有许多其他的流,主要是为了提高性能和使用方便。 Filefile=newFile("e:\\总结");File[]files=file.listFiles();for(inti=0;i<files.length;i++){if(files[i].isFile())}Filefile=newFile("e:\\总结");File[]files=file.listFiles();for(inti=0;i<files.length;i++){if(files[i].isDirectory())}File对象,调用其exsit()方法即可返回是否存在,如:System.out.println(newFile("d:\\t.txt").exists());FileInputStreamfin=newFileInputStream("e:\\tt.txt");byte[]bs=newbyte[100];intlen=fin.read(bs);if(len<=0)break;System.out.print(new}FileWriterfw=newfw.write("oworld!"+System.getProperty("line.separator"));publicintcountWords(Stringfile,Stringfind)throws{intcount=Readerin=newFileReader(file);intc;while((c=in.read())!=-1){while(c==find.charAt(0)){for(inti=1;i<find.length();i++){c=in.read();if(c!=find.charAt(i))if(i==find.length()-1)}}}return}95、JavaJAVASOCKET编程,读服务器几个字符,再写入本地答:Server端程序:packagetest;import.*;importjava.io.*;publicclassServer{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){tryss=newServerSocket(10000);socket=StringRemoteIPStringRemotePort=":"+socket.getLocalPort();System.out.println("Acomein!IP:"+in=newBufferedReader(newStringline=in.readLine();System.out.println("Cleintsendis:"+line);out=newPrintWriter(socket.getOutputStream(),true);out.println("YourMessageReceived!");}}catch(IOExceptione){}}publicstaticvoidmain(String[]args){newServer();}}端程序:packagetest;importjava.io.*;.*;publicclass{Socketsocket;BufferedReaderin;PrintWriterout;public(){trySystem.out.println("TrytoConnecttosocket=newSystem.out.println("TheServerConnected!");System.out.println("PleaseentersomeCharacter:");BufferedReaderline=newBufferedReader(newout=newPrintWriter(socket.getOutputStream(),true);in=newnewInputStreamReader(socket.getInputStream()));}catch(IOExceptione){}}publicstaticvoidmain(String[]args){new();}}二、OOA/DUML部分:(624道96、UML答:UML97、编程题:写一个Singleton出来。【基础】答:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。举例:定义一个类,它的构造函数为private的,它有一个staticprivate的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的,继而调用其中的方法。publicclassSingleton{privateSingleton(){}privatestaticSingletoninstance=newSingleton();publicstaticSingletongetInstance(){return}}publicclassSingletonprivatestaticSingletoninstance=publicstaticsynchronizedSingletongetInstance(){if(instance==null)instance=newSingleton();returninstance;}}private的,所有方法为static的。一般认为第一种 的j2ee中的几种常用模式?及对设计模式的一些看法。【中等难度答:SessionFacadePattern:使用SessionBeanEntityBean;MessageFacadePattern:实现异步调用;EJBCommandPattern:使用CommandJavaBeans取代SessionBean,实现轻量级;DataTransferObjectFactoryDTOFactory简化EntityBean数据提供特性;GenericAttributeAccessAttibuteAccess接口简化EntityBeanBusinessInterface:通过(本地)接口和Bean类实现相同接口规范业务逻辑一致性;EJB架构的设计好坏将直接影响系统的性能、可扩展性、可性、组件可99、Java答:Java23种设计模式:Factory(工厂模式),Builder(式),Factory 式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰模式),Flyweight(享元模式),(模式),Command(命令模式),Interpreter(解释器模式),Visitor(者模式),I 式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),TemteMethod(模板方法模式),ChainOfResponsibleity(责100通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式,用来开发JSP/Servlet或者J2EE的相关应用;及简单工厂模式等。三、XML部分:(4112道102、XMLXML文档有哪几种方式?【基础】答:1)两种形式:dtd以及schema;本质区别:schemaxml的,可以被XML解析器解析(这也是从DTDschema的DOM,SAX,STAXDOMDOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机;SAX:不同于DOM,SAX是驱动型的XML解析方式。它顺序XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者开头与结束时,它会触发一个,用户通过在其回调中写入处理代码来处理XML文件,适合对XML的顺序;STAX:StreamingAPIforXMLStAX103xml技术的哪些方面?如何实现的?答:用到了数据存贮,信息配置两方面。在做数据交换,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收与解压缩后再同XML文件中还XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。104jdom解析xml文件时如何解决中文问题?如何解析?【较难】packagetest;importjava.io.*;publicclassprivateStringinFile="c:\people.xml";privateStringoutFile="c:\people.xml";publicstaticvoidmain(Stringargs[]){newDOMTest();}publicjavax.xml.parsers.Builderbuilder=org.w3c.dom.doc=builder.new();org.w3c.dom.Elementrootdoc.createElement("老师");org.w3c.dom.Elementwang=doc.createElement("王");org.w3c.dom.Elementliu=doc.createElement("刘");javax.xml.transform.Transformertransformer=javax.xml.transform.OutputKeys.INDENT,"yes");new}catch(Exceptione){System.out.println(e.getMessage());}}}105JAVAXML的方式。【较难】答:用SAX方式解析XML,XML文件如下:<?xmlversion="1.0" <name>< </<notes>男,1955年生,博士,95年调入海南大学 回调类SAXHandler.javaimportimportjava.util.Hashtable;importorg.xml.sax.*;publicclassSAXHandlerextendsHandlerBase{privateHashtabletable=newHashtable();privateStringcurrenement=null;privateStringcurrentValue=null;publicvoidsetTable(Hashtabletable){this.table=table;}publicHashtablegetTable(){returntable;}publicvoidstarement(Stringtag,Attribuistattrs)throwsSAXException{currenement=}publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{currentValue=newString(ch,start,}publicvoidendElement(Stringname)throwsSAXException{if(currenement.equals(name))table.put(currenement,currentValue);}}JSP内容显示源码<TITLEXML<%@pagecontentType="text/html;charset=GB2312"<%@pageimport="java.io.*"<%@pageimport="java.util.Hashtable"<%@pageimport="org.w3c.dom.*"<%@pageimport="org.xml.sax.*"<%@pageimport="javax.xml.parsers.SAXParserFactory"<%@pageimport="javax.xml.parsers.SAXParser"<%@pageimport="SAXHandler"Filefile=newFile("c:\people.xml");FileReaderreader=newFileReader(file);Parserparser;SAXParserFactoryspf=SAXParserFactory.newInstance();SAXParsersp=spf.newSAXParser();SAXHandlerhandler=newSAXHandler();sp.parse(newInputSource(reader),handler);HashtablehashTable=handler.getTable();out.println("<TABLEBORDER=2><CAPTION>"+out.println("<TR><TD></TD>"+"<TD>"+(String)hashTable.get(newString("name"))out.println("<TR><TD>学院</TDTD>"(String)hashTable.get(new </TD>"+"<TD>"+(String)hashTable.get(newString("ephone"))+out.println("<TR><TD>备注</TDTD>"(String)hashTable.get(new+SQL部分:(431道1063个表(15分钟)Student学生表(学号,,,,组织部门)Course课程表(编号,课程名称)Sc选课表(学号,课程编号,成绩)写一个SQL语句,查询选修了’计算机原理’的学生学号和(3分钟写一个SQL语句,查询’’同学选修了的课程名字(3分钟写一个SQL语句,查询选修了5门课程的学生学号和(9分钟)答:1)SQL语句如下:selectstu.sno,stu.snamefromStudentwhere(selectcount(*fromscwheresno=stu.snoandcno(selectcnofromCoursewherecname='计算机原理'))!=0;2)SQL语句如下:selectcnamefromwherecnoin(selectcnofromscwheresno=(selectsnofromStudentwheresname=''));3)SQL语句如下:selectstu.sno,stu.snamefromstudentwhere(selectcount(*)fromscwheresno=stu.sno)=107SCSC,学生可以选修多门课程,一门课程可以被多个学生选SC表关联。【基础】SQLSQL5门以上的课程的学生。答:1)建表语句如下(mysql数据库):createtables(idintegerprimarykey,namevarchar(20));createtablec(idintegerprimarykey,namevarchar(20));createtablesc(sidintegerreferencess(id),cidintegerreferencesc(id),primarykey(sid,cid)2)SQLselectstu.id,fromswhere(selectcount(*)fromscwhere(selectcount(*fromc);3)SQL语句如下:selectstu.id,fromswhere(selectcount(*fromscwheresid=stu.id)>=5;IDNAMEAGEMANAGER106A30109B19104C20107D35112E25119F45要求:列出所有比所属主管大的人的ID和名字?答:SQL语句如下:selectfromtestwhereemployee.age>(selectmanager.agefromtestmanagerwheremanager.id=employee.manager);city:表state:CityNoCityNameStateNoBJ(Null)SHGZ广州GDDL大连LN到如下结果:NoCityNameStateNoStateName(Null)(Null)LN广州GD(Null)(Null)写相SQL语句。答:SQLSELECTC.CITYNO,C.CITYNAME,C.STATENO,S.STATENAMEFROMCITYC,STATESWHEREC.STATENO=S.STATENO(+)ORDERBY(C.CITYNO);五、JDBCHibernate:(12102道110100用户同时来访,要采取什么技术解决?【基础】答:对象关系映射(Object—RelationalMap,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种112、Hibernate有哪5个接口?【基础答:Configuration接口:配置HibernatehibernateSessionFactory对象;SessionFactory接口:初始化Hibernate,充当数据源的,创建session对象,sessionFactory是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;Session接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同session,是轻量级、一级缓存;Transaction接口:管理事务;Query和Criteria接口:执行113hibernate:在hibernate中,在配置文件呈标题一对多,多对多的是什么;2)Hibernate的二级缓存是什么;3)Hibernate是如何处理事务的;答:1)一对多的为<one-to-many>;多对多的为<many-to-sessionFactoryhibernateHibernate的事务实际上是底层的JDBCTransaction的封装或者是JTATransactionJDBCTransaction。GDLNSDNMG内114、Hibernate的应用(Hibernate的结构)?【基础】SessionFactory的对象SessionFactorysessionFactory=newConfiguration().configure().sessionSessionsession=TransactionTransactiontx=session.save(useruserUser类的对象session.delete(user);//删除session.update(user);Queryquerysession.createQuery(“fromUserListlist=query.list();session,释放资源session答:MSSQLServerconn=DriverManager.getConnection(“jdbc:conn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:sid”,uid,pwd);conn=DriverManager.getConnection(“jdbc:mysql答:Connection类中提供了3个事务处理方法:mit(Booleanmit):设置是否自动提交事务,默认为自动提交事务,即为true,通过设置false自动提交事务;commit():提交118、Java中数据库的步骤?Statement和PreparedStatement之间的区别答:Java中数据库的步骤如下1)驱动3)Statement;4)sql语句处理结果集(sql语句为查询语句PreparedStatementSQL语句,通常用于执行多次结构相同的SQL语句。119、用你熟悉的语言写接ORACLE数据库的程序,能够完成修改和查询工作。【基础】答:JDBC示例程序如下:publicvoidtestJdbc(){Connectioncon=null;PreparedStatementps=null;ResultSetrs=null;//step1:驱动//step2:获取数据库连接;//step3:创建Stringsql="SELECTid,fname,lname,age,FROMps=//step4rs=//step5whileSystem.out.print("id="+rs.getLong("id"));System.out.print(",fname="+35页共59页System.out.printlnameSystem.out.print(",age="+}/************************JDBC修改*********************/sql="UPDATE_TblSETage=23WHEREid=?";ps=con.prepareStatement(sql);ps.setLong(1,88);introws=ps.executeUpdate();System.out.println(rows+"rowsaffected.");}catch(Exceptione){}finally{con.close}catch(Exceptione1)}}}120、JDBC,Hibernate分页怎样实现?【中等难度】HibernateQueryquery=session.createQuery("fromStudent");Collectionstudents=query.list();JDBCsql例如:Oracle中的sql语句为:"SELECT*FROM(SELECTa.*,rownumrFROMTB_STUDENT)WHERErbetween2and10"查询从记录号2到记录号10之间的所有记录121ORACLEID方法,还有是三层嵌套方法。【中等intintStringpages=request.getParameter("page");intcurrentPage=1;currentPage=(pages==null)?(1):{Integer.parseInt(pages)}sql="

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论