class Hello12 {
static int b = 10;
static {
b = 100;
}
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
При запуске выше кода вывод приходит как 100, потому что, когда я вызывал класс Hello, статический блок выполняется сначала, устанавливая значение b до 100 и отображая его. Но когда я пишу этот код:
class Hello12 {
static {
b = 100;
}
static int b = 10;
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
Здесь вывод будет равен 10. Я ожидаю ответа как 100, потому что, как только статический блок выполняется, он дал значение b как 100. Поэтому, когда в main() я вызывал Hello.b он должен был ссылаться на b (= 100). Какова память, выделенная для b в обоих кодах?