1. 程式人生 > 其它 >system volume information是什麼檔案_System.out.println()系統性能分析,大部分程式設計師都收藏了.....

system volume information是什麼檔案_System.out.println()系統性能分析,大部分程式設計師都收藏了.....

技術標籤:system volume information是什麼檔案

e10e4482da7c5af52a60fc194e4242e8.png

什麼是System.out.println()

System.out.println是一個Java語句,一般情況下是將傳遞的引數,列印到控制檯。

System:是 java.lang包中的一個final類。根據javadoc,"java.lang.System該類提供的設施包括標準輸入,標準輸出和錯誤輸出流; 訪問外部定義的屬性和環境變數; 一種載入檔案和庫的方法; 以及用於快速複製陣列等一部分的實用方法… ”

out:是System類的靜態成員欄位,型別為PrintStream。

public static final PrintStream out

他在啟動時就會被例項化,並與主機的標準輸出控制檯進行對映。該流在例項化之後立即開啟,並準備接受資料。

println:是PrintStream類的一個方法。println列印(引數內容+換行符) 到控制檯。

PrintStream類中有多個過載的println方法。每個println是通過呼叫print方法並新增一個換行符實現的。print方法是通過呼叫write方法實現的。

部分程式碼:

 public final class System { static PrintStream out; static PrintStream err; static InputStream in; ... }  public class PrintStream extends FilterOutputStream {public void println(String x) {synchronized (this) { print(x); newLine();} } ... }

效能分析:

這個方法是同步的,程式碼中的System.out.println() 和java執行程式執行在同一執行緒,業務程式會等待system.out的動作,導致資源被佔用。

1、程式中大量使用System.out.println(),尤其是在列印變數的過程中加入了一些需要耗時計算的過程,勢必會影響專案的效能。

2、System.out.println() 的輸出內容是在控制檯中,專案中的日誌一般都是通過log4j等日誌工具非同步寫在日誌檔案中,System.out.println()的輸出有時不會自動寫入日誌檔案中,只能在控制檯檢視。

在專案上線後儘量把System.out.println()的日誌改用log4j 等工具進行除錯資訊的列印。這類工具是非同步執行緒的,不會使程式處於等待狀態。

關注

感謝閱讀,如果這篇文章幫助了您,歡迎 點贊收藏,關注轉發 喲。您的幫助是我們前行的動力,我們會提供更多有價值的內容給大家... 謝謝!