java面试笔试题.pdf

上传人:无*** 文档编号:90863806 上传时间:2023-05-18 格式:PDF 页数:87 大小:10.76MB
返回 下载 相关 举报
java面试笔试题.pdf_第1页
第1页 / 共87页
java面试笔试题.pdf_第2页
第2页 / 共87页
点击查看更多>>
资源描述

《java面试笔试题.pdf》由会员分享,可在线阅读,更多相关《java面试笔试题.pdf(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一,淡谈final,finally,fin a liz e 的区别。(最常被问至Df i n a l 修饰符(关键字)如果一个类被声明为f i n a l,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为a b s tr a c t,又被声明为f i n a l。将变量或方法声明为f in a l,可以保证它们在使用中不被改变。其初始化可以在两个地方:一是其定义处,也就是说在f i n a l 变量定义时直接给其赋值;二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值,而在以后的引用中只

2、能读取,不可修改。被声明为f i n a l 的方法也同样只能使用,不能重写(o v e r r id e)。f in a lly在异常处理时提供f i n a l l y 块来执行任何清除操作。如果抛出一个异常,那么相匹配的c a tc h 子句就会执行,然后控制就会进入f i n a l l y 块(如 果 有 的 话)。f in a liz e方法名。J a v a 技术允许使用f in a liz e ()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作o这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在O b je c t类中定义的,因此所有的类都继承

3、了它。子类覆盖f in a liz e ()方法以整理系统资源或者执行其他清理工作。f in a liz e ()方法是在垃圾收集器删除对象之前对这个对象调用的。第二,Anonym ous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。第三,Static Nested Class和 Inner Class的不同,说得越多越好。(面试题有的很笼统)Nested(嵌套)Class(一般是C+的

4、说法)nested class 是合成型聚集关系(Composite Aggregation)的另一种表达方式,也就是说nested class也可以用Aggregation表达出来,但是,nested class更加精确地表达了一种专用的、紧耦合的关系,尤其在代码生成时,nested class在Java中映射成inline class。比如,计算机专用开关电源类可以作为计算机类的nested c la s s,但是,电池组类就不一定适合作为计算机类的nested c la s s,因为,电池组类表述的是一个过于通用的对象,可能还被包含(Aggregation)于模型中的其他设备对象。cla

5、ss A nested in class B,则说明 A 是一个 nested class,一般A 是用来完成B 中的某种重要功能。Inner Class(般 是 JAVA 的说法)Java内部类与C+嵌套类最大的不同就在于是否有指向外部的引用0静态内部类(Inner Class)意味着a 创建一个s ta tic 内部类的对象,不需要一个外部类对象,b 不能从一个s ta tic 内部类的一个对象访问一个外部类对象第四,&和&的区别。(这个问得很少)&是位运算符。&可为位运算,也可为逻辑运算,看情况而定。&是布尔逻辑运算符。第五,HashMap和 Hashtable的区别。(常问)都属于Ma

6、p接口的类,实现了将惟一键映射到特定的值上。HashMap类没有分类或者排序。它允许一个 null键和多个null值。Hashtable类似于HashMap,但是不允许null键 和 null值。它也 比 HashMap慢,因为它是同步的。Hashtable 继承自 Dictionary 类 而 HashMap 是 Javal.2 弓【进的Map interface 的一个实现。HashMap允许将null作为一个 entry的key或者value,而Hashtable 不允许,还有就是,HashMap 把 Hashtable 的 contains方法去掉了,改成 containsvalue(

7、Returns true if this mapmaps one or more keys to the specified value)和containsKey(Returns true if this map contains a mappingfor the specified key)。因为 contains(Tests if some keymaps into the specified value in this hashtable)方法容易让人引起误解。最大的不同是,Hashtable的方法是Synchronize的,而 HashMap不是,在多个线程访问Hashtable时,不

8、需要自己为它的方法实现同步,而 HashMap就必须为之提供外同步。Hashtable和 HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。第六,Collection和Collections的区别。(你千万别说一个是单数一个是复数)Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。Collection是个java.util下的接口,它是各种集合结构的父接口。第七,什么时候用assert。(API级的技术人员有可能会问这个)断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为false,那

9、么系统会报告一个Assert ionerror o它用于调试目的:assert(a 0);/throws an Assertionerror if a s h o r t c h a r 或 者 b y te。long,s t r i n g 都不能作用于sw tic h。第三十二,编程题:写一个 S ingleton出来。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个pub

10、lic的get Instance方法获取对它的引用,继而调用其中的方法。public class Singleton private Singleton()/在自己内部定义自己一个实例,是不是很奇怪?/注意这是private只供内部调用private static Singleton instance=new Singleton();这里提供了一个供外部访问本class的静态方法,可以直接访问public static Singleton getInstance()return instance;)第二种形式:public class Singleton private static Sing

11、leton instance=null;public static synchronized Singleton get Instance()/这个方法比上面有所改进,不用每次都进行生成对象,只是第一次/使用时生成实例,提高了效率!i f (i n s t a n c e=n u l l)i n s t a n c e =n e w Si n gl e t on ();r e t u r n i n s t a n c e;)其他形式:定义一 类,它的构造函数为pr i v a t e 的,所有方法为s t a t i c 的。一般认为第一种形式要更加安全些Co l l ec t io n 和

12、 Co l l ec t io n s 的区别。Co l l ec t io n 是集合类的上级接口,继承与他的接口主要有Set 和 L is t.Co l l ec t io n s 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。1 0、&和&的区别。&是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(a n d)。1 1、H a s hM a p 和 H a s ht a b l e 的区别。H a s hM a p 是 H a s ht a b l e的轻量级实现(非线程安全的实现),他们都完成了 M a p 接口,主要区别在于H a

13、s hM a p 允许空(n u 1 1)键值(k ey),由于非线程安全,效率上可能高于H a s ht a b l e。HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable不允许。HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue和containsKeyo因为contains方法容易让人引起误解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Javal.2 弓|进的Map interface 的一个实现。最大的不同是,Hashtable的方法是Sy

14、nchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。12、final,finally,finalize 的区别。final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

15、13、sleep()和wait 0有什么区别?sleep是 线 程 类(T hread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调 用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方 法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。14、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?方法的重写Ov er r id in g和重载Ov er l o

16、 a d in g是J a v a多态性的不同表现。重 写Ov er r id in g是父类与子类之间多态性的一种表现,重载Ov er l o a d in g是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Ov e r r i d i n g)o子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Ov e r l o a d i n g)。Ov e r l o a d e d的方法是可以改变返回值的类型。1 5、e

17、r r o r和e x c e p t i o n有什么区别?e r r o r表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。e x c e p t i o n表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。1 6、同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享,例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就

18、应该使用异步编程,在很多情况下采用异步途径往往更有效率。1 7、a b s t r a c t c l a s s 和 i n t e r f a c e 有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(a b s t r a c t c l a s s),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建a b s t r a c t类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。A b s t r a c t类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为

19、。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接 口(i n t e r f a c e)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义s t a t i c f i n a l 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它 定 义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接

20、口类型转换,i n s t a n c e o f 运算符可以用来决定某对象的类是否实现了接口。1 8、h e a p 和 s t a c k 有什么区别。栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素1 9、f o r w a r d 和 r e d i r e c t 的区别f o r w a r d 是服务器请求资源,服务器直接访问目标地址的U R L,把那个U R L 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。r e d i r e c t 就

21、是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所 以 s e s s i o n,r e q u e s t 参数都可以获取。2 0、E J B 与 J A V A B E A N 的区别?J a v a B e a n 是可复用的组件,对 J a v a B e a n 并没有严格的规范,理论上讲,任何一个J a v a 类都可以是一个B e a n。但通常情况下,由于J a v a B e a n 是被容器所创建(如 T o m c a t)的,所 以 J a v a B e a n 应具有一个无参的构造器,另外,通 常 J

22、a v a B e a n 还要实现S e r i a l i z a b l e接口用于实现B e a n 的持久性。J a v a B e a n 实际上相当于微软C OM 模型中的本地进程内C OM 组件,它是不能被跨进程访问的。E n t e r p r i s e J a v a B e a n&b s p;相当于D C OM,即分布式组件。它是基于J a v a 的远程方法调用(R M I)技术的,所以E J B 可以被远程访问(跨进程、跨计算机)。但 E J B 必须被部署在诸如W e b s p e r e、W e b L o g i c 这样的容器中,E J B客户从不直接访

23、问真正的E J B 组件,而是通过其容器访问。E J B 容器是 E J B 组件的代理,E J B 组件由容器所创建和管理。客户通过容器来访问真正的E J B 组件。2 1 S t a t i c Ne s t e d C l a s s 和 I n n e r C l a s s 的不同。S t a t i c Ne s t e d C l a s s 是被声明为静态(s t a t i c)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。22、J S P 中动态I N CL U D E 与静态I N CL U D E 的区别?动态I N CL U

24、 D E 用 js p:in cl u de 动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态I N CL U D E 用 in cl u de 伪码实现,定不会检查所含文件的变化,适用于包含静态页面23、什么时候用as s e r t oas s e r t io n (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,as s e r t io n 就是在程序中的一条语句,它对一个bo o l e an 表达式进行检查,一个正确程序必须保证这个bo o l e an 表达式的值为t r u e;如果该值为f al s e,说明

25、程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,as s e r t io n用于保证程序最基本、关键的正确性。as s e r t io n检查通常在开发和测试时开启。为了提高性能,在软件发布后,as s e r t io n检查通常是关闭的。24、G C是什么?为什么要有G C?G C是垃圾收集的意思(G abag e Co l l e ct io n),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,J av a提供的G C功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,J av a语言没有提供释放已分配内存的显示操

26、作方法。25 s h o r t s i=1;s i=s i+1;有什么错?s h o r t s i=1;s i+=1;有什么错?s h o r t s i=1;s i=s i+1;(s l+1 运算结果是 in t 型,需要强制转换类型)s h o r t s i=1;s i+=1;(可以正确编译)26 M at h,r o u n d(11.5)等于多少?M at h,r o u n d(T L 5)等于多少?M a t h,r o u n d(11.5)=12M a t h,r o u n d (-11.5)=-11r o u n d方法返回与参数最接近的长整数,参数加1/2后求其f

27、l o o r.27、S t r i n g s =n e w S t r i n g (x y z”);创建了几个 S t r i n g O b j e c t?两个一、基础问答1.下面哪些类可以被继承?java.Iang.Thread(T)java.lang.Number(T)java.lang.Double(F)java.Iang.Math(F)java.Iang.Void(F)java.lang.Class(F)java.Iang.ClassLoader(T)2.抽象类和接口的区别接口可以被多重implements,抽象类只能被单一 extends(2)接口只有定义,抽象类可以有定义

28、和实现(3)接口的字段定义默认为:public static final,抽象类字段默认是friendly(本包可见)3.Hashtable的原理,并说出HashM叩 与 Hashtable的区别HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.HashMap与 Hashtable彳 艮 相 似,但 HashMap是非同步(unsynchronizded)和可以以null为关键码的.4.forward 和 redirect 的区别forward:an internal tran

29、sfer in servletredirect:重定向,有 2 次 request,第 2 次 request将丢失第一次的 attributs/parameters 等5.什么是Web容器?实现J2EE规范中web协议的应用.该协议定义了 web程序的运行时环境,包括:并发性,安全性,生命周期管理等等.7.EJB是基于哪些技术实现的?并说 出SessionBean和EntityBean 的区别,Stateful Bean 和 StatelessBean 的区别.EJB 包括 Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMK JAT

30、等技术实现.SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件.EntityBean被用来代表应用系统中用到的数据.对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑;EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体.Session Bean 还可以再细分为 Stateful Session Bean 与Stateless Session Bean.这两种的Session Bean都可以将系统逻辑放在method之中执行,不

31、同的是Stateful Session Bean可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的Stateful Session Bean 的实体.Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫Stateless Session Bean的时候,EJB Container并不会找寻特定的Stateless Session Bean的实体来执行这个method.换言之,很可能数个使用者在执行某个Stateless Session Bean的 methods时,会是同一个Bean的 Instance在执行.从内存方面

32、来看,Stateful Session Bean 与 Stateless Session Bean 比较,StatefulSession Bean会消耗J2EE Server较多的内存,然 而 StatefulSession Bean的优势却在于他可以维持使用者的状态.8.XML的解析方法Sax,DOM,JDOM9.什么是 Web Service?Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。Web Service所使用的是Internet上统一、开放的标准,如 HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Servic

33、e可以在任何支持这些标准的环境(Windows,Linux)中使用。注:SOAP 协议(Simple Object Access Protocal,简单对象访问协 议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。优势:(1).跨平台。(2).SOAP协议是基于XML和HTTP这些业界的标准的,得到了所有的重要公司的支持。(3).由于使用了 SOAP,数据是以ASCII文本的方式而非二进制传输

34、,调试很方便;并且由于这样,它的数据容易通过防火墙,不需要防火墙为了程序而单独开一个“漏洞”。.此外,WebService实现的技术难度要比CORBA和DCOM小得多。(5).要实现B2B集成,EDI比较完善与比较复杂;而用WebService则可以低成本的实现,小公司也可以用上。.在C/S的程序中,WebService可以实现网页无整体刷新的与服务器打交道并取数。缺点:(l).WebService使用了 XML对数据封装,会造成大量的数据要在网络中传输。(2).WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这 一 点,它不如CORBA。10.多线程有几种实现方

35、法,都是什么?同步有几种实现方法,都是什么?答:多线程有两种实现方法,分别是继承Thread类与实现Runnable 接口同步的实现方面有两种,分别是synchronized,wait与notify11.JSP中动态INCLUDE与静态INCLUDE的区另U?动 态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静 态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面二、Java编程与程序运行结果1.Java编程,打印昨天的当前时刻public class YesterdayCurrentpubl

36、ic void main(String args)Calendar cal=Calendar.getlnstance();cal.add(Calendar.DATE,-1);System.out.println(cal.getTime();)2.文件读写,实现一个计数器public int getNum()int i=-1;tryString stri=;Buffered Reader in=new Buffered Reader(newFileReader(f);while(stri=in.readLine()!=null)i=lnteger.parselnt(stri.trim();)in

37、.close();catch(Exception e)e.printStackTrace();)return i;)public void setNum()int i=getNum();i+;try(Printwriter out=new PrintWriter(new BufferedWriter(newFileWriter(f,false);out.write(String.valueOf(i);可能是编码的原因,如果直接写入in t的话,将出现java编码和windows编码的混乱,因此此处写入的是Stringout.close();catch(Exception e)e.printSt

38、ackTrace();)3.指出下面程序的运行结果:class AstaticSystem.out.print(1);)public A()System.out.print(2);)class B extends AstaticSystem.out.print(a);public B()System.out.print(b);)public class Hellopublic static void main(String ars)A ab=new B();/执行到此处,结果:1a2bab=new B();执行到此处,结果:1a2bab)注:类的static代码段,可以看作是类首次加载(被虚拟

39、机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造4.写一个Singleton模式的例子public class Singletonprivate static Singleton single=new Singleton();private Singleton()public Singleton getlnstance()return single;)三、数据库1.删除表的重复记录如果记录完全相同才算重复记录,那么:(sql server2000下测试通过)select distinct*into#tmpp from tiddelete from tidinser

40、t into tid select*from#tmppdrop table#tmpp如果有id主键(数字,自增1 的那种),那么:(sql server2000下测试通过)delete from tableA where id not in(select id=min(id)from tableA group by name)2.delete from tablea&truncate table tablea 的区别truncate语句执行速度快,占资源少,并且只记录页删除的日志;delete对每条记录的删除均需要记录日志8 R B A 方面1、8 R B A 是什么?用途是什么?答:CORB

41、A标准是公共对象请求代理结构(Common Object RequestBroker Architecture),由对象管理组织(Object Management Group,缩 写 为 OMG)标准化。它的组成是接口定义语言(ID L),语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。其目的为:用不同的程序设计语言书写在不同的进程中运行为不同的操作系统开发LINUX方面1、LINUX下线程,GDI类的解释。答:LINUX实现的就是基于核心轻量级进程的 一对一 线程模型,个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。GDI类为图像设备编程接口类库。

42、JAVA华为面试题JAVA方面1 面向对象的特征有哪些方面2 String是最基本的数据类型吗?3 in t和 Integer有什么区别4 String 和 StringBuffer 的区别5 运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。6 说出一些常用的类,包,接口,请各举5 个7 说出 Array List,Vector,LinkedList的存储性能和特性ArrayUst和 Vector都

43、是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了 synchronized方 法(线 程 安 全),通常性能上较ArrayUst差,而 UnkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。8 设计4 个线程,其中两个线程每次对j 增 加 1,另外两个线程对j每次减少1。写出程序。以下程序使用内部类实现线程,对 j 增减的时候没有考虑顺序问题。public clas

44、s ThreadTest1private int j;public static void main(String args)ThreadTestl tt=new Th readiest 1();Inc inc=tt.new lnc();Dec dec=tt.new Dec();for(int i=0;i2;i+)Thread t=new Thread(inc);t.start();t=new Th read(dec);t.start();private synchronized void inc()j+;System.out.println(Thread.currentThread().ge

45、tName()+-inc:+j);)private synchronized void dec()j-;System.out.println(Thread.currentThread().get Name()+-dec:+j);)class Inc implements Runnablepublic void run()for(int i=0;i100;i+)inc();)class Dec implements Runnablepublic void run()for(int i=0;i100;i+)dec();)9.JSP的内置对象及方法。request request表示HttpServ

46、letRequest对象。它包含了有关浏览器请求的信息,并且提供了儿个用于获取cookie,header,和session数据的有用的方法。response response 表示 HttpServletResponse 对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)out o u t对象是javax.jsp.JspWHter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext pageContext 表示一个 javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对

47、象的A P I,并且包装了通用的servlet相关功能的方法。session session表示一个请求的javax.servlet.http.HttpSession 对象。Session可以存贮用户的状态信息application applicaton 表示个 javax.servle.ServletContext 对象。这有助于查找有关servlet引擎和servlet环境的信息config config 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取servlet实例的初始化参数。page page表示从该页面产生的一个servlet实例10.用s

48、ocket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够同显相同的数据。参见课程中socket通讯例子。11说出Servlet的生命周期,并说出Servlet和CGI的区别。Servlet被服务器实例化后,容器运行其in it方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务

49、完成后就销毁,所以效率上低于servleto12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean 和 StatelessBean 的区别。13.EJB包 括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?14.说出数据连接池的工作机制是什么?15同步和异步有和异同,在什么情况下分别使用他们?举例说明。16应用服务器有那些?17你所知道的集合类都有哪些?主要方法?18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T,请用JDBC检索出表T的所有数据。1 9.说出在JSP

50、页面里是怎么分页的?页面需要保存以下参数:总行数:根 据sql语句得到总行数每页显示行数:设定值当前页数:请求参数页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。数据库方面:1.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。2.事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称 为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁