事务4个属性:原子性、一致性、隔离性、持续性。
这四个属性通常称为:
原子性(atomicity)
一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)
事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)
一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)
指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
事务通常由高级数据库操纵语言或编程语言
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如
begin transaction end transaction
语句(或函数调用)来界定。
ArrayList Vector LinkList 区别
arrayList和Vector 都是数组方式存储数据,数组元素大于实际存储数目,按序号索引元素,但插入时候需要移动数组等内存操作,所以插入时慢,索引时快。
vector 是synchronized ,性能上通常arrayList差,
而LinkList是双向链表实现存储,按序号索引需要向前后向遍历,但插入时候只需记住本项的前后向即可,插入速度快。
当需要增长时候,arrayList增长为原来一半,Vector增长为原来一倍
HashMap HashTable
1 HashMap 是线程非安全,HashTable是线程安全
2 HashMap 允许null key value ,HashTable不允许
3 HashMap 是Map接口实现,HashTable是继承dicntionary
4 HashMap把hashTable的contains方法去掉了,改成containsKey containsValue
hashMap treeMap
hashMap是无序的通过hashcode快速查找,treeMap是无序的。
hibernate 最耀眼的缓存机制,
一级缓存session,
二级缓存机制sessionFactory,
第三方缓存:ehCache
hiernate get load
get 不会抛异常信息
load使用代理延迟查不到会抛异常
抽象类和接口区别
定义上:
抽象类可以包含非抽象的方法,定义自己的变量
接口中所有方法必须是抽象的, 只能有静态常量
public protected default private
重写发生在父子类,参数的类型,个数,顺序,方法返回值相同,方法名相同
重载发生在同一类中,参数个数,类型,顺序,返回值,都可以不同,方法名相同
java 反射机制作用
1 在运行时判断任意一个对象所属的类
2 在运行时构造任意一个类的对象
3 在运行时判断任意一个类所具有的变量和方法
4 在运行时调用人一个对象的方法
泛型好处
1 在编译时候检查类型安全
2 强制转化都是自动的或者隐式的
3 提高代码重用率
数据库设计方便
a 查询优化,尽量避免全表扫描,首先应考虑在where order by 列上建立索引
b 避免where子句中,where num is null 判断 设置默认值0 确保没有null列
c 避免where 子句对字段进行表达式操作
d 避免where 子句字段函数操作
e exsits 代替 in
Hibernate中对象有三种状态:临时状态、持久状态和游离状态
临时状态 :new 实体
持久状态: 获取id
游离状态:session.close()Log4J日志级别由高到低:
ERROR WARN INFO DEBUG
error exception
error:内存泄露程序不能处理的错误
exception:需要程序进行处理的异常。
int Integer
int 是基本数据类型
Integer 是引用类型