Просто добавить Если вы используете метод Class.forName, он только инициализирует класс.Таким образом, из этого метода он вызывает только для Clinit, и когда вы используете newInstance для объекта, возвращенного из forName, он будет вызывать init для инициализации экземпляра.Вы можете использовать код ниже, чтобы увидеть его в отладке.
public class ByteCodeParent
{
public static String name="ByteCode";
public ByteCodeParent()
{
System.out.println("In Constructor");
}
static
{
System.out.println("In Static");
}
{
System.out.println("In Instance");
}
Для тестирования используйте
Class<ByteCodeParent> bcp2 =(Class<ByteCodeParent>) Class.forName("ByteCodeParent");
ByteCodeParent bcp4= bcp2.newInstance();