一.什么叫单例
- 对单例类实例化后拿到的都是堆里面的同一个实例对象,
- 所有的单例类实例化对象的引用都指向堆内存中的一个实例对象(有且仅有一个)
使用场景:对象需要频繁的实例化和销毁,此时考虑使用单例可以大大的提高性能
比如:servlet 就是单例的
优点:
-
由于只有一个实例对象,所以占用内存很少
-
对象不用重复new了,当然于解放了对资源的重复占用,提升了性能
缺点:
- 扩展性差了,想扩展每次都得改代码
- 使用的场景比较单调,如果是在多场景不断变化的实例对象最好不要使用单例,数据容易出问题
- 最好不要用到连接池那块,N多对象共享一个连接池,容易导致连接池溢出的