Maison >Java >javaDidacticiel >Quelles sont les deux méthodes d'exécution du bytecode Java ?

Quelles sont les deux méthodes d'exécution du bytecode Java ?

WBOY
WBOYavant
2023-04-28 09:34:061430parcourir

1. Description

(1) Méthode de compilation juste à temps : l'interpréteur compile d'abord le bytecode en code machine, puis exécute le code machine.

(2) Méthode d'interprétation et d'exécution : L'interpréteur termine toutes les opérations du programme de bytecode Java en interprétant et en exécutant un petit morceau de code à chaque fois.

La deuxième méthode est couramment utilisée. La spécification JVM étant suffisamment flexible, elle peut convertir plus efficacement le bytecode en code machine. Pour les applications qui ont des exigences plus élevées en matière de vitesse d'exécution, l'interpréteur peut être utilisé pour compiler immédiatement le bytecode Java en code machine, garantissant ainsi la portabilité et les hautes performances du code Java.

2. Exemple

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
         0: iconst_1
         1: istore_1
         2: iconst_2
         3: istore_2
         4: iconst_1
         5: iconst_2
         6: invokestatic  #2                  // Method calc:(II)I
         9: istore_3
        10: return
        
  static int calc(int, int);
    descriptor: (II)I
    flags: ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
         0: iload_0
         1: i2d
         2: ldc2_w        #3                  // double 2.0d
         5: invokestatic  #5                  // Method java/lang/Math.pow:(DD)D
         8: iload_1
         9: i2d
        10: ldc2_w        #3                  // double 2.0d
        13: invokestatic  #5                  // Method java/lang/Math.pow:(DD)D
        16: dadd
        17: invokestatic  #6                  // Method java/lang/Math.sqrt:(D)D
        20: d2i
        21: ireturn

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