Решение, отправленное Stu Thompson, допустимо в Java5.0 и позже. Но я предпочел бы не использовать его, потому что я думаю, что это подвержено ошибкам.
легко забыть энергозависимый оператор и трудный понять, почему это необходимо. Без энергозависимого этот код больше не был бы ориентирован на многопотоковое исполнение из-за перепроверяемого антишаблона блокировки. Посмотрите больше об этом в абзаце 16.2.4 Параллелизм Java на практике . Короче говоря: Этот шаблон (до Java5.0 или без энергозависимого оператора) мог возвратить ссылку на объект Панели, который находится (все еще) в неправильном состоянии.
Этот шаблон был изобретен для оптимизации производительности. Но это больше - действительно не реальное беспокойство. Следующий ленивый код инициализации быстр и - что еще более важно, легче читать.
class Bar {
private static class BarHolder {
public static Bar bar = new Bar();
}
public static Bar getBar() {
return BarHolder.bar;
}
}
Можно ли вставить этот сценарий где-нибудь или часть сценария, где это пытается считать клавишу ENTER.
Также попытка это, принимая его ожидающий новой строки:
./samp03svr < < <
echo
&