• java基础-System类常用方法介绍


                      java基础-System类常用方法介绍

                                        作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.System类概念

      在API中system类介绍的比较简单,我们给出定义,system中代表程序所在系统,提供了对应的一些系统属性信息和系统操作。

      注意,system类不能手动创建对象,因为构造方法被私有化(即被private关键字修饰),组织外界创建对象(即不能用new关键字生成一个对象)。System类中的都是静态方法(static关键字修饰),类名访问即可。在JDK中,有许多这样的类。System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 

    二.System的常用方法

    1>.获取系统当前毫秒值(public static long currentTimeMillis())

      获取当前系统时间与1970年01月01日00:00点之前的毫秒差值,我们可以用它来测试程序的执行时间。代码如下:

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 public class SystemDemo {
    10     public static void main(String[] args) {
    11         long start = System.currentTimeMillis();
    12         for(int i=1;i<=9;i++) {
    13             for(int j=1;j<=i;j++) {
    14                 System.out.printf("%d x %d = %d 	",j,i,(j*i));
    15             }
    16             System.out.println();
    17         }
    18         long end = System.currentTimeMillis();
    19         System.out.printf("程序运行时间为[%d]毫秒!",(end-start));
    20     }
    21 }
    22 
    23 
    24 /*
    25 以上代码执行结果如下:
    26 1 x 1 = 1     
    27 1 x 2 = 2     2 x 2 = 4     
    28 1 x 3 = 3     2 x 3 = 6     3 x 3 = 9     
    29 1 x 4 = 4     2 x 4 = 8     3 x 4 = 12     4 x 4 = 16     
    30 1 x 5 = 5     2 x 5 = 10     3 x 5 = 15     4 x 5 = 20     5 x 5 = 25     
    31 1 x 6 = 6     2 x 6 = 12     3 x 6 = 18     4 x 6 = 24     5 x 6 = 30     6 x 6 = 36     
    32 1 x 7 = 7     2 x 7 = 14     3 x 7 = 21     4 x 7 = 28     5 x 7 = 35     6 x 7 = 42     7 x 7 = 49     
    33 1 x 8 = 8     2 x 8 = 16     3 x 8 = 24     4 x 8 = 32     5 x 8 = 40     6 x 8 = 48     7 x 8 = 56     8 x 8 = 64     
    34 1 x 9 = 9     2 x 9 = 18     3 x 9 = 27     4 x 9 = 36     5 x 9 = 45     6 x 9 = 54     7 x 9 = 63     8 x 9 = 72     9 x 9 = 81     
    35 程序运行时间为[42]毫秒!
    36 */

    2>.结束正在运行的Java程序(public staitc void exit(int status))

     参数传入一个数字即可。通常传入0记为正常状态,其它为异常状态。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 public class SystemDemo {
    10     public static void main(String[] args) {
    11         int counts = 0;
    12         while(true) {
    13             System.out.println("yinzhengjie");
    14             if(counts==5) {
    15                 System.exit(0);
    16             }
    17             counts++;
    18         }
    19     }
    20 }
    21 
    22 
    23 /*
    24 以上代码执行结果如下:
    25 yinzhengjie
    26 yinzhengjie
    27 yinzhengjie
    28 yinzhengjie
    29 yinzhengjie
    30 yinzhengjie
    31 */

    3>.垃圾回收器(public static void gc())

      用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 class Student{
    10     //清除垃圾时,会默认调用被清空对象的finalize方法。
    11     public void finalize() {    
    12         System.out.println("垃圾已经被收取啦!");
    13     }
    14 }
    15 
    16 
    17 public class SystemDemo {
    18     public static void main(String[] args) {
    19         new Student();
    20         new Student();
    21         new Student();
    22         new Student();
    23         new Student();
    24         System.gc();    
    25         
    26     }
    27 }
    28 
    29 
    30 /*
    31 以上代码执行结果如下:(输出结果不一定是三行,有可能是0行或者5行哟!每次运行的结果几乎是不一致的)
    32 垃圾已经被收取啦!
    33 垃圾已经被收取啦!
    34 垃圾已经被收取啦!
    35 */

    4>.确定当前的系统属性(public static getProperties getProperties()

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 public class SystemDemo {
    10     public static void main(String[] args) {
    11         System.out.println(System.getProperties());
    12     }
    13 }
    14 
    15 
    16 /*
    17 以上代码执行结果如下:
    18 {sun.desktop=windows, awt.toolkit=sun.awt.windows.WToolkit, java.specification.version=9, file.encoding.pkg=sun.io, sun.cpu.isalist=amd64, sun.jnu.encoding=GBK, java.class.path=D:10.JavaJavaSEeclipseMyprogramworkspaceDay6in, java.vm.vendor=Oracle Corporation, sun.arch.data.model=64, user.variant=, java.vendor.url=http://java.oracle.com/, user.timezone=, os.name=Windows 7, java.vm.specification.version=9, sun.java.launcher=SUN_STANDARD, user.country=CN, sun.boot.library.path=D:10.Javajdk-9.0.4in, sun.java.command=cn.org.yinzhengjie.demo.SystemDemo, jdk.debug=release, sun.cpu.endian=little, user.home=C:UsersAdministrator, user.language=zh, java.specification.vendor=Oracle Corporation, java.home=D:10.Javajdk-9.0.4, file.separator=\, java.vm.compressedOopsMode=Zero based, line.separator=
    19 , java.vm.specification.vendor=Oracle Corporation, java.specification.name=Java Platform API Specification, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, user.script=, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, java.runtime.version=9.0.4+11, user.name=Administrator, path.separator=;, os.version=6.1, java.runtime.name=Java(TM) SE Runtime Environment, file.encoding=GBK, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, java.vendor.url.bug=http://bugreport.java.com/bugreport/, java.io.tmpdir=C:UsersADMINI~1AppDataLocalTemp\, java.version=9.0.4, user.dir=D:10.JavaJavaSEeclipseMyprogramworkspaceDay6, os.arch=amd64, java.vm.specification.name=Java Virtual Machine Specification, java.awt.printerjob=sun.awt.windows.WPrinterJob, sun.os.patch.level=Service Pack 1, java.library.path=D:10.Javajdk-9.0.4in;C:WindowsSunJavain;C:Windowssystem32;C:Windows;D:/10.Java/jdk-9.0.4/bin/server;D:/10.Java/jdk-9.0.4/bin;D:10.Javajdk-9.0.4in;C:ProgramDataOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;D:4.Pythonpython3.6.5Scripts;D:4.Pythonpython3.6.5;D:10.JavaJavaSEeclipseMyprogrameclipse;;., java.vm.info=mixed mode, java.vendor=Oracle Corporation, java.vm.version=9.0.4+11, sun.io.unicode.encoding=UnicodeLittle, java.class.version=53.0}
    20 */

      各个属性关系对应图如下:

    5>. System类方法复制数组(public static notive void arraycopy(Object src, int srcPos, Object dest, int destPos, int length))【notive 是可以调用当前操作系统来实现数组拷贝的】

       用来实现将源数组部分元素复制到目标数组的指定位置。各个参数功能如下:

      Object src:要复制的原数组;

      Int srcPos:数组源的起始索引;

      Object dest:复制后的目标数组;

      int destPos:目标数组起始索引;

      int length,指定复制的长度;

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 public class SystemDemo {
    10     public static void main(String[] args) {
    11         int[] src = {1,22,333,4444,5555,666666,7777777};
    12         int[] dest = {10,20,30};
    13         System.arraycopy(src, 2, dest, 0, 2);
    14         
    15         for(int i=0;i<dest.length;i++) {
    16             System.out.println(dest[i]);
    17         }
    18     }
    19 }
    20 
    21 
    22 /*
    23 以上代码执行结果如下:
    24 333
    25 4444
    26 30
    27 */
  • 相关阅读:
    PlateSpin 完全复制由于LVM没有可用空闲空间导致失败
    Linux LVM学习总结——放大LV容量
    Linux AVG ANTIVIRUS FREE使用介绍
    Linux如何查看JDK的安装路径
    Cannot set a credential for principal 'sa'. (Microsoft SQL Server,错误: 15535)
    记一次Linux服务器上查杀木马经历
    Linux NetHogs监控工具介绍
    Linux make: g++: Command not found
    Linux的NTP配置总结
    Linux内核的文件预读readahead
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8887145.html
Copyright © 2020-2023  润新知