class SingletonClass
{
private static SingletonClass instance = null;
private static SingletonClass getLnstance()
{
if(instance == null)
instance = new singletonClass(); return instance;
}
}public void doSomeFunction(...)
{
// to do
}private SingletonClass()
{
//Initialize
}这个代码说还能提升效率或能改善,我没找出来,谁能帮忙找找??急!!
{
private static SingletonClass instance = null;
private static SingletonClass getLnstance()
{
if(instance == null)
instance = new singletonClass(); return instance;
}
}public void doSomeFunction(...)
{
// to do
}private SingletonClass()
{
//Initialize
}这个代码说还能提升效率或能改善,我没找出来,谁能帮忙找找??急!!
private static Singleton single; //声明静态的单例对象的变量
private Singleton(){} //私有构造方法
public static Singleton getSingle(){ //外部通过此方法可以获取对象
if(single == null){
synchronized (Singleton.class) { //保证了同一时间只能只能有一个对象访问此同步块
if(single == null){
single = new Singleton();
}
}
}
return single; //返回创建好的对象
}
}
2. private static Singleton single; //声明静态的单例对象的变量
3. private Singleton(){} //私有构造方法
4.
5. public static Singleton getSingle(){ //外部通过此方法可以获取对象
6. if(single == null){
7. synchronized (Singleton.class) { //保证了同一时间只能只能有一个对象访问此同步块
8. if(single == null){
9. single = new Singleton();
10. }
11. }
12. }
13. return single; //返回创建好的对象
14. }
15. } 饿汉式单例类:
1. public class Singleton
2. {
3. private Singleton(){
4.
5. }
6.
7. private static Singleton instance = new Singleton();
8.
9. private static Singleton getInstance(){
10. return instance;
11. }
12. }
内部类式单例类:
1. public class Singleton
2. {
3. private Singleton(){
4.
5. }
6.
7. private class SingletonHoledr(){
8. private static Singleton instance = new Singleton();
9. }
10.
11. private static Singleton getInstance(){
12. return SingletonHoledr.instance;
13. }
14. }
懒汉式单例类:
1. public class Singleton
2. {
3. private Singleton(){
4.
5. }
6.
7. private static Singleton instance;
8. public static Singleton getInstance(){
9. if(instance == null){
10. return instance = new Singleton();
11. }else{
12. return instance;
13. }
14. }
15. }
可以同步但是效率不高: 1. public class Singleton
2. {
3. private Singleton(){
4.
5. }
6.
7. private static Singleton instance;
8. public static synchronized Singleton getInstance(){
9. if(instance == null){
10. return instance = new Singleton();
11. }else{
12. return instance;
13. }
14. }
15. }