当前位置: 首页 > 面试题库 >

在Java中实现单例模式的有效方法是什么?

慕才
2023-03-14
问题内容

在Java中实现单例模式的有效方法是什么?


问题答案:

使用一个枚举:

public enum Foo {
    INSTANCE;
}

约书亚·布洛赫(Joshua Bloch)在Google I / O 2008上的“
有效的Java重新加载”演讲中解释了这种方法:链接到视频。另请参见他的演示文稿的幻灯片30-32(effective_java_reloaded.pdf):

实现可序列化单例的正确方法

public enum Elvis {
    INSTANCE;
    private final String[] favoriteSongs =
        { "Hound Dog", "Heartbreak Hotel" };
    public void printFavorites() {
        System.out.println(Arrays.toString(favoriteSongs));
    }
}

编辑:
“有效Java”
的在线部分说:

“该方法在功能上等同于公共领域方法,除了它更简洁,免费提供序列化机制,甚至在面对复杂的序列化或反射攻击时也提供了防止多重实例化的坚强保证。尚未被广泛采用
的单元素枚举类型是实现单例的最佳方法 。”



 类似资料:
  • 本文向大家介绍PHP单例模式是什么 php实现单例模式的方法,包括了PHP单例模式是什么 php实现单例模式的方法的使用技巧和注意事项,需要的朋友参考一下 一、什么是单例模式? 1、含义       作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 2、单例模式的三个要点: (1).

  • 问题内容: 谁能提供一个单例模式的示例并解释为什么有必要吗? 问题答案: 在走单身路线之前,请重新考虑。您真的需要单身人士吗?如果您需要实现单例的方案,那是因为对它们的需求并没有真正表达出来。您最好不要仅在代码库中引入单例,因为遵循设计模式会很酷。 干净的代码讨论-全局状态和单例 一次还不够 表演者单身人士 但是,真正值得了解的是Dependency Injection 。 现在,如果您真的想用J

  • 本文向大家介绍c# 单例模式的实现方法,包括了c# 单例模式的实现方法的使用技巧和注意事项,需要的朋友参考一下 单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式。 单例模式的实现分为两种:饿汉式和懒汉式。前者是在静态构造函数执行时就立即实例化,后者是在程序执行过程中第一次需要时再实例化。两者有各自适用的场景,实现方式也都很简单,唯一在设计时

  • 本文向大家介绍Java单例模式实现的几种方式,包括了Java单例模式实现的几种方式的使用技巧和注意事项,需要的朋友参考一下 Java单例模式实现的几种方式 单例模式好多书上都是这么写的:   但是实际开发中是不会这么写的,因为有一个严重的问题,多线程并发访问的时候,可能会产生多个实例!! 下面列举几个常用的方法: 1.使用synchronized 关键字  2.加锁   3.利用静态变量: 以上就

  • 我曾看到一些人这样评论单例模式是一种反模式。我想知道为什么?

  • 本文向大家介绍php单例模式的简单实现方法,包括了php单例模式的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 php单例模式的简单实现方法 首先我们要知道明确单例模式这个概念,那么什么是单例模式呢? 单例模式顾名思义,就是只有一个实例。 作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例, 这个类我们称之为单例类。 单例模式的要点有三个: 一是