2024年4月19日发(作者:)
单例模式 java面试题
单例模式是Java面试中经常被问及的一个话题。在本文中,我将介
绍单例模式的概念、实现方式以及与其他设计模式的比较,并提供一
些常见的面试题供读者参考。
1. 概念介绍
单例模式是一种创建型设计模式,它保证一个类只能有一个实例,
并提供一个全局访问点。它常用于需要限制实例个数的情况,如数据
库连接池、线程池等。
2. 实现方式
单例模式有多种实现方式,下面介绍几种常见的:
2.1 懒汉式
懒汉式是指在首次需要获取实例时才进行实例化。它的实现方式如
下:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在多线程环境下,懒汉式需要考虑线程安全问题,通过添加
`synchronized`关键字来保证线程安全。然而,这种方式在高并发场景
下性能较差,因为每次获取实例都需要进行同步。
2.2 饿汉式
饿汉式是指在类加载时就进行实例化,它的实现方式如下:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
饿汉式天生是线程安全的,但在实例化时就创建对象可能会增加系
统负担,特别是实例化较为复杂的情况。
2.3 双重检查锁
双重检查锁是指在实例化时进行双重检查,以保证线程安全并提高
性能。它的实现方式如下:
```java
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized () {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713540297a2269206.html
评论列表(0条)