java面试时经常会问到关于单例设计模式,因为它能考察的知识点较多且在开发中经常用到。
那我就来说一说我对于单例设计模式的一些浅见。
首先,在Java中,什么是单例呢?
就是保证类在内存中只有一个对象。
那么问题来了,如何才能保证类在内存中只有一个对象呢?
A:把构造方法私有化;
B:在成员变量中自己new一个类实例,并用private将其私有化且用static将其静态修饰;
C:对外提供一个静态方法返回这个对象。
依据以上的思路,就可以写出如下的代码:
- public class Student{
- private Student(){}
- private static Student s=new Student();
- public static Student getStudent(){
- return s;
- }
- }
-
-
以上的实现方法在业内称为”饿汉式”,可以这样理解:这个单例对象随着类的加载就被创建出来了,就像饿狼扑食一样,这里的”狼”就是单例对象,而“食”就是类加载。还有另一种实现方法称为“懒汉式”。先看代码实现: