Systemクラスのよくある使い方
1.主にシステム環境変数情報を取得します。
次のようにコードをコピーします。
public static void sysProp()throws 例外{
Map<String,String> env = System.getenv();
//システムのすべての環境変数を取得します
for(文字列名:env.keySet()){
System.out.println(name + " : " +env.get(name));
}
// 指定されたシステムの環境変数の値を取得します
System.out.println(env.get("JAVA_HOME"));
// システムのすべてのプロパティを取得します
プロパティ prop = System.getProperties();
//システムプロパティを設定ファイルに保存します
prop.store(new FileOutputStream("Prop.properties"),"システム プロパティ");
// 特定のシステム プロパティを出力します
System.out.println(System.getProperty("os.name"));
}
2. システム時間に関連するメソッド操作
次のようにコードをコピーします。
public static void sysTime(){
//システムの現在時刻ミリ秒を取得します currentTimeMillis() (現在時刻と UTC 1970.1.1 00:00 の時差を返します)
長い時間 = System.currentTimeMillis();
System.out.println(時間);
Long time1 = System.nanoTime();//主にナノ秒単位の時差を計算するために使用されます
長い時間 3 = System.currentTimeMillis();
for(Long i =0l;i <999l; i++){}
長い時間 2 = System.nanoTime();
長い時間 4 = System.currentTimeMillis();
System.out.println(time2 - time1+ " : " +(time4 - time3));
}
3. 2 つのオブジェクトがヒープ メモリ内で同じであるかどうかを識別する
次のようにコードをコピーします。
パブリック静的無効identityHashCode(){
//str1 str2 は 2 つの異なる String オブジェクトです
String str1 = new String("helloWorld");
String str2 = new String("helloWorld");
//String クラスは hashCode() メソッドをオーバーライドするため、HashCode は同じです
System.out.println(str1.hashCode()+" : "+str2.hashCode());
//同じオブジェクトではないため、計算される HashCode は異なります。
//実はこのメソッドは、Object の HashCode 計算メソッドという最もオリジナルな HashCode 計算メソッドを使用しています。
System.out.println(System.identityHashCode(str1) + " : "+ System.identityHashCode(str2));
文字列 str3 = "こんにちは";
文字列 str4 = "こんにちは";
//定数プール内の同じオブジェクトを参照しているため、HashCode は同じです。
System.out.println(System.identityHashCode(str3) + " : "+ System.identityHashCode(str4));
/*出力は次のようになります
-1554135584 : -1554135584
28705408 : 6182315
21648882 : 21648882
*/
}
Runtimeクラスの一般的な使い方
すべての Java アプリケーションには、アプリケーションが実行される環境に接続できるようにする Runtime クラスのインスタンスがあります。
次のようにコードをコピーします。
クラスRunTimeTest
{
public static void main(String[] args) が例外をスローする
{
getJvmInfo();
//execTest();
}
public static void getJvmInfo(){
//Java ランタイムに関連するランタイム オブジェクトを取得します
ランタイム rt = Runtime.getRuntime();
System.out.println("プロセッサの数:" + rt.availableProcessors()+" バイト");
System.out.println("Jvm 合計メモリ: "+ rt.totalMemory()+" バイト");
System.out.println("Jvm 空きメモリ: "+ rt.freeMemory()+" バイト");
System.out.println("Jvm に使用可能なメモリの最大量: "+ rt.maxMemory()+" バイト");
}
public static void execTest()throws Exception{
ランタイム rt = Runtime.getRuntime();
//指定された文字列コマンドを別プロセスで実行します。
rt.exec("mspaint E://mmm.jpg");
}
}