public class TestSingle{
private static final TestSingle onlyOne=new TestSingle();
public static TestSingle getTestSingle(){
return onlyOne;
}
private TestSingle(){}
}
其中第一个private和final分别起了什么作用
请教了
private static final TestSingle onlyOne=new TestSingle();
public static TestSingle getTestSingle(){
return onlyOne;
}
private TestSingle(){}
}
其中第一个private和final分别起了什么作用
请教了
解决方案 »
- java logger输出日志中文显示乱码
- 一个关于字符串替换的问题
- 为什么这段代码JDK不能运行啊?
- 高手指教,,怎么将string类型中的数字转化成int啊?
- 关于源码的移植问题
- java程序EXE
- 怎么使用另一个类的变量??
- Java中的数组问题
- Window下,java怎么读取txt文件的汉字
- 关于jdk与windows xp
- 一个很郁闷的改错题,我都不知道要考我什么?
- (环境:linux+apache+php5)想把函数中“总计”的值显示为checkbox选中后的文件大小的总和,测试时提示: ftrs = document.getElementByName('file_list[]');(是取checkbox)不合法?
return onlyOne;
}这里应该加个判断吧如果为创建则创建,否则直接返回。
单例模式要实现的是一种系统中有且只有一个对象的需求,所有的外部对象访问的都是同一个实例:
1. private TestSingle(){} 中的private保证了它的外部不可创建性(这一点很容易被忽视),只能通过getTestSingle()获取实例的ref.
2. private static final TestSingle onlyOne=new TestSingle(); 中的new保证了系统中有一个实例,static保证了这个实例是唯一的一个实例, private保证了get方法中取出的ref是不会被外部修改的(比如改成null).至于final本例中可有可无,它只是用来保证onlyOne在TestSingle内也不可以再被修改了(除非有性能问题).
有了这一句就不会未创建了,所以不用判断.