Este artículo estudia principalmente citas activas y pasivas de clases en Java, como se detalla a continuación.
Cita activa , aquí hay cinco escenarios de citas activas
1. Al encontrar las cuatro instrucciones de Bytecode de New, Getstatic, Putstatic e Invokestatic, si la clase no se inicializa, se inicializará, creará un objeto, lee o establece campos estáticos, y llamará métodos estáticos.
2. Reflexión
3. La clase principal se inicializará antes de que se inicialice la subclase.
4. Una clase que contiene el método principal se inicializará cuando comience la máquina virtual.
5. Al usar el soporte de lenguaje dinámico de JDK (desconocido)
Cita pasiva :
clase superclase {static {syso ("super init"); } public static int value = 123;} La subclase de clase extiende SuperClass {static {syso ("sub init")}} public class constantClass {public static final hw = "helloworld";} clase pública de clase pública {main () {syso (subclass.value) // superclass sc [] = newclass [10] [10] //syso(constantClass.hw);}} Salida: super init 123 Solo la clase que define directamente este campo se inicializará para acceder a campos estáticos. La subclase no se inicializará. El primer comentario se cancela y se ejecuta sin ningún resultado. La clase de referencia a través de la definición de matriz no activará la inicialización de la clase, sino que inicializará una inicialización de una subclase que la máquina virtual genera automáticamente y se heredará desde la clase de objeto. Esta clase representa una matriz. Las propiedades y métodos de la matriz se implementan en esta clase (atributos de longitud y clon ()). No habrá salida después de que se cancele el segundo comentario. Se colocará constante en la piscina constante durante la compilación. ConstantClass.hw se coloca en el grupo constante de la clase de noinicialización durante la compilación. La noinicialización no tiene una referencia simbólica a la noinicialización.
Lo anterior se trata de la breve discusión de este artículo sobre las citas activas y pasivas a las clases en Java, y espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!