1://效率低下,线程安全
public class SingleTon1 {
public final static SingleTon1 singleTonDemo=new SingleTon1();
private SingleTon1(){
}
public static SingleTon1 getInstance(){
return singleTonDemo;
}
}
2://线程不安全
public class SingleTon21 {
public static SingleTon21 singleTonDemo=null;
private SingleTon21(){
}
public static SingleTon21 getSingleton(){
if(singleTonDemo==null){
singleTonDemo=new SingleTon21();
}
return singleTonDemo;
}
}
3://线程安全
public class SingleTon22 {
private static SingleTon22 singleTon21Demo=null;
private SingleTon22(){
}
// 线程安全,可以同时多线程,但是效率也不是很高
public static SingleTon22 getSingleTon21(){
if(singleTon21Demo==null){
synchronized (SingleTon22.class) {
if(singleTon21Demo==null){
singleTon21Demo=new SingleTon22();
}
}
}
return singleTon21Demo;
}
// 线程安全,但是效率不高,永远只有一个线程能访问,同时返回一个对象
public static synchronized SingleTon22 getSingleTon22(){
if(singleTon21Demo==null){
singleTon21Demo=new SingleTon22();
}
return singleTon21Demo;
}
}
4:private SingleTonBobLee(){
}
static class SingleTonHolder{
static SingleTonBobLee singleTonDemo=new SingleTonBobLee();
}
public static SingleTonBobLee getSingleTonBobLee(){
return SingleTonHolder.singleTonDemo;
}
分享到:
相关推荐
两种单例实现方式 单例模式是指一个类只有一个实例,并且提供了一个全局的访问点来访问该实例。单例模式是一种常用的设计模式,它可以确保某个类只有一个实例,并且提供了一个全局的访问点来访问该实例。 在 Java ...
本压缩包提供了多种单例实现方式的Java代码示例,包括常见的懒汉式、饿汉式、双重检查锁定、静态内部类和枚举等方式。下面将详细解释这些实现方法。 1. **饿汉式(静态常量)** 饿汉式单例在类加载时就初始化,...
这是最常见的单例实现方式。在类中定义一个静态成员变量,该变量保存唯一的实例。例如: ```cpp class Singleton { public: static Singleton& getInstance() { static Singleton instance; return instance;...
1. **饿汉式(静态常量)**:这是最简单的单例实现方式,它在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快,且线程安全。 ```java public class Singleton { private static final Singleton ...
这是Java特有的单例实现方式,线程安全,且防止反序列化重新创建实例。 ```java public enum DatabaseSingleton { INSTANCE; public void connectDB() { // 连接数据库的逻辑 } } ``` 以上就是数据库单例模式...
饿汉式是一种简单的单例实现方式。在类加载时,单例对象就已经创建。这种实现方式的优点是实现简单,但缺点是不管是否使用,单例对象都会被创建。 2. 懒汉式(Lazy Initialization) 懒汉式单例模式延迟了单例实例...
单例模式是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在单例模式中,类的构造函数是私有的,防止外部直接创建对象,而是通过静态...在实际应用中,应根据系统的需求和环境选择合适的单例实现方式。
在Java中,通常有三种常见的单例实现方式:懒汉式单例、饿汉式单例和登记式单例。 1. **懒汉式单例**: 懒汉式单例的特点是在类加载时不创建实例,而是等到第一次调用`getInstance()`方法时才创建。这样可以延迟...
这是最简单的单例实现方式,它在类加载时就完成了初始化,所以是线程安全的。饿汉式的优点是实现简单且线程安全,但缺点是如果单例对象长时间未被使用,会占用内存资源。 ```java public class Singleton { ...
这是最简单的单例实现方式,通过类内部定义一个静态私有实例和公有的静态获取实例的方法。如下所示: ```cpp class Singleton { private: Singleton() {} ~Singleton() {} Singleton(const Singleton&) = delete...
枚举是Java中最安全且推荐的单例实现方式,因为它自动支持线程安全并且防止反射攻击: ```java public enum Singleton { INSTANCE; public void doSomething() { // ... } } ``` ### 总结 单例模式的实现...
在"singleton.zip"压缩包中,我们可能会找到几种不同的Java单例实现方式的示例代码,包括饿汉式、懒汉式、反射实现以及内部类实现等。以下是对这些单例模式实现方式的详细解释: 1. **饿汉式(Eager Initialization...
每种实现方式都有其特点和适用场景,开发者应根据实际需求选择合适的单例实现。在实际项目中,还要考虑性能、线程安全以及代码可读性等因素。例如,如果项目中对性能要求较高,可以优先考虑静态内部类或枚举实现;...
在`__main__`模块中,我们展示了如何使用这个单例实现的`RedisCache`类进行数据的设置、获取和删除。每次调用`RedisCache`的实例方法时,实际上都是操作同一个连接池中的连接,从而有效地减少了创建和销毁连接的开销...
### Android中的单例模式详解 ...不同的单例实现方式各有优缺点,开发者应根据具体的应用场景选择最合适的实现方式。对于涉及到多线程操作的场景,建议优先考虑使用饿汉式单例或带有线程安全保护的懒汉式单例实现。
这是最常见的单例实现方式,通常通过私有构造函数和一个静态方法来保证只有一个实例。在Unity中,可以创建一个Singleton基类,然后让需要作为单例的对象继承这个基类。以下是一个简单的C#经典单例实现: ```csharp...
在实际应用中,应根据项目需求选择合适的单例实现方式。需要注意的是,单例模式可能会导致程序设计过于紧密耦合,不易于测试和扩展。因此,在使用单例时需谨慎,避免滥用。此外,如果需要依赖注入,可以考虑使用`...
最简单的单例实现方式是在类中创建一个私有的构造函数,并提供一个公共的静态方法来获取唯一的实例。这种方式在单线程环境下工作良好,但在多线程环境中可能会创建多个实例,因为它不考虑同步问题。 ```java ...
这是最简单的单例实现方式,通过在类加载时就创建实例,确保线程安全。 ```csharp public sealed class Singleton { private static readonly Singleton instance = new Singleton(); private Singleton() { } ...