溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中如何輸出Hello World

發布時間:2021-06-15 09:26:03 來源:億速云 閱讀:302 作者:小新 欄目:開發技術

這篇文章主要介紹Java中如何輸出Hello World,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、示例如下

C語言

printf("Hello World!");

C++語言

cout << "Hello World!";

Golang語言:

fmt.Print("hello world!")

Java語言:

System.out.print("Hello World!");

Python語言:

print('Hello World!')

2. 小生拋磚引玉,歡迎指正

下面這個代碼是Java輸出Hello World的代碼,代碼沒有報錯,輸出結果正確。

Java中如何輸出Hello World

我們在輸出這一行打一個斷點,并且以debug模式運行,不斷點擊下一步。

Java中如何輸出Hello World

首先我們可以看到是System類調用靜態成員out,并且out是一個PrintStream對象的實例,調用這個實例的println方法,就來到如下頁面。我們可以看到這個方法傳入的是我們的Hello World字符串,并且調用print方法,再調用newLine方法。從這里就可以看出print和println方法的區別。聰明的你應該可以猜到,沒錯,newLine方法就是換行。好的,繼續往下走~

Java中如何輸出Hello World

這個時候我們進入了print方法。這里也很好理解。你可以想想當我們的字符串為null的時候,你會發現輸出的是一個字符串的null,而在源碼里面正好就是這樣的設計。緊接著,將會調用該類中的write方法。那行,我們繼續進入write方法。

Java中如何輸出Hello World

進入write方法,我們會發現這里有一個同步鎖。學過Java語法的同學應該馬上就反應到了,這是防止在多線程的情況下,一個字符串還未處理完,另一個字符串便進來這個方法了,這會導致內部的數據出現矛盾??!接著是執行一個ensureOpen方法,按照我的蹩腳英文hh,初步理解這是“確定是否打開”的意思。那我們就進去看看到底是確定什么是否打開!

Java中如何輸出Hello World

我們發現這里有一個判斷out實例是否為null的情況,當out為null的時候,拋出一個“流關閉”的異常。結合這個提示,加上對代碼的查看,我們發現這個out實例正是輸出流對象的實例。當我們要輸出什么內容的時候,當然要判斷輸出流對象是否為空呀。OK,這里我們沒啥問題。

Java中如何輸出Hello World

那我們就要進入整個輸出語句最重要的源代碼了:執行寫入。

Java中如何輸出Hello World

進去之后我們發現,同樣是調用重載的write方法,傳入的參數為字符串,0以及字符串長度。接著進入該方法。

Java中如何輸出Hello World

前方高能?。?!
同步鎖和ensureOpen方法上面已經講過不贅述。這里初始化變量b是0,t是0加上字符串的長度。
這個時候的t-b正好就是字符串的長度,那么接著下去,我們會取我們一次可以寫入最大的長度t-b最小值。

  • 當最小值是我們的字符串長度的時候,我們直接獲取字符串的字符數組,讓初始變量b加上寫入的長度,這個時候我們會發現循環條件已經不成立,那么將會結束循環;

  • 當最小值是一次可以寫入最大的長度的時候,我們直接寫入最大的長度,這時候初始變量加上寫入長度的時候,循環條件是成立的,同時我們也有字符串沒有獲取,那么將會進入下一次循環,直到b<t不成立時退出。

同時在執行循環體的過程中,仍然需要不斷清楚緩存。

Java中如何輸出Hello World

其余的幾個方法和上面的思路比較相似,這里將不一一贅述。

Java中如何輸出Hello World

以上是“Java中如何輸出Hello World”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女