程式不過是幾行程式碼的集合
1.
程式不過是幾行程式碼的集合。就像下面這樣:
public class Test {
public static void main(String[] args) {
System.out.println("hello world");
}
}
對於初學程式設計的人來說,“hello world”的程式總是繞不開的;學習Java程式設計自然不能例外。說實在話,我在大學一年級(當時十九歲)學習這寥寥幾行程式碼時可費了老大的勁——我幾乎用了將近一個月的時間才消化掉“hello world”這段程式(這可一點不假)。記得當時的老師非常“貼心”地要求我們學生必須在記事本上敲下這段程式碼,並且要在控制檯的命令列上執行這段小程式,使其在螢幕上打印出“hello world”的字樣。
簡直難得要命啊!我差一點就要被這幾行程式碼摧毀掉信心換其他專業了。但幸好,我堅持了下來,就目前來看,IT行業是一個前程似錦的行業,Java依然處在程式語言排行榜的領先位置;而我,可以憑藉Java高階開發工程師的身份在日益艱難的生存環境中混口飯吃。認真的回憶一下,對於“hello world”這段程式,我有好幾個不解的地方:
- 為什麼class前面要有public?
- 為什麼main方法要有引數
String[] args
?它好像壓根沒起作用啊。 - 為什麼main方法必須是
static void
?
看到這幾個問題,你是不是也迫切地想知道為什麼?新文化運動領袖胡適先生曾說過這樣一句話“人同畜生的分別,就在於這個‘為什麼’上
那麼現在,我來回答一下以上三個問題(題答得不好,請給我零分):
1)class(類)前面的public並不是必須的;一個Java檔案中有且只能有一個public類,並且該類名(Test)必須與檔名(Test.java)保持一致。
2)main方法的引數是一個String陣列,約定俗成的寫法就是String[] args
;儘管當前“hello world”程式中並沒有用到args引數,但Java編譯器要求主方法必須要這麼著(就好像李白他爹給他起名“李白”,所以李白只能叫“李白”);如果想在程式中使用args引數,可以在執行Java程式的時候在命令列中鍵入。為了演示args引數的使用方法,我們把以上程式碼稍作調整(“hello world”後要緊跟一個空格,和args引數的第一個值):
public class Test {
public static void main(String[] args) {
System.out.println("hello world " + args[0]);
}
}
改造後的“hello world”程式,在命令列的編譯、執行命令如下:
3)static
表示main方法為靜態方法;靜態方法可通過"類名.方法名"的方式來呼叫。這句話怎麼理解呢?我們來看以下程式碼:
public class Test {
static int i = 0;
public static void main(String[] args) {
System.out.println("hello world");
i++;
if (i < 5) {
Test.main(args);
}
}
}
通常,方法內部呼叫方法自身(Test.main(args)
就是"類名.方法名"的形式)會造成死迴圈,但我們使用了一個靜態變數i來控制迴圈的次數,最多5次。
4)void
表示main方法沒有返回結果;既然main方法是主方法,作為程式的入口,自然是不需要返回結果的,否則返回結果給誰看呢?就好像你就是司令員,你顯然不需要再向軍長、師長彙報工作。
2.
看完以上內容,你是不是覺得資訊量有點大?對於Java的初學者來說,我想大概會吧,畢竟我當初可花了一個月的時間才消化掉。如果你說你只花了5分鐘就搞定了,我就真該懷疑自己是不是塊幹“程式猿”的料了(“老天爺啊,不公平啊,為什麼我和別人的智力差距這麼大呢?”)。
假如你是Java初學者,我不建議你使用記事本一個字母一個字母敲完這段程式並在命令列中執行。以前老師教我們那套背方法統統可以不要,明明有Eclipse這種為程式設計師減少複雜性的整合開發工具,為什麼不用呢?
腦海中時常有“程式不過是幾行程式碼的集合”這句話非常重要,有了這個信念,無論再龐大的專案都不需要怕了。因為不管這個專案的程式碼成千行,還是成萬行,最終都可以拆分為幾行程式碼,難道不是嗎?
3.
在之前的很長一段時間,我都不確定是不是要繼續寫IT技術方面的文章了。因為看著那些大牛們都在知識變現,而我依然籍籍無名、默默無聞,內心十分的沮喪。後來,我把這種困惑告訴了安曉輝前輩,他給了我一個繼續堅持下去的理由——當初寫技術部落格為了什麼?不就是為了對自己總結和對他人有所幫助嗎?
這就是我寫作的初心啊!我怎麼能懷著一種“功利”的心態去寫文章呢?佛系寫作也能滿足我分享的慾望、寫作的愛好啊!所以,我在23點22分的時候又打開了電腦,寫下這篇文章…
PS:我幾乎花了一天的時間來寫一個Java程式,用來生成上面這張帶有二維碼、精美圖片、正能量文字的海報。如果大家對這個小程式感興趣的話,我就把原始碼貼到GitHub上。