第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
一般认为第一种更安全
分享到:
相关推荐
这样,只需要为每个需要成为Singleton的类提供一个模板实例,而无需为每个类写相同的代码。示例中展示了如何创建一个模板类`Singleton<T>`,并定义了一个宏`DECLARE_SINGLETON_CLASS(type)`,使得在实际类中声明...
##### 135、写一个Singleton出来 **Singleton模式**是一种常见的设计模式,其主要目的是确保在整个Java应用程序中,一个类仅有一个实例存在,并且提供一个全局访问点来获取这个实例。这有助于节省资源并简化对象间...
10、写一个Singleton出来: 单例模式是设计模式的一种,保证一个类只有一个实例。Java中常见的单例实现有饿汉式、懒汉式(线程不安全和线程安全)和双重检查锁定(DCL)等方式。 以上题目覆盖了Java的基础语法、...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...
32. **编程题:写一个Singleton出来** - 双重检查锁定模式的Singleton示例: ```java public class Singleton { private volatile static Singleton instance; private Singleton() {} public static ...
变态级 JAVA 程序员面试 32 问(附答案) ...32. 编程题:写一个 Singleton 出来。 Singleton 模式是一种设计模式,用于限制类的实例数量。它可以确保一个类只有一个实例,并提供了一个全局访问点。
单例模式是软件设计模式中的一种,用于控制类的实例化过程,确保一个类只有一个实例,并提供全局访问点。在Java编程中,实现单例模式有多种方式,其中包括静态常量、线程安全的同步方法、双重检查锁定(Double-...
编程题:写一个 Singleton 出来 - 实现 Singleton 模式的方法有很多,比如饿汉式、懒汉式、双重检查锁定等。这里给出一个简单的饿汉式实现示例: ```java public class Singleton { private static Singleton ...
第一,谈谈final, finally, finalize的区别。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface... 第三十二,编程题: 写一个Singleton出来。
7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...
JAVA面试笔试题大全 在 Java 中,final、finally 和 finalize 三个概念经常被混淆,但它们的作用和用途完全不同。 首先,final 是一个修饰符...编程题:写一个 Singleton 出来。答案是一个经典的单例模式的实现。
找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel,Motorola, SUN,以及其它... 第三十二,编程题:写一个Singleton出来。 下面是答案
7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...
7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...
7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯...
7、写一个Singleton出来。 81 8、递归算法题1 84 9、递归算法题2 85 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 86 11、有数组a[n],用java代码将数组元素顺序颠倒 87 12.金额转换,阿拉伯数字的...
7、写一个Singleton出来。 75 8、递归算法题1 77 9、递归算法题2 78 10、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 79 11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的...