Résumé d'apprentissage Java: 32 (classe Runtime)

Classe d'exécution

Cette classe est utilisée pour indiquer l'état du runtime de la machine virtuelle (JVM). Chaque fois que la JVM est démarrée, elle correspond à une instance Runtime et il n'y a qu'une seule instance. La classe Runtime peut être utilisée pour démarrer de nouveaux processus ou effectuer des opérations dans l'environnement d'exécution approprié. De plus, cette classe est conçue avec un motif singleton et les objets ne peuvent pas être instanciés directement. Par conséquent, la méthode pour obtenir un objet instancié Runtime est: public static Runtime getRuntime ()

Méthodes courantes de la classe Runtime

Non. La méthode Tapez La description
1 Runtime statique public getRuntime () Ordinaire Récupère l'objet instancié de la classe Runtime
2 public long maxMemory () Ordinaire Renvoie la taille de mémoire maximale disponible
3 public long totalMemory () Ordinaire Renvoie toute la taille de mémoire disponible
4 public long freelMemory () Ordinaire Renvoyer toute la taille de la mémoire libre
5 public void gc () Ordinaire Effectuer des opérations de récupération de place
6 public Process exec (commande String) lever IOException Ordinaire Créer un nouveau processus

Remarque: lors de l'obtention des informations sur la mémoire, les données renvoyées sont longues

Exemple: respectez la taille de la mémoire

package Project.Study.RuntimeClass;

public class Test1 {
    public static void main(String[]args){
        Runtime run=Runtime.getRuntime();				//取得Runtime类的实例化对象
        System.out.println("MAX="+run.maxMemory());		//取得最大可用内存
        System.out.println("TOTAL="+run.totalMemory());	//取得全部可用内存
        System.out.println("FREE="+run.freeMemory());	//取得空闲内存
    }
}
//结果:
//MAX=2111832064
//TOTAL=132120576
//FREE=129517640

Ce programme obtient dynamiquement les informations de chaque espace mémoire du système actuel et l'unité de résultat renvoyée est l'octet.

Il convient de noter que nous pouvons définir la taille de la mémoire au démarrage
. Division de la mémoire en Java:Division de la mémoire en Java

Chaque espace mémoire aura une zone d'extension de mémoire, qui sera développée dynamiquement lorsque la mémoire est insuffisante. Nous pouvons utiliser les paramètres suivants pour appliquer un espace mémoire:
"-Xms": allocation initiale de mémoire, la taille par défaut est 1/64 de la taille de la mémoire physique, mais moins de 1G;
"-Xmx": mémoire allouée maximale, la taille par défaut est 1/4 de la taille de la mémoire physique , Mais moins de 1G;
"-Xmn": définissez la taille de la mémoire de segment de mémoire de la jeune génération.
Généralement, les valeurs des deux paramètres "-Xms" et "-Xmx" sont définies de la même manière pour réduire le temps d'application de l'espace mémoire.

Utilisation de la méthode gc ()

La méthode gc () peut réaliser l'opération de traitement de la libération de la mémoire de déchets

Exemple: observer l'utilisation de la méthode gc ()

package Project.Study.RuntimeClass;

public class Test2 {
    public static void main(String[]args){
        Runtime run=Runtime.getRuntime();	//取得Runtime类的实例化对象
        String str="";
        for(int x=0;x<2000;x++){	//进行循环操作,产生大量垃圾,占用内存
            str+=x;
        }
        System.out.println("【垃圾处理前的内存量】MAX="+run.maxMemory());
        System.out.println("【垃圾处理前的内存量】TOTAL="+run.totalMemory());
        System.out.println("【垃圾处理前的内存量】FREE="+run.freeMemory());
        run.gc();	//释放垃圾空间
        System.out.println("[垃圾处理后的内存量]MAX="+run.maxMemory());
        System.out.println("[垃圾处理后的内存量]TOTAL="+run.totalMemory());
        System.out.println("[垃圾处理后的内存量]FREE="+run.freeMemory());
    }
}
//结果:
//【垃圾处理前的内存量】MAX=2111832064
//【垃圾处理前的内存量】TOTAL=132120576
//【垃圾处理前的内存量】FREE=122711832
//[垃圾处理后的内存量]MAX=2111832064
//[垃圾处理后的内存量]TOTAL=10485760
//[垃圾处理后的内存量]FREE=9292944 (???)

À propos de la récupération de place et de la création d'objets
Processus de création d'objets

La classe Runtime a une fonction intéressante qui peut être utilisée pour appeler des programmes exécutables natifs et créer des processus.

Exemple: créer un processus "mspaint.exe" (Windows Painter)

package Project.Study.RuntimeClass;

public class Test3 {
    public static void main(String[]args) throws Exception {
        Runtime run=Runtime.getRuntime();		//取得Runtime实例化对象
        Process pro=run.exec("mspaint.exe");	//调用本机可执行程序
        Thread.sleep(2000);						//运行2s后自动关闭
        pro.destroy();							//销毁进程
    }
}

Effet:
Insérez la description de l'image ici

49 articles originaux publiés · 25 loués · 1515 visites

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45784666/article/details/105181191
conseillé
Classement