java - 由于类没有状态,因此无需延迟初始化

标签 java spring spring-mvc lazy-loading

在我的java学习之旅中,我遇到了带有以下注释的代码:

/**
 * Singleton instance - no need to lazy init as the class holds no state.
 */
public static final SuperParentMarshaller instance = new SuperParentMarshaller ();

这是什么意思?这会是一堂什么样的课呢?其目的是?

提前谢谢您。

最佳答案

这是您提到的急切初始化。在请求该对象之前,该对象已经初始化。使其变得惰性意味着该对象将在第一次调用时进行初始化。这是一个单一的设计模式。整个应用程序中只会有一个该类的对象。

// eager loading of INSTANCE    
public class Singleton
{
//initailzed during class loading
private static final Singleton INSTANCE = new Singleton();

//to prevent creating another instance of Singleton
private Singleton(){}

public static Singleton getSingleton(){
    return INSTANCE;
}
}

延迟初始化是:

// lazy initialization
public class Singleton
{
//initailzed during class loading
private static final Singleton INSTANCE;

//to prevent creating another instance of Singleton
private Singleton(){}

public static Singleton getSingleton(){
    // object will be initialized on it's first call.
    if(INSTANCE == null)
        INSTANCE = new Singleton();
    return INSTANCE;
}
}

关于java - 由于类没有状态,因此无需延迟初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501474/

相关文章:

java - 如何比较 mySQL 中的日期与 java 中的当前日期?

java - 如何获取 jasperreport 文件 (.JRXML) 加载到系统的确切位置?

java - 无法在 Spring Boot 上设置静态网站

spring-mvc - 使用 WebApplicationInitializer 上下文路径的 Tomcat 9 Spring 应用程序不起作用

java - 在 Java 和 C++ 应用程序中使用 protobuf 进行解析时出错

java - -Java 中的无穷值

java - Tomcat 7 上的 Spring 应用程序问题

java - Ajax post调用应该返回到html页面

java - 无法配置数据源 : 'url' attribute is not specified and no embedded datasource could be configured. SPRING

java - 从列表中调用随机值元素