В Java кодовые блоки называются кодовыми блоками, а блоки кода можно разделить на следующие четыре типа:
1. Введение
1. Нормальный кодовый блок:
Метод метода метода в классе
2. Создайте блок кода :
Конструктор вызывается, когда объект создается, и он называется каждый раз, когда он создается, превышает приоритет над выполнением конструктора класса.
3. Статический кодовый блок:
Кодовый фрагмент, завернутый в Static {}, будет выполнен только один раз. Статические кодовые блоки имеют приоритет над выполнением блока строительства.
4. Синхронизируйте кодовый блок:
Используя кодовые блоки Synchronized () {}, завернутые в многопоточную среду, операции чтения и записи на общих данных должны быть взаимоисключающими, в противном случае это приведет к несоответствию данных. Синхронные кодовые блоки должны быть записаны в методе.
2. Сходства и различия между статическими блоками кода и построенными блоками кода
Сходства: все JVM загружают класс и выполняют до выполнения конструктора. Несколько могут быть определены в классе. Как правило, некоторые статические переменные присваиваются в блоке кода.
Разница: блоки статического кода выполняются перед нестатическими кодовыми блоками. Статические кодовые блоки выполняются только один раз на первом новом, а потом не выполняются. Вместо этого нестатические кодовые блоки выполняются один раз каждый новый.
Три. Пример
Обычный кодовый блок: {}, который появляется в методе или операторе, называется обычным блоком кода. Порядок выполнения обычных блоков кода и общих операторов определяется порядок, в котором они появляются в коде, сначала появляются.
открытый тест класса {public static void main (string [] args) {{int x = 3; System.out.println ("переменная x =" + x); } int x = 1; System.out.println ("переменная x =" + x); {int y = 7; System.out.println ("переменная y =" + y); /Конструкция кодового блока: кодовый блок, который непосредственно определяется в классе и не имеет статического ключевого слова, называется {} Construct Code Block. Блок кода конструктора вызывается при создании объекта, и каждый раз, когда объект создается, он вызывается, и порядок выполнения блока кода конструктора имеет приоритет над конструктором класса. Если есть несколько построенных кодовых блоков, порядок выполнения определяется по порядку, в котором они появляются в коде, сначала появляются первое выполнение.
открытый класс Test1 {{System.out.println ("Первый строительный блок");} public test1 (int i) {system.out.println ("th" + i + "sub-sub-sub-ball" + "конструктор");} {system.out.println ("второй строительный блок");} public void main (string args) {new Test1; 1); 1); 1); Test1 (2);}}/** Результат выполнения Первый строительный блок* Второй строительный блок* 0th Colluctor* Первый строительный блок* Второй строительный блок* Первый строительный блок* Первый строительный блок* Первый строительный блок* Второй строительный блок* Второй вызов построить метод*//Статический кодовый блок: кодовый блок, объявленный с использованием статического ключевого слова в Java. Статические блоки используются для инициализации классов и инициализации атрибутов класса. Каждый статический кодовый блок будет выполнен только один раз. Поскольку JVM выполняет статические кодовые блоки при загрузке класса, статические кодовые блоки выполняются перед основным методом.
Если класс содержит несколько статических блоков кода, он будет выполнен сначала, то определенный код будет выполнен позже.
Уведомление:
1. Статические кодовые блоки не могут существовать в каком -либо теле метода.
2. Статические кодовые блоки не могут напрямую доступ к переменным экземпляра и методам экземпляра, и должны быть доступны через объект экземпляра класса.
Public Class Test3 {public Static String static_field = "Статический атрибут"; // static block static {System.out.println (static_field); System.out.println ("Статический кодовый блок 1");} public String Field = "Нестатический атрибут"; // нестатический блок {System.out.println (Field); 2 ");} public initoDertest () {System.out.println (" no Parameter Constructor ");} public static void main (string [] args) {initodertest test = new initoDertest ();} // Нестатический блок {System.out.println (Field); System.out.out.println (" Не-статический код. {System.out.println (static_field); System.out.println ("Статический кодовый блок 2");}}/** Запуск Статический атрибут Result* Статический кодовый блок 1* Статический атрибут* Статический код Блок 2* Нестатический атрибут* Нестатический код Блок 2* Нестатический атрибут* Нестатический код 1* Нестатический атрибут*/Конструктор не статический кодовый блок 2* Нестатический атрибут* Нестатический код.Следующий код демонстрирует приоритетную связь между отдельными блоками кода от создания объекта и вызовом метода:
Public Class Person {static {System.out.println ("1. Я - статический блок, который имеет приоритет над выполнением строительного блока! И он выполняется только один раз, когда первый объект создается!");} {System.out.println ("2. Я являюсь конструктором, который принимает приоритет над выполнением метода строительства! function1 () {System.out.println («Я обычный кодовый блок в нестатическом методе, который превышает приоритет, когда метод называется!»);} public static void function2 () {System.out.println («Я-нормальный кодовый блок в статическом методе. Метод выполняется позже, чем статический блок!»);Тестовый класс:
открытый класс hellowrold {public static void main (string [] args) {new Person (). function1 (); new Person (). Function1 (); System.out.println ("=========================================================================== ===================================================================== ===================================================================== ====================================================================== ===================================================================== ===================================================================== =====================================================================Результаты работы:
Мы видим, что статические блоки всегда выполняются первыми, и будут выполнены только один раз, когда создается первый экземпляр класса; Второй - блок конструктора; и третий - метод конструктора.
Суммировать
Выше приведено в подробном объяснении четырех кодовых блоков в Java, и я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!