Имеется два класса, объявленные в файле.
Что будет выведено на экран после запуска?
Test.java:

class Singleton {
	private static Singleton s = new Singleton();
	protected Singleton() {
		System.out.println("S");
	}
	public static Singleton getInstance() {
		return s;
	}
}
	
public class Test {
	public void method() {
		Singleton.getInstance();
	}
	public static void main(String [] str) {
		new Test();
	}
}
Explanation

Инициализация статических полей осуществляется при инициализации класса.Инициализация класса, в свою очередь, выполняется при первом обращении к классу (создание экземпляра класса, обращение к статическому полю или методу и т.д.)

Более подробно про инициализацию классов можно прочитать в спецификации языка Java: docs.oracle.com/javase/...jls-12.htm


Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты