JDK之java.lang.System

变量:

//输入流
public static final InputStream in;
//输出流
public static final PrintStream out;
//错误输出流
public static final PrintStream err;

方法

//从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

public static native void arraycopy(Object var0, int var1, Object var2, int var3, int var4); 

示例 :

int[] a = {1,2,3,4};
int[] b = new int[5];
System.arraycopy(a,1,b,3,2);

结果:

{0,0,0,2,3}

//移除指定键指示的系统属性。

public static String clearProperty(String var0) {
    checkKey(var0);
    SecurityManager var1 = getSecurityManager();
    if(var1 != null) {
        var1.checkPermission(new PropertyPermission(var0, "write"));
    }

    return (String)props.remove(var0);
}

//返回以毫秒为单位的当前时间。

public static native long currentTimeMillis();

示例:

Date nowTime = new Date(System.currentTimeMillis());
SimpleDateFormat sdFormatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String s = sdFormatter.format(nowTime);

System.out.print(s);

结果:

2017-04-13 04:21:53

//终止当前正在运行的 Java 虚拟机。

public static void exit(int code) {
    Runtime.getRuntime().exit(code);
}

//运行垃圾回收器。

public static void gc() {
    boolean shouldRunGC;
    synchronized(lock) {
        shouldRunGC = justRanFinalization;
        if (shouldRunGC) {
            justRanFinalization = false;
        } else {
            runGC = true;
        }
    }
    if (shouldRunGC) {
        Runtime.getRuntime().gc();
    }
}

//获得环境变量集合

public static Map<String, String> getenv() {
    Map<String, String> map = new HashMap<String, String>();
    for (String entry : Libcore.os.environ()) {
        int index = entry.indexOf('=');
        if (index != -1) {
            map.put(entry.substring(0, index), entry.substring(index + 1));
        }
    }
    return new SystemEnvironment(map);
}

示例:

Map<String, String> getenv = System.getenv();

for (String in : getenv.keySet()) {
    String str = getenv.get(in);
    System.out.println(in + "     " + str);
}

结果:

USERDOMAIN_ROAMINGPROFILE     DESKTOP-105GFUA
LOCALAPPDATA     C:\Users\user\AppData\Local
PROCESSOR_LEVEL     6
USERDOMAIN     DESKTOP-105GFUA
FPS_BROWSER_APP_PROFILE_STRING     Internet Explorer
LOGONSERVER     \\DESKTOP-105GFUA
JAVA_HOME     D:\Java\jdk1.8.0_121
SESSIONNAME     Console
ALLUSERSPROFILE     C:\ProgramData
PROCESSOR_ARCHITECTURE     AMD64
ANDROID_HOME     D:\Android\sdk\platform-tools
PSModulePath     C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
SystemDrive     C:
APPDATA     C:\Users\user\AppData\Roaming
MOZ_PLUGIN_PATH     F:\MySoftWare\fuxin\plugins\
USERNAME     user
ProgramFiles(x86)     C:\Program Files (x86)
CommonProgramFiles     C:\Program Files\Common Files
Path     C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Users\user\AppData\Local\Microsoft\WindowsApps;
FPS_BROWSER_USER_PROFILE_STRING     Default
PATHEXT     .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
OS     Windows_NT
COMPUTERNAME     DESKTOP-105GFUA
PROCESSOR_REVISION     9e09
CLASSPATH      .;D:\Java\jdk1.8.0_121\lib;D:\Java\jdk1.8.0_121\lib\tools.jar
CommonProgramW6432     C:\Program Files\Common Files
ComSpec     C:\Windows\system32\cmd.exe
ProgramData     C:\ProgramData
ProgramW6432     C:\Program Files
HOMEPATH     \Users\user
SystemRoot     C:\Windows
TEMP     C:\Users\user\AppData\Local\Temp
HOMEDRIVE     C:
PROCESSOR_IDENTIFIER     Intel64 Family 6 Model 158 Stepping 9, GenuineIntel
USERPROFILE     C:\Users\user
TMP     C:\Users\user\AppData\Local\Temp
CommonProgramFiles(x86)     C:\Program Files (x86)\Common Files
ProgramFiles     C:\Program Files
PUBLIC     C:\Users\Public
NUMBER_OF_PROCESSORS     8
windir     C:\Windows

//获取指定的环境变量值(根据上面的key进行获取就好了)

public static String getenv(String key) {
    SecurityManager var1 = getSecurityManager();
    if(var1 != null) {
        var1.checkPermission(new RuntimePermission("getenv." + var0));
    }

    return ProcessEnvironment.getenv(var0);
}

//获取当前的系统属性集合

public static Properties getProperties() {
    SecurityManager var0 = getSecurityManager();
    if(var0 != null) {
        var0.checkPropertiesAccess();
    }

    return props;
}

示例:

Iterator it = System.getProperties().entrySet().iterator();
while (it.hasNext()) {
    Map.Entry entry = (Map.Entry) it.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
    System.out.println(key + "     " + value);
}

结果:

java.runtime.name     OpenJDK Runtime Environment
sun.boot.library.path     D:\Android\Android Studio\jre\jre\bin
java.vm.version     25.76-b03
java.vm.vendor     Oracle Corporation
java.vendor.url     https://www.jetbrains.com/
path.separator     ;
idea.launcher.port     7538
java.vm.name     OpenJDK 64-Bit Server VM
file.encoding.pkg     sun.io
user.country     CN
user.script     
sun.java.launcher     SUN_STANDARD
sun.os.patch.level     
java.vm.specification.name     Java Virtual Machine Specification
user.dir     F:\JGW_Android\GetPixels
java.runtime.version     1.8.0_76-release-b03
java.awt.graphicsenv     sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs     D:\Android\Android Studio\jre\jre\lib\endorsed
os.arch     amd64
java.io.tmpdir     C:\Users\user\AppData\Local\Temp\
line.separator     

java.vm.specification.vendor     Oracle Corporation
user.variant     
os.name     Windows 10
sun.jnu.encoding     GBK
java.library.path     D:\Android\Android Studio\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Users\user\AppData\Local\Microsoft\WindowsApps;;.
java.specification.name     Java Platform API Specification
java.class.version     52.0
sun.management.compiler     HotSpot 64-Bit Tiered Compilers
os.version     10.0
user.home     C:\Users\user
user.timezone     
java.awt.printerjob     sun.awt.windows.WPrinterJob
file.encoding     UTF-8
idea.launcher.bin.path     D:\Android\Android Studio\bin
java.specification.version     1.8
java.class.path     D:\Android\Android Studio\jre\jre\lib\charsets.jar;D:\Android\Android Studio\jre\jre\lib\ext\access-bridge-64.jar;D:\Android\Android Studio\jre\jre\lib\ext\cldrdata.jar;D:\Android\Android Studio\jre\jre\lib\ext\dnsns.jar;D:\Android\Android Studio\jre\jre\lib\ext\jaccess.jar;D:\Android\Android Studio\jre\jre\lib\ext\localedata.jar;D:\Android\Android Studio\jre\jre\lib\ext\nashorn.jar;D:\Android\Android Studio\jre\jre\lib\ext\sunec.jar;D:\Android\Android Studio\jre\jre\lib\ext\sunjce_provider.jar;D:\Android\Android Studio\jre\jre\lib\ext\sunmscapi.jar;D:\Android\Android Studio\jre\jre\lib\ext\sunpkcs11.jar;D:\Android\Android Studio\jre\jre\lib\ext\zipfs.jar;D:\Android\Android Studio\jre\jre\lib\jce.jar;D:\Android\Android Studio\jre\jre\lib\jsse.jar;D:\Android\Android Studio\jre\jre\lib\management-agent.jar;D:\Android\Android Studio\jre\jre\lib\resources.jar;D:\Android\Android Studio\jre\jre\lib\rt.jar;F:\JGW_Android\GetPixels\javalib\build\classes\main;D:\Android\Android Studio\lib\idea_rt.jar
user.name     user
java.vm.specification.version     1.8
sun.java.command     com.intellij.rt.execution.application.AppMain com.example.MyClass
java.home     D:\Android\Android Studio\jre\jre
sun.arch.data.model     64
user.language     zh
java.specification.vendor     Oracle Corporation
awt.toolkit     sun.awt.windows.WToolkit
java.vm.info     mixed mode
java.version     1.8.0_76-release
java.ext.dirs     D:\Android\Android Studio\jre\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path     D:\Android\Android Studio\jre\jre\lib\resources.jar;D:\Android\Android Studio\jre\jre\lib\rt.jar;D:\Android\Android Studio\jre\jre\lib\sunrsasign.jar;D:\Android\Android Studio\jre\jre\lib\jsse.jar;D:\Android\Android Studio\jre\jre\lib\jce.jar;D:\Android\Android Studio\jre\jre\lib\charsets.jar;D:\Android\Android Studio\jre\jre\lib\jfr.jar;D:\Android\Android Studio\jre\jre\classes
java.vendor     JetBrains s.r.o
file.separator     \
java.vendor.url.bug     https://youtrack.jetbrains.com
sun.io.unicode.encoding     UnicodeLittle
sun.cpu.endian     little
sun.desktop     windows
sun.cpu.isalist     amd64

下面是常见的:

java.versionJava 运行时环境版本
java.homeJava 安装目录
os.name操作系统的名称
os.version操作系统的版本
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

//获取指定键指示的系统属性

public static String getProperty(String var0) {
    checkKey(var0);
    SecurityManager var1 = getSecurityManager();
    if(var1 != null) {
        var1.checkPropertyAccess(var0);
    }

    return props.getProperty(var0);
}

//获取系统安全接口。

public static SecurityManager getSecurityManager() {
    return security;
}

//返回从创建此 Java 虚拟机的实体中继承的信道。

public static Channel inheritedChannel() throws IOException {
    return SelectorProvider.provider().inheritedChannel();
}

//从作为动态库的本地文件系统中以指定的文件名加载代码文件。

@CallerSensitive
public static void load(String var0) {
    Runtime.getRuntime().load0(Reflection.getCallerClass(), var0);
}

示例:

System.load("C://Documents and Settings//TestJNI.dll");

//加载由 libname 参数指定的系统库

@CallerSensitive
public static void loadLibrary(String var0) {
    Runtime.getRuntime().loadLibrary0(Reflection.getCallerClass(), var0);
}

示例:

System. loadLibrary ("TestJNI");

//返回最准确的可用系统计时器的当前值,以毫微秒为单位。

public static native long nanoTime();

示例(计算过时的时间):

long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;

System.out.print(estimatedTime);

重新分配“标准”输入流。

private static native void setIn0(InputStream var0);

重新分配“标准”输出流。

private static native void setOut0(PrintStream var0);

重新分配“标准”错误输出流。

private static native void setErr0(PrintStream var0);

将系统属性设置为 Properties 参数。

public static void setProperties(Properties var0) {
    SecurityManager var1 = getSecurityManager();
    if(var1 != null) {
        var1.checkPropertiesAccess();
    }

    if(var0 == null) {
        var0 = new Properties();
        initProperties(var0);
    }

    props = var0;
}

设置指定键指示的系统属性。

public static String getProperty(String var0) {
    checkKey(var0);
    SecurityManager var1 = getSecurityManager();
    if(var1 != null) {
        var1.checkPropertyAccess(var0);
    }

    return props.getProperty(var0);
}

设置系统安全性。

public static void setSecurityManager(SecurityManager var0) {
    try {
        var0.checkPackageAccess("java.lang");
    } catch (Exception var2) {
        ;
    }

    setSecurityManager0(var0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哆啦A梦z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值