简述getInstance()和new的使用
-
new出来的对象可能会造成空间的浪费
-
在主方法开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它的引用,即内存中有一块区域专门用来存放静态方法和变量,在用的时候才创建对象
-
getInstance在单例模式(保证一个类仅有一个实例,并提供一个访问它的访问点)的类中常见,用来生成唯一的实例,getInstance()往往是static的
区别:
- (1) 对象使用之前通过getInstance得到而不需要自己定义,用完之后不需要delete;
- (2)new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的引用给你使用,这在效能上优于new;
- (3) new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()通常是创建static静态实例方法的。
总结:
- getInstance()这个方法在单例模式用的甚多,为了避免对内存造成浪费,直到需要实例化该类的时候才将其实例化,所以用getInstance()来获取该对象,
- 为了不让程序在实例化对象的时候,不用每次都用new,索性提供一个instance()方法,不必一执行这个类就初始化,这样做到不浪费系统资源!单例模式可以防止数据的冲突,节省内存空间
posted on 2022-10-14 11:19 Icebreaker_7 阅读(204) 评论(0) 收藏 举报
浙公网安备 33010602011771号