import java.util.*;
import java.lang.*;
import java.io.*;
class Logger {
private static final Logger logger = new Logger();
private static final String test = "value";
private Logger() {
System.out.println("Called Constructor!");
}
public static Logger getLogger() {
return logger;
}
}
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Logger logger;
Logger logger2 = Logger.getLogger();
}
}
В дополнение к пониманию того, является ли приведенный выше код одноэлементным или нет, у меня есть еще несколько сомнений.
Q1) Когда я создал переменную logger
, почему не вызывается приватный конструктор, а когда я вызывал функцию getLogger()
, почему вызывается приватный конструктор?
Q2) когда присваивается значение переменной test
? до или после вызова частного конструктора?
Заранее спасибо!