单例模式及getInstance()的用法
一般在单例模式下使用.getInstance()创建对象;但并不是所有有私有构造方法,对外通过getInstance方法提供
实例的情况就是单例模式。
注:单例模式:一个类有且只有一个实例。
1,一个私有的构造器
2,一个私有的该类类型的变量
3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量
eg:
public class Singleton{
private Singleton(){} //private 只能在自己内部供自己去访问
private static Singleton instance=new Singleton();//在自己内部定义自己的一个实例
public static Singleton getInstance(){ //此静态方法供外部直接访问
return instance;
}
}
判断Singelton一个类是否是单例模式:
class Test{
public static void main(String args[]){
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
if(s1==s2)
System.out.println("此类是单例模式");
else
System.out.println("此类不是单例模式");
}
}
GetInstance与new区别:
new的使用:如Object object = new Object(),这时候,就必须要知道有第二个public的Object构造方法的
存在。
GetInstance的使用:在主函数开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它
的引用,即内存中有一块区域专门用来存放静态方法和变量,可以直接使用,调用多次返回同一个对象。
(1)对象使用之前通过getinstance得到,而不需要自己定义,用完之后不需要delete;
(2)new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的
引用给你使用,这在效能上优于new;
(3) new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()
通常是创建static静态实例方法的。
转载于:https://www.cnblogs.com/baxianhua/p/9341953.html
单例模式及getInstance()的用法相关推荐
- 单例模式及getInstance()的用法(转)
介绍 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一. 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创建 ...
- collator java_Java Collator getInstance(Locale)用法及代码示例
java.text.Collator类的getInstance(Locale)方法用于获取具有所需语言环境的新整理对象. 用法: public static Collator getInstanc ...
- 关于java中getInstance()方法
关于java中getInstance()方法java 先看一个例子 public abstract class TestInstance { static int i = 1; public stat ...
- Java枚举类型(enum)详解
文章目录 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Class对象 枚举的进阶用法 向enum类添加方法与 ...
- JAD反编译tricks
jad反编译工具,已经不再更新,且只支持JDK1.4,但并不影响其强大的功能. 基本用法:jad xxx.class,会生成直接可读的xxx.jad文件. 自动拆装箱 对于基本类型和包装类型之间的转换 ...
- 用生命周期规范组件化流程
写在前面 1. 组件划分 架构 宿主壳.调试壳 组件层 基础层 MVC.MVP.MVVM 如何下沉 Utils 规范:使用 Kotlin 静态方法 单例模式 res 规范:命名清晰 string.xm ...
- JavaScript基础知识汇总
一.原型/原型链/构造函数/实例/继承 js万物皆对象,用 var a={} 或 var a = new Object() 或者用构造函数的形式: var a = new A() 创建一个对象 ...
- 【c++】0.C++笔记
1.DISALLOW_COPY_AND_ASSIGN 2.延时函数delay().sleep().usleep() 3.opencv在图片中绘图常使用的几个函数 4.opencv中 cv::Mat 与 ...
- 每个软件开发人员都应该知道的5种设计模式
通常设计模式是用于解决问题的模板,可以在多种不同的情况下使用,但它并不是一个可以直接转换为代码的设计,但确实开发者奠定软件是否成功的基础. 有一些设计模式是每个开发人员都应该了解的,包括它应该在什么地 ...
最新文章
- pandas dataframe中的列进行重新排序、倒排、正排、自定义排序详解及实践
- java中this关键词
- windows_硬盘上设置虚拟内存
- Redis安装和使用指南
- javaweb项目得执行过程及servlet得请求(Httprequest)和响应(Httpresponse)
- c++刷题(18/100)树
- mysql 执行时间有波动_阿里P8架构师谈mysql性能优化思路
- 笨方法学python --习题12
- 上位机软件需求说明书100元
- LaTeX 论文排版学习笔记(零基础)
- 指针概念、指针大小和内存详解
- 华硕a豆安装ubuntu14.04系统开启wifi
- 大一新生HTML期末作业,网页制作作业(大一学生作品)
- 用js实现贪吃蛇网页游戏
- 基桩静荷载测试数据分析软件,静荷载基桩检测原理及应用技术
- 【C++】RAll,裸指针,弃用auto_ptr原因
- react项目中解决IE浏览器下报Promise未定义的错误
- java无穷大 inf_Java正无穷大、负无穷大以及NaN
- Graphviz 双向边和无向边
- APIPOST 常见设置项