Maison  >  Article  >  Java  >  Analyse d'exemples de processus de chargement de classe Java

Analyse d'exemples de processus de chargement de classe Java

WBOY
WBOYavant
2023-05-14 15:25:061384parcourir

Explication

Lorsque le programme utilise activement une classe, si la classe n'a pas été chargée en mémoire, le système utilisera les trois étapes suivantes pour cela la classe est initialisée.

Étapes de chargement de la classe

1 Chargement : chargez le contenu du bytecode du fichier de classe en mémoire et convertissez ces données statiques en runtime. structure de données de la zone de méthode, puis génère un objet java.lang.Class représentant cette classe, qui sert d'entrée d'accès aux données de classe dans la zone de méthode.

2. Liaison : Le processus de fusion du code binaire de la classe Java dans l'état d'exécution de la JVM.

3. Le processus d'exécution de la méthode () du constructeur de classe.

Instance

public class ClassLoadingTest{
    public static void main (String [] args){
        System.out.println(test.m);
    }
}
 
class test{
    static {
        m = 300;
    }
    static int m = 100;
}
//第一步:加载
//第二步:链接结束后m=0
//第三步:初始化结束后,m的值由<clinit>()方法执行决定
/*
这个test构造器<clinit>()方法由类变量的赋值和静态代码块中的语句按照顺序合并产生,类似于
<clinit>(){
m = 300;
m = 100;
}
*/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer