Maison > Java > javaDidacticiel > 5 outils JDK que tout développeur Java devrait connaître

5 outils JDK que tout développeur Java devrait connaître

Y2J
Libérer: 2017-04-18 14:11:06
original
1799 Les gens l'ont consulté

JDK est un kit de développement logiciel pour le langage Java. Sans lui, les programmes Java ne peuvent pas être compilés. Actuellement, il existe de nombreux outils JDK devant tout le monde, mais les plus couramment utilisés sont java.exe, javac.exe, jar, etc. A part ça, qu'y a-t-il d'autre ? L'auteur de cet article, Joe, a de nombreuses années d'expérience en développement Java. Il a partagé un article sur son blog : 5 outils JDK que tout développeur Java devrait connaître. L'auteur l'a compilé et voici la traduction.

Actuellement, de nombreux outils peuvent être liés au JDK Java, parmi lesquels java.exe et javac.exe sont des armes essentielles pour tout ingénieur Java. En même temps, il existe de nombreux autres outils Java. JDK Les outils sont sous les yeux de tous. La plupart des programmeurs Java n'ont jamais utilisé ces outils, mais s'ils le font, ils rendront votre travail plus efficace.

5 outils JDK que tout développeur Java devrait connaître

J'ai présenté ces outils dans des tutoriels précédents. Maintenant, je vous présente les 5 outils les plus importants.

 1.javap

 javap est un désassembleur de fichiers de classe Java qui peut afficher le bytecode généré par le compilateur Java et constitue un bon outil pour analyser le code. Utilisons javap pour compiler ce code Hello World, puis décomposons-le.

public class HelloWorld {
	public static void main(String... args) {
		System.out.println("Hello World!");
	}
}
Copier après la connexion
C:UsersCycleDesktop>javap HelloWorld

Je n'ai transmis aucun paramètre, j'ai juste exécuté l'outil javap et j'ai obtenu le résultat ci-dessus. Par défaut, il affichera le package, les champs protégés et publics et les méthodes des classes Java.

Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
  public static void main(java.lang.String...);
}
Copier après la connexion
C:UsersCycleDesktop>javap -c HelloWorld

Si vous passez le paramètre -c à javap, vous obtiendrez le résultat ci-dessus. Il s'agit d'une très bonne information, et les instructions générées comme celle-ci peuvent nous aider à mieux comprendre la JVM.

Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."":()V
       4: return

  public static void main(java.lang.String...);
    Code:
       0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #3                  // String Hello World!
       5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return
}
Copier après la connexion

 2.jvisualvm

jvisualvm est un outil de surveillance et d'analyse de machine virtuelle Java. Cet outil fournit une fenêtre d'interface graphique et peut comprendre intuitivement les informations d'exécution Java. la demande. jvisualvm intègre de nombreux outils, tels que jmp, jinfo, jstat, jstack, JConsole, etc. Il fait partie du JDK depuis la mise à jour 7 du JDK 6.

5 outils JDK que tout développeur Java devrait connaître

Dans cet article sur la surveillance et l'analyse du garbage collection Java, j'ai utilisé jvisualvm. Vous souhaiterez peut-être aller voir comment utiliser jvisualvm.

 3.jcmd

jcmd est principalement utilisé pour envoyer des requêtes de commande de diagnostic à la JVM Java Lorsqu'il n'y a pas de liste de paramètres jcmd dans le processus JVM, jcmd s'exécutera. immédiatement . C'est l'équivalent de l'outil jps. J'ai démarré jconsole et je l'ai passé en paramètre à jcmd. J'ai obtenu les résultats suivants. Cela peut également être obtenu via l'identifiant du processus (pid).

C:\Users\Cycle>jconsole

C:\Users\Cycle>jcmd JConsole help
3344:
The following commands are available:
JFR.stop
JFR.start
JFR.dump
JFR.check
VM.native_memory
VM.check_commercial_features
VM.unlock_commercial_features
ManagementAgent.stop
ManagementAgent.start_local
ManagementAgent.start
Thread.print
GC.class_stats
GC.class_histogram
GC.heap_dump
GC.run_finalization
GC.run
VM.uptime
VM.flags
VM.system_properties
VM.command_line
VM.version
help
Copier après la connexion
C:UsersCycle>jcmd JConsole VM.uptime
3344:289.977 s

 VM.uptime affiche la durée d'exécution spécifique de l'application Java.

Lors du débogage, les paramètres suivants peuvent être utilisés pour le débordement de pile de threads de verrous simultanés.

jcmd Thread.print -l

 4.jhat

 Le nom complet de jhat est un outil d'analyse de tas Java. Il est principalement utilisé pour analyser et parcourir les fichiers de tas, ce qui ressemble parfois davantage à un outil de visualisation. jhat analyse le vidage du tas et démarre un serveur Web, puis l'utilisateur peut afficher le tas dans le navigateur. jhat prend en charge le langage de requête objet (OQL) et certaines requêtes prédéfinies.

Pour utiliser l'outil jmap pour générer un tas, nous devons utiliser le paramètre -dump Voici la liste des paramètres que l'outil jhat peut utiliser :

C:\Users\Cycle>jhat -help
Usage:  jhat [-stack ] [-refs ] [-port ] [-baseline ] [-debug ] [-version] [-h|-help] 

        -J          Pass  directly to the runtime system. For
                          example, -J-mx512m to use a maximum heap size of 512MB
        -stack false:     Turn off tracking object allocation call stack.
        -refs false:      Turn off tracking of references to objects
        -port :     Set the port for the HTTP server.  Defaults to 7000
        -exclude :  Specify a file that lists data members that should
                          be excluded from the reachableFrom query.
        -baseline : Specify a baseline object dump.  Objects in
                          both heap dumps with the same ID and same class will
                          be marked as not being "new".
        -debug :     Set debug level.
                            0:  No debug output
                            1:  Debug hprof file parsing
                            2:  Debug hprof file parsing, no server
        -version          Report version number
        -h|-help          Print this help and exit
                    The file to read

For a dump file that contains multiple heap dumps,
you may specify which dump in the file
by appending "#" to the file name, i.e. "foo.hprof#3".

All boolean options default to "true"
Copier après la connexion

J'ai créé. un vidage de tas pour le fichier d'application jconsole et utilisez la commande suivante pour exécuter l'ID de processus 3344 :

jmap -dump:format=b,file=heap.bin 3344

Maintenant que le vidage de tas le fichier est prêt, exécutez la commande suivante Et un service sera démarré :

jmap -dump:format=b,file=heap.bin 3344

Le résultat sera affiché dans la console :

C:\Users\Cycle\Desktop>jhat heap.bin
Reading from heap.bin...
Dump file created Sun Nov 16 19:26:35 IST 2014
Snapshot read, resolving...
Resolving 641209 objects...
Chasing references, expect 128 dots..................
Eliminating duplicate references.....................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
Copier après la connexion

Dans le navigateur Entrez : http://localhost:7000/ et les détails du tas dump apparaîtront :

5 outils JDK que tout développeur Java devrait connaître

 5.Oracle Java Mission Control

Dans le cadre de la stratégie d'intégration JVM, il est principalement utilisé pour unifier les VM HotSpot et JRockit. Actuellement, JRockit Mission Control est disponible dans la version standard de Java SE. Java Mission Control (JMC) fonctionne avec Java Flight Recorder pour HotSpot JVM pour enregistrer les données de base et les événements. Il s'agit d'un outil de réglage qui fonctionne avec Oracle JDK. Lorsqu'un problème survient, ces données peuvent être utilisées pour l'analyse.

Les développeurs peuvent utiliser la commande jmc pour créer des outils JMC.

5 outils JDK que tout développeur Java devrait connaître

5 outils JDK que tout développeur Java devrait connaître

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal