单例的使用--mark一下
基本知识:一般而言,不变类没有状态。单例类不同,单例类含有状态,而且含有非常重要的状态,一般是需要共享的资源,譬如系统的配置信息等。
在Java中,一个类有100个实例,会导致状态有100个拷贝,但方法在内存中只存储一次。一个不变类无论有多少个实例,它所含有的方法代码只会出现在内存中一次而已。
如果一个Class没有成员变量,只有成员方法,那么这个对象在内存中应该是1Byte。方法在内存中只存储一次。所以,这样的类,在创建和销毁上的开销可以忽略不计,完全交给JVM就可以了。
Effective Java中的建议:不要作优化。我们的设计思路还是应该遵循简单的、易于理解的思路。
由以上可知:把不变类(例如dao)设计成单例, 是不必要的。
单例的滥用在数据库连接池这块是最常见的,在并发的时候造成数据库排队操作,有严重的性能问题