试题

来源:互联网 发布:java 流媒体 编辑:程序博客网 时间:2024/06/10 14:56

试卷样题

1.      以下语句问你创建了几个索引。()

create table CMIS."GcVehicleGuarList"(

   "guarNo"             "cmisno20"             not null,

   "editNO"             "cmissum"              not null,

   "guarunit"           CHAR(30),

   "guarNum"            "cmissum",

   "rtCertNO"           VARCHAR(256),

   "typeMode"           "cmistype5",

   "buildDate"          "cmisdate",

  "licensePlateID"    "cmisno20",

   "poliNo"             "cmisno20",

   constraint"P_GcVehicleGuarLis" primary key ("guarNo","editNO")

);

create index 索引名 字段名;

答:两个,创建主键的时候会同时创建出一个索引,另一个是创建索引语句创建。

2.      事务隔离级别的游标隔离,它是锁定哪行后结束。

答:在读取下一行或终止事务之前有效,当游标移离该行时,也就是锁定下一行后结束。

3.      哪一个不是Was的日志文件

答:下面几个都是was日志,有一个admin的不是was日志文件。

   Systemout_log  systemError_log  nativeSystemout_log nativeSystemError_log 

4.      Junit是白盒测试

5.      Double x=2.2565; Double y=0.236; System.out.println(“”+x+y); System.out.println(x+y+””)的结果:

答:第一个2.25650.236,第二个2.4925

6.      领域模型描述的是什么?

答:现实世界的业务模型

7.      jsp的加载原理。 web容器和浏览器的功能

答:浏览器发出一个jsp请求,如果是第一次访问jspweb容器将jsp转换成servlet源文件,然后编译成class,执行class完成输出写回给浏览器,以后再执行时便直接执行编译好的class

8.      什么时候用servlet,什么时候用jspjsp全都能转成servlet吗?反之?

答:程序控制时用servlet,页面展示时用jspjsp可以全部转换成servlet,而并不是全部的servlet可以转换成jsp

9.      ibatiswhere语句如何动态组装

答:使用sql映射文件,sql文件中将动态变化的使用${}#{},进行表示,ibatis会自动使用传入的参数进行替换,拼装出最终的sql

10. J2ee的规范,写出五个

答:jspservletjtajndiejbjdbcJava MailRMI

11. RUP核心原则

答:用例驱动、以构架为中心、迭代和增量开发

12. JAT的接口有那些

答:javax.transaction.UserTransaction

javax.transaction.TransactionManager

javax.transaction.xa.XAResource

13. synchronizedlock的区别

答:lockjava5的新特性,可以实现同步更细致的控制,性能也更好一些,但必须手动加锁解锁,synchronized则比较方便,性能略差。

14. JNDI是什么

答:Java Namingand Directory Interface

15. JNDI的数据结构

答:jndi包括命名服务和目录服务两部分,其中目录服务包含目录对象directoryobject,它包含若干属性对象。

   context是一套name-to-object的绑定(bindings),可以理解为层次或目录,它还可已包括下一层subContext

16. InputStream FileInputStream BufferInputStream 读文件在控制台输出

17. Spring beanfactoy applictioncontext 的作用区别

答:ApplicationContext包含BeanFactory的所有功能,还包括其他功能如BeanPostProcessor 注册,BeanFactoryPostProcessor注册,MessageSource访问,ApplicationEvent等。

18. JMS中同步接收信息,怎样设置超时

答:使用setReceiveTimeout方法设置超时时间

19. 用例图中Extendinclude的区别,举例说明

答:include 是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分(就象提取公因式一样),例如 UseCaseA 中包括了 a b 两个流程,而 UseCaseC 中包含了 c b 两个流程。为了提高复用性,可以把 b 提取出来,形成另一个用例UseCaseB,此时,UseCaseAinclude UseCaseB

extend 则恰好相反。假设 UseCaseA 的功能描述为“发送一条通知”,可是,发送通知的方式可能有许多种,例如通过邮件发送、通过短信发送等。在需求分析阶段,可能无法明确到底有多少种方式,在用例分析阶段,UseCaseA 需要留出扩展接口,然后把已知的发送方式作为扩展用例给出,例如 UseCaseB 是“通过短信发送”,而 UseCaseC 是“通过邮件发送”,此时,UseCaseB UseCaseC extend UseCaseA

20. 哪些类不是junit的核心类(testcase,basetestrunner,testloader,testsuit

答:testloader

21. 21.SCA服务组件与传统组件的区别

答:服务组件往往是粗粒度的,而传统组件以细粒度居多。

    服务组件的接口是标准的,主要是WSDL接口,而传统组件常以具体API形式出现。

    服务组件的实现与语言是无关的,而传统组件常绑定某种特定的语言。

    服务组件可以通过组件容器提供QoS的服务,而传统组件完全由程序代码直接控制。

22. EjbsessionBean中远程访问接口的相关知识

23. 如果抛出了SQLException,需要做什么处理

答:如果有ResultSetStatement需要关闭,关闭connection

24. NoclassFoundExceptionclassNotDefException的区别

答:ClassNotFoundException发生在装入阶段,即在ClassLoader加载或者是使用ClassforName加载类时如果没有找到指定的类则抛出该异常。

    NoclassFoundException则是在执行过程中,在使用new操作时,如果没有找到,则抛出该异常。

25. 定义一个mapkeyStringvalueString类型的list

答:Map<String,List<String>>map =new HashMap()<String,List<String>>;

26. java.util.Datejava.sql.Date有什么区别。

:java.util.Date使用一般情况下,java.sql.Datejdbc中使用,java.sql.Date继承自java.util.Date.

27. JDBC一共有4种类型的Driver: 

答:一、JDBC-ODBC桥,通过odbc访问数据库

    二、本地API驱动,JDBC调用转变为数据库的标准调用再去访问数据库。

    三、网络协议驱动,通过中间件服务器访问数据库。

    四、本地协议驱动,使用纯java编写,无需安装客户端,速度快。

28. 项目管理相关知识,MSP计划、软件的生面周期等     

29. Js中是否可以写jsp代码?

答:不能

30. Spring依赖注入有哪些方式

答:接口注入,构造函数注入,设置注入

31. 反射机制,举例说明。

答:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

a)        得到某个对象的属性

public Object getProperty(Object owner, String fieldName) throwsException {

     Class ownerClass =owner.getClass();

     Field field =ownerClass.getField(fieldName);

     Object property =field.get(owner);

     return property;

}

b)       得到某个类的静态属性

public Object getStaticProperty(String className, String fieldName)throws Exception {

      Class ownerClass =Class.forName(className); 

      Field field =ownerClass.getField(fieldName);

      Object property = field.get(ownerClass); 

      return property;

}

 

Class ownerClass = Class.forName(className):首先得到这个类的Class

Field field =ownerClass.getField(fieldName):和上面一样,通过Class得到类声明的属性。

Object property = field.get(ownerClass) :这里和上面有些不同,因为该属性是静态的,所以直接从类的Class里取。

 

c)        执行某对象的方法

public Object invokeMethod(Object owner, String methodName, Object[]args) throws Exception { 

      Class ownerClass =owner.getClass();

      Class[] argsClass = newClass[args.length]; 

      for (int i = 0, j =args.length; i < j; i++) {

          argsClass[i] =args[i].getClass();

      }

     Method method =ownerClass.getMethod(methodName, argsClass);

     returnmethod.invoke(owner, args);

}

Class owner_class = owner.getClass() :首先还是必须得到这个对象的Class

配置参数的Class数组,作为寻找Method的条件。

Method method =ownerClass.getMethod(methodName, argsClass):通过Method名和参数的Class数组得到要执行的Method

method.invoke(owner, args):执行该Methodinvoke方法的参数是执行这个方法的对象,和参数数组。返回值是Object,也既是该方法的返回值。

d)       执行某个类的静态方法

public Object invokeStaticMethod(String className, StringmethodName,

              Object[] args) throws Exception {

      Class ownerClass =Class.forName(className);

      Class[] argsClass = newClass[args.length];

      for (int i = 0, j = args.length; i < j;i++) {

          argsClass[i] = args[i].getClass();

      }

     Method method =ownerClass.getMethod(methodName, argsClass);

     returnmethod.invoke(null, args);

}

基本的原理和实例3相同,不同点是最后一行,invoke的一个参数是null,因为这是静态方法,不需要借助实例运行。

e)        新建实例

public Object newInstance(String className, Object[] args) throwsException {

      Class newoneClass =Class.forName(className);

      Class[] argsClass = newClass[args.length];

      for(int i = 0, j = args.length; i < j; i++) {

         argsClass[i] =args[i].getClass();

     }

     Constructor cons =newoneClass.getConstructor(argsClass);

     returncons.newInstance(args);

}

 

这里说的方法是执行带参数的构造函数来新建实例的方法。如果不需要参数,可以直接使用newoneClass.newInstance()来实现。

Class newoneClass =Class.forName(className):第一步,得到要构造的实例的Class

得到参数的Class数组。

Constructor cons =newoneClass.getConstructor(argsClass):得到构造子。

cons.newInstance(args):新建实例。

 

f)        判断是否为某个类的实例

public boolean isInstance(Object obj, Class cls) {

     returncls.isInstance(obj);

 }

g)       得到数组中的某个元素

public Object getByArray(Object array, int index) {

     returnArray.get(array,index);

}

 

32. webServices的工作原理

答:

h)       加入web应用,将刚才发布的web服务加入,这时生成了一个服务在本地的代理WebProxy

i)         客户端调用之前先实例化一个该代理的对象,然后调用发布的方法

j)         客户端将调用信息包含方法名和参数加入到soap消息中,通过http传送到WebService服务端

k)       服务端从soap消息中得到调用信息,然后执行方法,将返回结果加入到soap消息中然后通过http返回客户端

l)         客户端代理得到这个消息后解析处理结果返回给调用客户端方法

m)     在来回传送的过程中消息以xml格式组织,这样不管你使用的开发语言是什么,用其他的语言都可以与WebService通信

33. java实现线程的方式有几种?同步的关键字是什么?

答:创建线程有两种方法:继承Thread类和实现Runnable接口,同步关键字是Synchronized

34. uml图有哪几种类型(至少5种)

答:类图、对象图,用例图,序列图、协作图,状态图、活动图,构件图和部署图

35. errorException的区别

答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

36. HashMapHashtable的区别

答:

n)       HashtableDictionary的子类,HashMapMap接口的一个实现类;

o)       Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的,效率上高于Hashtable

p)       HashMap允许空(null)键值(key),而Hashtable不允许。

37. javaclassLoader分层加载原理是什么?

答:

q)       引导类:组成java平台的类,包含rt.jari18n.jar等基础jar包中的类.

r)        扩展类:使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext)中的.jar档案包.

s)        用户类:开发者定义的类或者没有使用java扩展机制的第三方产品.你必须在命令行中使用-classpath选项或者使用CLASSPATH环境变量来确定这些类的位,或者自己写ClassLoader加载。

38. Tomcat 不支持的j2ee规范

答:B

      A  servlet/jsp  B  EJB  C  JTA D  JAF

39. 线程中哪个不推荐使用

:B

       Await   B Stop   C  notify  D  notifyAll

40. 27.request中重定向正确的是哪种方式

:RequestDispatcher.forward()

41. 以下俩个操作不冲突

:C

       A.至少一个delete

       B.一个select和一个update

    C.俩个select

    D.俩个update

42. 以下说法正确的是

答:D

A..java可以多重集成

Bjava类只能实现单一接口

Cjava只能单一集成和实现一个接口

Djava的单一继承具有可靠性

43. xml中双引号用什么表示

:D

       A  &lt B &gt  C &aoqet  D &qout

44. servlet如何获取session

答:B

       AHttpSession session =request.getHttpSession();

       B.  HttpSession session = request.getSession();

       C.  HttpSession session =reponsed.getHttpSession();

       D.  HttpSession session = reponsed.getSession();

原创粉丝点击