- 浏览: 80530 次
- 性别:
- 来自: 北京
最新评论
-
佑手轻扬:
[color=red][/color]
对spring-webflow的一些见解 -
chenxiaochen32:
楼主您好!我在查询view的时候报错ERROR com.cou ...
couchbase的使用 java -
ioriliao:
大神啊,Couchbase的还原出错了!我如下使用出错了:cb ...
couchbase的备份与还原 -
zhaoImpulse:
farces 写道最近我也做测试,请问什么版本的bug?jav ...
解决couchbase占用cpu问题 -
farces:
最近我也做测试,请问什么版本的bug?
解决couchbase占用cpu问题
文章列表
aop实现动态数据库
- 博客分类:
- javaweb
最近做了个项目,他们要求在主数据库中存一个表,记录了所有要连接的数据库,然后客户可以任意选择要连接哪个数据库。但是,连到那个数据库,只是获取某一部分信息,而像日志、注释等信息还要存在主库中。
我们选的是ibatis框架作为数据库层,用mysql实验的时候,是用c3p0创建动态数据库,然后调用getSqlMapClientTemplate().setDataSource(DataSource dataSource)方法将数据源赋给ibtis,这样换数据源时,spring不用重启就可以。
但后来换了sqlserver发现不行,虽然数据库照样创建,但是ibatis还是连接的以前的主库,所以为 ...
泛型是jdk1.5新出的一种应用,它可以使集合的实例关联或绑定到某种特定的类型。不用它,并不会引起什么问题,但尽量还是使用的好,这样能更加规范,更重要的是,
public String get(List list){
for(String s:list){
System.out.println(s)
}
}
如果你偶然往list加入了一个int类型的值,那么只有在运行时,我们才会发现它报出的classcast错误,但如果使用泛型
private List<String> list;
public ...
IE和火狐的一些区别
- 博客分类:
- 前台页面
1. Iframe不显示问题
<iframe id="rightFrame"
width="100%" height="80%" frameborder="0"
style="overflow-y:hidden;overflow-x:hidden;"/>
在火狐中无法识别width="100%" height="80%"这种百分比,所以会显示不出来
解决方法:一:width="800px" height=&q ...
关于java的各种集合
- 博客分类:
- jdk源代码解读
1.HashSet内置了一个HashMap,将对象保存为HashMap的key,复用HashMap的算法来保证对象不可重复
但当创建时有第三个参数boolean dummy时,就用LinkedHashMap来管理
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap< ...
Employee e = DB.getEmployee("Bob");
//判断雇员e是否应该今天发薪水,如果是,则发
if(e != null && e.isTimeToPay(today))
e.pay();
如果Bob对象不存在,e就是一个null,然后&&的第一个表达式会被首先求值,而仅当第一个表达式为true时才会对第二个表达式求值。而在很多情况下我们会忘 了对null进行检查判定。这种惯用方法虽然常见,但很丑陋。
通过用DB抛出一个异常而不是返回null可以减少出错的可能。不过try/ ...
Themeplate Method
public abstract class Application {
protected abstract void init();
protected abstract void idle();
protected abstract void cleanup();
private boolean isDone = false;
protected void setDone(){
this.isDone = true;
}
protected boolean done(){
return isDone;
} ...
转帖《谈谈implements 和extend 》
- 博客分类:
- 基础
转贴自:http://jinxingyi.spaces.live.com/
前几天和朋友谈到Java的问题,她突然提到implements 和extend的比较问题,我觉得这个问题是一个老生常谈的问题了,但是它又特别的重要,重要到能够影响一个人编程的思维方式,所以还是值得我们讨论讨论的(本文讨论的extend是类的扩展,而不是interface的扩展;因为接口可以扩展多个接口)。
很多人用Java都因为它提供了丰富的开源库,却还用面向过程的思维方式编写Java程序。这样的程序不但重用性很差,而且会有很大的安全隐患。
谈谈接口和虚拟类
用一个形象比喻interface 和 abs ...
简单工厂模式
依赖倒置原则(DIP)扶弱抑强 们应该优先依赖于抽象类,而避免依赖于具体类。当这些具体类不稳定时,更应该如此,因此下面的范例
它违反了DIP,SomeApp依赖于接口Shape,而且完全通过Shape接口来使用Shape的实例。它没有使用Square类或者Circle类的任何特定方法。糟糕的是,SomeApp也创建了Square和Circle的实例,因此就不得不依赖于这些具体类。
所以要用Factory模式来修正。
public interface ShapeFactory {
public Shape makeCircle();
publ ...
Singleton模式
当要使用单例模式时,最常用的是Singleton模式:
public class Singleton {
private static Singleton theInstance = null;
private Singleton(){}
public static Singleton Instance(){
if(theInstance == null)
theInstance = new Singleton();
return theInstance;
}
}
优点:
跨平台:使用合适的中间件(例如RMI),可以把S ...
读《敏捷软件开发》的一些心得
- 博客分类:
- 设计开发
敏捷软件开发宣言
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
敏捷设计原则:
单一职责原则(The Single Responsibility Principle,简称SRP);
开发-封装原则(The Open-Close Principle,简称OCP);
Liskov替换原则(The Liskov Substitution Principle,简称LSP);
依赖倒置原则(the Dependency Inversion Principle,简称DIP);
接口隔离原则( ...
活锁
T1
T2
T3
T4
lock R
.
.
.
.
lock R
.
.
.
等待
lock R
.
unlock
等待
.
lock R
.
等待
lock R
等待
.
等待
.
等待
.
等待
Unlock
等待
.
等待
.
lock R
.
等待
.
.
如果事务T1封锁了数据R,事务T2又 ...
命令模式(别名:动作,事务)
将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,心腹支持可撤销的操作。
Receiver(接收者):接收者是一个类的实例,该实例负责执行与请求相关的操作。
Command(命令)接口:命令是一个接口,规定了用来封装“请求”的若干个方法,比如execute()、undo()等方法.
ConcreteCommand(具体命令):是实例命令接口的类的实例。具体命令必须实现命令接口中的方法,比如execute()方法,使该方法封装一个“请求”。
Invoker(请求者):是一个包含Command接口变量的类的实例。 ...
<!--StartFragment -->
◆寄存器:我们在程序中无法控制
◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
◆堆:存放用new产生的数据
◆静态域:存放在对象中用static定义的静态成 ...
摘自http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html Posted on 2009-12-03 16:42 火之光
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。
所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
在String ...
语言基础
为了简化代码,Java5提供了静态导入机制。静态导入实现无需在使用其它类的静态成员时前缀其类名,。要使用静态成员(方法和变量),必须给出提供这个方法的类。使用静态导入,可以使被导入类的所有静态变量 ...