Uno dei miei amici mi ha chiesto che caricherà prima la variabile statica o il blocco statico.Quale sarà caricato prima la variabile statica o il blocco statico?
La mia risposta punta alla variabile statica.
Così mi ha dato due equazioni e disse di distinguere tra loro
prima equazione
public class Some {
public static void main(String args[])
{
System.out.println(Some.x);
}
static {
System.out.println(Some.x);
}
static int x=90;
}
O/P: 0 90
seconda equazione
public class Some {
public static void main(String args[])
{
System.out.println(Some.x);
}
static int x=90;
static {
System.out.println(Some.x);
}
}
O/P: 90 90
Ho provato a decompilare il codice byte e ho trovato lo stesso per entrambe l'equazione di cui sopra. Per favore aiutami a distinguere tra loro. Sono confuso quando la variabile statica verrà inizializzata.
Le cose statiche vengono eseguite in sequenza, nell'ordine in cui è definita nella classe. –
Sei sicuro che il codice byte sia lo stesso? Mi sarei aspettato che le dichiarazioni comparissero in un ordine diverso e, come sottolinea @Sudhanshu, l'ordine di dichiarazione è importante. –
@PatriciaShanahan ya per entrambi il codice byte equazione è lo stesso. – Hablu