一、什么是事务?事务的特性?
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
事务是恢复和并发控制的基本单位。
事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。
原子性(atomicity)一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
二、下列哪种异常时检查型异常,需要在编写是声明(C)
A.NullPointerException
B.ClassCastException
C.FileNotFoundException
D.IndexOutOfBoundException
三、下列说法正确的是(AC)
A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap
四、指出下列程序运行的结果(test ok and gbc)
package test;
public class Example {
String str = "good";
char[] ch = {'a','b','c'};
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.println(ex.ch);
}
private void change(String str2, char[] ch2) {
str = "test ok";
ch[0] = 'g';
}
}
五.用Java写一个单例类。
1、饿汉式
public class EagerSigleton(){
private static final EagerSigleton m_instatnce=new EagerSigleton();
//私有构造方法
private EagerSigleton(){}
//静态工厂方法
public static EagerSigleton getInstance(){
return m_instatnce;
}
}
2、懒汉式
public class LazySigleton(){
private static final LazySigleton l_instatnce=null;
//私有构造方法
private LazySigleton(){}
//静态工厂方法
public static synchronized LazySigleton getInstance(){
if(l_instatnce==null){
l_instatnce=new LazySigleton();
}
return l_instatnce;
}
}
六、JQuery中‘.get()’,’.eq()’的区别:
.eq()返回的是一个jquery对象,返回的是jQuery对象,就可以继续调用其他方法。
.get()返回的是一个html对象数组,返回的是html数组就不能调用JQuery的其他方法。
例如:
$(“ul li”).get(1).css(“color”, “red”); //这个是错误的
$(“ul li”).eq(1).css(“color”, “red”); //这个是正确的
七、如何给weblogic指定大小的内存?
在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M。
八、web项目从浏览器发起交易响应缓慢,简述从哪些方面入手分析。
可以看qps,机器的load,cpu,看逻辑有没有耗时操作,还有网络因素 。
给请求链路中的各个环节加上日志,比如数据库操作,第三方系统调用等环节,通过日志,定位问题,如果是数据库操作耗时比较长,优化sql语句,加索引,或者提升数据库硬件性能;如果是第三方系统耗时较长,则通过业务分析优化,将第三方系统调用做成异步或者通过池化技术缓存对第三方的依赖等。
九、请简述如何将Oracle中的数据库转换至DB2中,需要保证表结构和数据不变。
使用ETL工具,如infomatic,datastage,kettle等,可以完成异构数据库的迁移
以kettle为例:
表输入选择 oracle库
表输出选择DB库
循环执行可以进行全库迁移