Java api 入門教程 之 JAVA的SYSTEM類

来源:http://www.cnblogs.com/liuhongfeng/archive/2016/02/03/5175098.html
-Advertisement-
Play Games

System類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。該類位於java.lang包。 由於該類的構造方法是private的,所以無法創建該類的對象,也就是無法實例化該類。其內部的成員變數和成員方法都是static的,所以也可以很方便的進行調用。 1、成員變數 System類內部包含i


System類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。該類位於java.lang包。

由於該類的構造方法是private的,所以無法創建該類的對象,也就是無法實例化該類。其內部的成員變數和成員方法都是static的,所以也可以很方便的進行調用。

 

1、成員變數

System類內部包含in、out和err三個成員變數,分別代表標準輸入流(鍵盤輸入),標準輸出流(顯示器)和標準錯誤輸出流(顯示器)。

例如:

  System.out.println(“Test”);

該行代碼的作用是將字元串”Test”輸出到系統的標準輸出設備上,也就是顯示在屏幕上。

後續在學習完IO相關的知識以後,可以使用System類中的成員方法改變標準輸入流等對應的設備,例如可以將標準輸出流輸出的信息輸出到文件內部,從而形成日誌文件等。

 

2、成員方法

System類中提供了一些系統級的操作方法,這些方法實現的功能分別如下:

 

a、arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

 

該方法的作用是數組拷貝,也就是將一個數組中的內容複製到另外一個數組中的指定位置,由於該方法是native方法,所以性能上比使用迴圈高效。

使用示例:

 

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

 

該代碼的作用是將數組a中,從下標為1開始,複製到數組b從下標3開始的位置,總共複製2個。也就是將a[1]複製給b[3],將a[2]複製給b[4],這樣經過複製以後數組a中的值不發生變化,而數組b中的值將變成{0,0,0,2,3}。

 

b、currentTimeMillis方法

     public static long currentTimeMillis()

該方法的作用是返回當前的電腦時間,時間的表達格式為當前電腦時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數。

例如:

      

 long l = System. currentTimeMillis();

 

則獲得的將是一個長整型的數字,該數字就是以差值表達的當前時間。使用該方法獲得的時間不夠直觀,但是卻很方便時間的計算。

例如,計算程式運行需要的時間則可以使用如下的代碼:

 

long start = System. currentTimeMillis();
 for(int i = 0;i < 100000000;i++){
         int a = 0;
 }
 long end = System. currentTimeMillis();
 long time = end-start;
 System.out.println(time);

 

 

則這裡變數time的值就代表該代碼中間的for迴圈執行需要的毫秒數,使用這種方式可以測試不同演算法的程式的執行效率高低,也可以用於後期線程式控制制時的精確延時實現。

 

c、exit方法

 public static void exit(int status)

該方法的作用是退出程式。其中status的值為0代表正常退出,非零代表異常退出。使用該方法可以在圖形界面編程中實現程式的退出功能等。

 

d、gc方法

 public static void gc()

該方法的作用是請求系統進行垃圾回收。至於系統是否立刻回收,則取決於系統中垃圾回收演算法的實現以及系統執行時的情況。

 

e、getProperty方法

public static String getProperty(String key)

該方法的作用是獲得系統中屬性名為key的屬性對應的值。系統中常見的屬性名以及屬性的作用如下表所示。

屬性名列表

屬性名

屬性說明

java.version

Java 運行時環境版本

java.home

Java 安裝目錄

os.name

操作系統的名稱

os.version

操作系統的版本

user.name

用戶的賬戶名稱

user.home

用戶的主目錄

user.dir

用戶的當前工作目錄

 例如:

  

String osName = System.getProperty("os.name");
String user = System.getProperty("user.name");
System.out.println("當前操作系統是:" + osName);
System.out.println("當前用戶是:" + user);

 

使用該方法可以獲得很多系統級的參數以及對應的值。

具體可以參照這篇文章: 

通過java的Runtime.getRuntime()和System.getProperties()來獲取系統的信息

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、為什麼使用對象初始化器 C#3.0提供了對象初始化器,為了方便在初始化時程式員自己來控制需要初始化的屬性,而不需要在初始化時當屬性不同時修改或新增構造函數 2、如何使用對象初始化器 類定義如下 public class Person { private string name; public s
  • 介紹了微軟企業庫之數據訪問模塊的基本使用。
  • 近日研究了下IBM Lotus Mail,這貨果然是麻煩,由於公司策略,沒有開放smtp,很多系統郵件都沒有辦法發送,於是入手google學習Lotus Mail,想做成Windows服務,提供wcf服務給內部應用系統使用。在google上找了很多資料,由於是系統郵件,很多東西配置起來又比較麻煩。自
  • 很多時候,在上傳文件的時候會保存文件的信息以及一些其他的信息.現在我們就上傳一個用戶,並上傳文件.把需要上傳的數據寫到流裡面. 服務端解析流,取出我們需要的數據.流的的組成如下圖: 現在開始修改我們的upload方法.方法很簡單,就是依次從流裡面讀我們需要的數據來進行保存. public bool
  • 傳統ASP.NET開發 第一步:客戶端請求伺服器; 第二步:伺服器從資料庫取得數據處理後響應給客戶端頁面。 MVC的設計思想 第一步:客戶端請求控制器(裡面的一個方法); 第二步:控制器從資料庫里取得數據填充到模型裡面; 第三步:控制器把模型交給視圖; 第四步:視圖響應呈現給客戶端。
  • ES介紹 維基百科使用Elasticsearch來進行全文搜做並高亮顯示關鍵詞,以及提供search-as-you-type、did-you-mean等搜索建議功能。 英國衛報使用Elasticsearch來處理訪客日誌,以便能將公眾對不同文章的反應實時地反饋給各位編輯。 StackOverflow
  • function readyDo() {// alert(xhr.readyState + "分" + xhr.Status); if (xhr.readyState==4 && xhr.status==200 ) { var result = xhr.responseText; if (resul
  • 在Nancy中,給我們的網站換個自定義的圖標。
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...