Недавно я задал вопрос о java-связанном вопросе в интервью следующему коду, так как я очень новичок в java и едва код на Java, поэтому я действительно не знаю, что делает следующий код.Singleton pattern interview
Вопрос был Выберите параметр, описывающий худшее, с помощью следующего кода:
public class Bolton {
private static Bolton INST = null;
public static Bolton getInstance()
{
if (INST == null)
{
INST = new Bolton();
}
return INST;
}
private Bolton() {
}
}
Вот варианты для этого вопроса
- Более один экземпляр Болтона может не будет создано
- Болтон никогда не будет создан
- Con structor является приватным и не может быть названо
- Значение может быть мусора, а также призыв к GetInstance может возвращать данные мусора
Какой из вышеперечисленных вариантов является правильным? И почему?
Я бы с 1. В принципе, нет синхронизации потоков. Это позволило бы двум или более потокам создать более одного экземпляра класса. Я также предлагаю, чтобы он нарушил соглашения о назначении Java, но это не вариант. – MadProgrammer
Технически, 2 также является правильным. Исходя из этого кода, 'Bolton' никогда не будет создан (getInstance() фактически не вызывается). :) –
Вариант 1 правильный –