Статические блоки в Java
Unlike C++, Java supports a special block, called static block (also called static clause) which can be used for static initializations of a class. This code inside static block is executed only once: the first time the class is loaded into memory. For example, check output of following Java program.
// filename: Main.java class Test { static int i; int j; // start of static block static { i = 10 ; System.out.println( "static block called " ); } // end of static block } class Main { public static void main(String args[]) { // Although we don"t have an object of Test, static block is // called because i is being accessed in following statement. System.out.println(Test.i); } } |
Выход:
статический блок называется
10
Also, static blocks are executed before constructors. For example, check output of following Java program.
// filename: Main.java class Test { static int i; int j; static { i = 10 ; System.out.println( "static block called " ); } Test(){ System.out.println( "Constructor called" ); } } class Main { public static void main(String args[]) { // Although we have two objects, static block is executed only once. Test t1 = new Test(); Test t2 = new Test(); } } |
Выход:
статический блок называется
Конструктор называется
Конструктор называется
Что, если мы хотим выполнить какой-то код для каждого объекта?
Мы используем блок инициализатора в Java
Использованная литература:
Мыслить в Java Book
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .