`
文章列表
final使得被修饰的变量"不变",但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。 当然对于基本数据类型如果用final进行修饰,那么肯定就是值不会变,那么对于引用类型呢,final只能保证他的引用地址不可变,而并不保证内容。看下面的例子: 引用本身的不变: final StringBuffer a=new StringBuffer("immutable"); final StringBuffer b=new StringBuffer("not immutable& ...
现在有一条sql语句:select * from emp where empno = 10 and empname like "%A%"; 如果说们要对这条sql语句进行优化,那么这两个条件应该如果排列才好?empno=10这个条件应该是过滤粒度大的条件。 在Oracle数据库中要把把过滤粒度大的条件放到后面,因为在Oracle数据库中条件是从sql语句中后面的一个条件开始解析。而对于sqlServer数据库则要放到前面 这两种数据库产品是不一样的。 我今天面试的时候被问到了,还不知道有这个区别所以回答错了,郁闷!
•尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。 •不用NOT IN操作符,可以用NOT EXISTS或者外连接+替代。 •Oracle在执行IN子查询时,首先执行子查询,将查询结果放入临时表再执行主查询。而EXIST则是首先检查主查询,然后运行子查询直到找到第一个匹配项。NOT EXISTS比NOT IN效率稍高。但具体在选择IN或EXIST操作时,要根据主子表数据量大小来具体考虑。 •不用“<>”或者“!=”操作符。对不等于操作符的处理会造成全表扫描,可以用“<” or “>”代替。 •Where子句中出现IS NULL或者IS NOT NULL ...
会。java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的 ...
public class Sort { public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4 }; // 预设数据数组 public static void main(String args[]) { int i; // 循环计数变量 int Index = a.length;// 数据索引变量 System.out.print("排序前: "); for (i = 0; i < Index - 1; i++) System.out.print(" \t&quo ...
财经管类 会计学基础(58课时) [url]http://www.da-fan-shu.cn/20091022_326/ [/url] 经贸知识英语(57课时) http://www.da-fan-shu.cn/20091022_325/ 国际市场营销(43课时) [url]http://www.da-fan-shu.cn/20091022_327/ [/url] 国际经济合作理论与实务(64课时) http://www.da-fan-shu.cn/20091022_328/ 政府与事业单位会计(64课时) http://www.da-fan-shu.cn/20091022_32 ...
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <aop:config> <aop:pointcut id="servicePointCut" expre ...
OpenSessionInview使用拦截器实现的,他要用到Hibernate的sessionFactory,这个名称是他默认要着的,如果你的SessionFactory配置的不叫这个名字的话在使用OpenSessionInview拦截器的时候是会报错的。需要我们在配置文件中手动的指定一下你自己定义的SessionFactory的名称。 <filter> <filter-name>sessionFilter</filter-name> <filter-class> org.springframework.orm.hibernat ...
首先来看一张图片: 箭头的方法代表我们的请求,把OpenSessionInView放到前面是先进后出。首先经过OpensessionInView然后经过struts2的拦截器,等到返回的时候struts把页面准备好了,然后经过OpensessionInview拦截器才能达到效果,假定我们把这个拦截器放到struts2拦截器的后面,那么就没有用了
在我们的项目中,经常要从HibernateDaoSupport继承然后使用他的HibernateTemplate给我们封装好的方法。 我们以用户模块的持久层UserDao这个类的addUser(User user)方法为例: 第一种方法:userDao extends HibernateDaoSupport:(不推荐使用) 我们知道继承这个类,必须给他注入一个HibernateTemplate的对象,或者是SessionFactory对象但是HibernateDaoSupport这个类的所有的方法都是final的,无法重写他的setSessionFactory(SessionFactory ...
编程式事务:当我们的项目中没有集成进spring 仅仅使用hibernate的话 都会自己进行事务的管理,例如: try { session.beginTransaction(); .... session.getTransaction.commit(); }catch(Exception e) { }finally { session.getTransaction.rollback(); } 上面这种事务的管理方法是我们在使用hibernate的时候管理事务的一种方法,可以简单的理解为 通过自己编程来实现事务的 开启  提交  回滚 操作。 声明 ...
我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档) 在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层 那么当 ...
所有类在初始化时,都是先初始化它的父类中静态字段,静态块,再初始化本身同样代码。接着执行父类构造方法,再执行自己构造方法。如果有多个父类,一直往上面推,超级父类最先被初始化。所有类都隐式继承自Object,所以当然是先初始化Object ,这是classloader做的事 。不过Object本身没有显式的构造方法,即只有默认的构造方法,而且Object是所有类的父类,它里面大部分都是native方法。之所以要先初始化父类,是因为父类的某些字段或方法很有可能被继承了,所以必须先初始化它们
public class Test { public static void main(String[] args) { Calendar a = Calendar.getInstance(); System.out.println(a); //把时间设置为当月的第一天 a.set(Calendar.DATE, 1); //使得日期回滚一天,就是该月的最后一天 a.roll(Calendar.DATE, -1); int maxDate = a.get(Calendar.DATE); System.out.println("该月最大天数:&q ...
/** * 超大整数相加: * 题目要求:如果系统要使用超大整数(超过long的范围),请你设计一个数据结构来存储这种 * 超大型数字以及设计一种算法来实现超大整数的加法运算 * @author Administrator * */ public class VeryBigNumAdd { /** * @param args */ public static void main(String[] args) { // TODO Auto ...
Global site tag (gtag.js) - Google Analytics