试题
来源:互联网 发布: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请求,如果是第一次访问jsp,web容器将jsp转换成servlet源文件,然后编译成class,执行class完成输出写回给浏览器,以后再执行时便直接执行编译好的class
8. 什么时候用servlet,什么时候用jsp,jsp全都能转成servlet吗?反之?
答:程序控制时用servlet,页面展示时用jsp。jsp可以全部转换成servlet,而并不是全部的servlet可以转换成jsp。
9. ibatis的where语句如何动态组装
答:使用sql映射文件,sql文件中将动态变化的使用${}和#{},进行表示,ibatis会自动使用传入的参数进行替换,拼装出最终的sql。
10. J2ee的规范,写出五个
答:jsp,servlet,jta,jndi,ejb,jdbc,Java Mail,RMI
11. RUP核心原则
答:用例驱动、以构架为中心、迭代和增量开发
12. JAT的接口有那些
答:javax.transaction.UserTransaction
javax.transaction.TransactionManager
javax.transaction.xa.XAResource
13. synchronized和lock的区别
答:lock是java5的新特性,可以实现同步更细致的控制,性能也更好一些,但必须手动加锁解锁,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. 用例图中Extend和include的区别,举例说明
答: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. Ejb和sessionBean中远程访问接口的相关知识
23. 如果抛出了SQLException,需要做什么处理
答:如果有ResultSet及Statement需要关闭,关闭connection
24. NoclassFoundException和classNotDefException的区别
答:ClassNotFoundException发生在装入阶段,即在ClassLoader加载或者是使用Class的forName加载类时如果没有找到指定的类则抛出该异常。
而NoclassFoundException则是在执行过程中,在使用new操作时,如果没有找到,则抛出该异常。
25. 定义一个map,key为String,value为String类型的list。
答:Map<String,List<String>>map =new HashMap()<String,List<String>>;
26. java.util.Date和java.sql.Date有什么区别。
答:java.util.Date使用一般情况下,java.sql.Date在jdbc中使用,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):执行该Method,invoke方法的参数是执行这个方法的对象,和参数数组。返回值是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. error和Exception的区别
答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
36. HashMap和Hashtable的区别
答:
n) Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;
o) Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的,效率上高于Hashtable
p) HashMap允许空(null)键值(key),而Hashtable不允许。
37. java中classLoader分层加载原理是什么?
答:
q) 引导类:组成java平台的类,包含rt.jar和i18n.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
A.wait 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可以多重集成
B.java类只能实现单一接口
C.java只能单一集成和实现一个接口
D.java的单一继承具有可靠性
43. xml中双引号用什么表示
答:D
A < B > C &aoqet D &qout
44. servlet如何获取session
答:B
A.HttpSession session =request.getHttpSession();
B. HttpSession session = request.getSession();
C. HttpSession session =reponsed.getHttpSession();
D. HttpSession session = reponsed.getSession();