前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中如何保证一个类在内存中的对象唯一性

Java中如何保证一个类在内存中的对象唯一性

作者头像
用户1696846
发布2023-08-25 14:02:04
2720
发布2023-08-25 14:02:04
举报
文章被收录于专栏:Android自学Android自学

Java中如何保证一个类在内存中的对象唯一性,讲解如下:

代码语言:javascript
复制
/**
 * 设计模式:对问题行之有效的解决方式。其实它是一种思想。
	1,单例设计模式。
	解决的问题:就是可以保证一个类在内存中的对象唯一性。
	
	对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
	
	如何保证对象唯一性呢?
	1,不允许其他程序用new创建该类对象。
	2,在该类创建一个本类实例。
	3,对外提供一个方法让其他程序可以获取该对象。
	
	步骤:
	1,私有化该类构造函数。
	2,通过new在本类中创建一个本类对象。
	3,定义一个公有的方法,将创建的对象返回。
 */
package classdemo;
 
/**
 * @author lizhongfeng_李忠峰
 * @fileinfo Test classdemo SingleDemo.java
 * @time 2015年9月15日
 */
 
// 饿汉式
class Single { // 类一加载对象就已经存在
	private static Single s = new Single();
 
	private Single() {
	}
 
	public static Single getInstance() {
		return s;
	}
}
 
// 懒汉式
class Single2 { // 类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象
				// 延迟加载形式
	private static Single2 s = null;
 
	private Single2() {
	}
 
	public static Single2 getInstance() {
		if (s == null) {
			s = new Single2();
		}
		return s;
	}
}
 
public class SingleDemo {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Single s1 = Single.getInstance();
		Single s2 = Single.getInstance();
		System.out.println(s1 == s2);
		// Single ss = Single.s;
		// Test t1 = new Test();
		// Test t2 = new Test();
		Test t1 = Test.getInstance();
		Test t2 = Test.getInstance();
		t1.setNum(10);
		t2.setNum(20);
		System.out.println(t1.getNum());
		System.out.println(t2.getNum());
	}
}
 
class Test {
	private int num;
 
	private static Test t = new Test();
 
	private Test() {
	}
 
	public static Test getInstance() {
		return t;
	}
 
	/**
	 * 获取num
	 * 
	 * @return num num
	 */
	public int getNum() {
		return num;
	}
 
	/**
	 * 设置num
	 * 
	 * @param num
	 *            num
	 */
	public void setNum(int num) {
		this.num = num;
	}
 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档