Сколько раз метод <clinit>может выполняться в Java? - PullRequest
0 голосов
/ 27 февраля 2020

Правильно ли говорить, что метод выполняется только один раз для определенного класса?

1 Ответ

0 голосов
/ 27 февраля 2020

Я создал класс Test и сослался на него следующим образом:

  • new operator
  • отражение

Блок получил ссылку 1 раз только

public class ClinitTest {

    public static void main(String[] args) throws ClassNotFoundException {
        Test b = new Test(); // initialization through NEW operator
        Class<Test> bcp2 =(Class<Test>) Class.forName("Test"); //initialisation through reflection
    }

}

class Test
{
    public static String name="Test";
    public Test()
    {
        System.out.println("In Constructor");
    }

    static
    {
        System.out.println("In Static");
    }

    {
        System.out.println("In Instance");
    }
}
...