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 \t",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.Java\JavaSE\eclipse\Myprogram\workspace\Day6\bin, 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.Java\jdk-9.0.4\bin, sun.java.command=cn.org.yinzhengjie.demo.SystemDemo, jdk.debug=release, sun.cpu.endian=little, user.home=C:\Users\Administrator, user.language=zh, java.specification.vendor=Oracle Corporation, java.home=D:\10.Java\jdk-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:\Users\ADMINI~1\AppData\Local\Temp\, java.version=9.0.4, user.dir=D:\10.Java\JavaSE\eclipse\Myprogram\workspace\Day6, 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.Java\jdk-9.0.4\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/10.Java/jdk-9.0.4/bin/server;D:/10.Java/jdk-9.0.4/bin;D:\10.Java\jdk-9.0.4\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\04.Python\python3.6.5\Scripts\;D:\04.Python\python3.6.5\;D:\10.Java\JavaSE\eclipse\Myprogram\eclipse;;., 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 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM