Java面向对象之单例模式

概念:

单例模式的概念:
需要设计一个类,达到的效果: 此类在整个应用中只存在一个对象

单例模式之饿汉模式:

单例模式之饿汉模式

​ 饿汉模式:直接创建,不管用不用得到

​ 弊端:

​ 正是由于饿汉模式这种特性,所以效率较低,一加载代码到jvm就会创建对象……

示例Demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class SingleInstance{

public static void main(String[] args){

​ System.out.println(Test.getInstance()); //打印输出

​ System.out.println(Test.getInstance());

​ System.out.println(Test.getInstance());

​ }

}

class Test{
//饿汉模式Demo

private Test(){} //将构造方法私有化

private static Test instance = new Test(); //创建字段

public static Test getInstance(){ //生成get方法

return instance; //返回对象

​ }

}

单例模式之懒汉模式

单例模式之懒汉模式

​ 在需要用到对象的时候才开始创建,否则就不创建

​ 存在问题:

​ 线程安全问题

示例Demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class SingleInstance{

public static void main(String[] args){

​ System.out.println(Test.getInstance()); //打印输出

​ System.out.println(Test.getInstance());

​ System.out.println(Test.getInstance());

​ }

}

class Test{
//懒汉模式Demo

private Test(){} //将构造方法私有化

private static Test instance; //创建字段

public static Test getInstance(){ //生成get方法

if(instance == null){

​ instance = new Test();

​ }

return instance; //返回对象

​ }

}

除此之外还有其他几种单例模式但是最基础的就算这两种,也是面试经常考到的两种

❤赏点钱让我买杯快乐水8❤