1.问题
在项目过程中经常会见到在一个类中有getInstance()这个函数,例如
![](https://img.haomeiwen.com/i14093317/4f89b354bb79f641.png)
这个类当中有一个getInstance()静态方法,是一个单例模式,有以下几个特点:
1:属于懒汉模式,即当某一处需要CacheManager对象时,调用getInstance方法,这个方法会首先判断是否存在CacheManager对象,如果存在,就直接给,不存在的话再重新new 一个。
2:由于一般getInstance方法是静态的,所以很多地方都可以拿到这个对象,而且是同一个对象,存储在栈的静态区域块内,节省内存。
2.调用
一般是ClassName.getInstance()这样来调用这个类
3.优点
1.调用getInstance方法来得到对象,保证了每次调用都返回相同的对象。
2.在主函数开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它的引用,即内存中有一块区域专门用来存放静态方法和变量。
3.getInstance在单例模式的类中常见,用来生成唯一的实例,getInstance往往是static的。
4.单例模式,为了避免对内存造成浪费,直到需要实例化该类的时候才将其实例化,所以用getInstance来获取该对象,其他时候,为了实例化对象的时候,不用每次都new,索性提供一个instance方法初始化,这样做到不浪费系统资源!
单例模式 可以防止 数据的冲突,节省内存空间。
网友评论