system类

System 类包含了很多静态方法和变量,其提供的设施有:标准的输入(in)、标准的输出(out)和错误输出(err),对外部定义的属性和环境变量的访问,加载文件和库的方法;还有快速复制数组的一部分的使用方法。
由 System类定义的方法如下表。当所做的操作是安全方式所不允许的时候,许多方法抛出一个安全异常(Security Exception)。

方法描述
static void arrayCopy(Object source,int sourceStart,Object target, int targetStart,int size复制数组。被复制的数组有source传递,而 soruce中开始复制数组是的下标由 sourceStart传递。接收复制的数组由 target传递,而target中开始复制数组是的下标由 targetStart传递。Size 是被复制的元素个数
static long currentTimeMillis()返回至 1970年1月1日午夜至今的时间,时间单位为毫秒
static long nanoTime()返回最准确的可用系统计时器的当前值,以纳秒为单位。此方法只能用于测量已过的时间,与系统或钟表时间的其他任何时间概念无关。返回值表示从某一个固定但任意的时间算起的纳秒数。在程序中两次调用该方法可以测量代码执行的时间长度
static void exit(int exitCode)暂停执行,返回 exitCode值给父进程(通常为操作系统)。按照约定,0表示正常退出,所有其他的值表示某种形式的错误
static void gc()运行垃圾回收器。调用此方法意味着 Java虚拟机做了一些努力来回收未用对象,以便能够快速的重用这些对象当前占用的内存。当控制从方法调用中返回时,虚拟机已经尽最大努力回收了所有丢弃的对象
static Properties getPropertites()返回与Java运行系统有关的属性类(Propertites class)
static String getProperty(String key)返回与 key 有关的系统属性。如果期望的属性没有被发现,则返回一个空对象(null object)
static String getProperty(String key,String default返回与 key 有关的系统属性。如果期望的属性没有被发现,则返回 default
static SecurityManager getSecurityManager()返回当前的安全管理程序,如果没有安全管理程序,则返回一个空对象(null objext)
static void load(String library FileLibrary)装载由 libraryFileName 指定的动态库,必须指定其完全路径
static void loadLibrary(String libraryName)载入由 libraryName 指定的动态库
static void runFinalization()运行处于挂起终止状态的所有对象的终止方法
static void setErr(PrintStream eStream)设置标准的错误流(err)为eStream
static void setIn(InputStream iStream)设置标准的输入(in)流为iStream
static void setOut(PrintStream oStream)设置标准的输出(out)流为oStream
static void setProperties(Properties sysProperties)设置由sysProperties指定的当前系统属性
static String setProperty(String key, String value)将 value 值赋给名为 key 的系统属性
static void setSecurityManager(SecurityManager s)设置由 s 指定的安全管理程序

计算程序运行的时间

long start,end;
long sum = 0;
long times = 100000000;
System.out.println("执行" + times + "次循环需要的时间");
start = System.nanoTime();
for (int i = 0; i < times; i++)
{
   sum = sum + i*i;
}
end = System.nanoTime();
System.out.println("需要的时间是:" + (end - start) + "纳秒");
//执行100000000次循环需要的时间
//需要的时间是:1213556019纳秒

复制数组

public class SystemTest {
    static byte a[] = {65,66,67,68,69,70,71};
    static byte b[] = {88,88,88,88,88,88,88,88,88,88};
    public static void main(String[] args) {
        System.out.println("a = " + new String(a));
        System.out.println("b = " + new String(b));
        System.arraycopy(a, 0, b, 0, a.length);
        System.out.println("b = " + new String(b));
        System.arraycopy(a, 0, a, 1, a.length - 1);
        System.arraycopy(b, 1, b, 0, b.length - 1);
        System.out.println("a = " + new String(a));
        System.out.println("b = " + new String(b));

    } 
}
//a = ABCDEFG
//b = XXXXXXXXXX
//b = ABCDEFGXXX
//a = AABCDEF
//b = BCDEFGXXXX

打印当前虚拟机所有环境属性的变量和值

public class Propertitestest {
    public static void main(String[] args) {
      Properties sp = System.getProperties();
      Enumeration e = sp.propertyNames();
      while(e.hasMoreElements())
      {
          String key = (String) e.nextElement();
          System.out.println( key + " = "+sp.getProperty(key));
      }

    } 
}
/**
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jdk1.8.0_171\jre\bin
java.vm.version = 25.171-b11
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) Client VM
file.encoding.pkg = sun.io
user.script = 
user.country = US
sun.java.launcher = SUN_STANDARD
sun.os.patch.level = Service Pack 1
java.vm.specification.name = Java Virtual Machine Specification
user.dir = C:\Users\lancer\Documents\NetBeansProjects\Stringtest
java.runtime.version = 1.8.0_171-b11
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs = C:\Program Files\Java\jdk1.8.0_171\jre\lib\endorsed
os.arch = x86
java.io.tmpdir = C:\Users\lancer\AppData\Local\Temp\
line.separator = 
java.vm.specification.vendor = Oracle Corporation
user.variant = 
os.name = Windows 7
sun.jnu.encoding = GBK
java.library.path = C:\Program Files\Java\jdk1.8.0_171\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;:C:\Program Files\Java\jdk1.8.0_171\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;.
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot Client Compiler
os.version = 6.1
user.home = C:\Users\lancer
user.timezone = 
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
user.name = lancer
java.class.path = C:\Users\lancer\Documents\NetBeansProjects\Stringtest\build\classes
java.vm.specification.version = 1.8
sun.arch.data.model = 32
java.home = C:\Program Files\Java\jdk1.8.0_171\jre
sun.java.command = stringtest.Stringtest
java.specification.vendor = Oracle Corporation
user.language = en
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode
java.version = 1.8.0_171
java.ext.dirs = C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path = C:\Program Files\Java\jdk1.8.0_171\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_171\jre\classes
java.vendor = Oracle Corporation
file.separator = \
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.cpu.endian = little
sun.io.unicode.encoding = UnicodeLittle
sun.desktop = windows
sun.cpu.isalist = pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
**/

jvm中的一些系统属性

系统属性描述系统属性描述
java.versionJRE 的版本java.class.pathJava 类路径
java.vendorJRE 的厂商java.library.path装载类库的搜索路径
java.vendor.urlJRE 厂商的 URLjava.io.tmpdir默认的临时文件路径
java.homeJava 的安装目录java.compilerJIT的名称
java.vm.specification.versionJVM 规范的版本java.ext.dirs扩展目录路径
java.vm.specification.vendorJVM 规范的厂商os.name操作系统名称
java.vm.specification.nameJVM 规范的名称os.arch操作系统架构
java.vm.versionJVM 实现的版本os.version操作系统版本
java.vm.vendorJVM 实现的厂商file.separator文件分隔符
java.specification.versionJRE 的详述版本path.separator行分隔符
java.specification.vendorJRE 的详述厂商user.name用户账号名称
java.specification.nameJRE 的详述名称user.home用户主目录
java.class.versionJava 类格式版本号user.dir用户当前工作目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值