Поскольку я пытаюсь понять вещи лучше, я понимаю, как мало я знаю.Извините, если это звучит как простой или глупый вопрос.
Действительно ли нам нужен статический блок, если он предназначен ТОЛЬКО для инициализации переменных STATIC без какой-либо другой логики, закодированной в блоке.Мы можем напрямую выполнить рьяную инициализацию этих статических переменных, верно?Потому что, насколько я понимаю, статический блок выполняется при загрузке класса, как и инициализация статических переменных.И если это только для инициализации переменных, недостаточно для того, чтобы инициализировать статическую переменную вместо того, чтобы иметь для этого эксклюзивный статический блок.
Например, возьмите следующий код и вызовите егоСлучай 1.
static String defaultName = null;
static String defaultNumber = 0;
static {
defaultName = "John";
defaultNumber = "+1-911-911-0911";
}
И следующий код, и назовите его Случай 2.
static String defaultName = "John";
static String defaultNumber = "+1-911-911-0911";
Итак, не Случай 1 и Случай 2 дают одинаковый результат или производительность.Нужен ли статический блок вообще в подобных случаях (для таких целей, как удобочитаемость, например, инициализация всех данных в одном месте или около того), в то время как случай 2 служит цели чисто и ясно?Чего мне не хватает?