Поиск по Javascript на сервере

Как цитируется @irreputable, volatile не дорогая. Даже если это дорого, согласованность должна быть отдана приоритету над производительностью.

Есть еще один чистый элегантный способ для Lazy Singletons.

public final class Singleton {
    private Singleton() {}
    public static Singleton getInstance() {
        return LazyHolder.INSTANCE;
    }
    private static class LazyHolder {
        private static final Singleton INSTANCE = new Singleton();
    }
}

Исходная статья: Инициализация-по-запросу_holder_idiom из википедии

В программной инженерии идиома Инициализация по требованию (шаблон дизайна) - это ленивый загруженный синглтон. Во всех версиях Java идиома обеспечивает безопасную, очень параллельную ленивую инициализацию с хорошей производительностью

. Поскольку у класса нет инициализируемых переменных static, инициализация завершается тривиально.

Определение статического класса LazyHolder внутри него не инициализируется до тех пор, пока JVM не определит, что LazyHolder должен быть выполнен.

Статический класс LazyHolder выполняется только тогда, когда статический метод getInstance вызывается в классе Singleton, и в первый раз это произойдет, JVM будет загружать и инициализировать класс LazyHolder.

Это решение является потокобезопасным, не требуя специальных языковых конструкций (т.е. volatile или synchronized).

1
задан Cumhur Ata 29 March 2019 в 13:39
поделиться

1 ответ

Конвертируйте свою cDate в Java Date, а затем в String.
Заменить cDate в запросе на:

dateFormatter.format(cDate.toJavaDate())
0
ответ дан Knut Herrmann 29 March 2019 в 13:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: