本篇博客是Java web入門的第er篇博客递胧,這篇博客主要講述程序員的第一個(gè)程序Hello World殴蹄。
? 一)在命令行模式下打印出Hello World
? 首先我們寫(xiě)出 HelloWorld 程序的代碼尿扯。在硬盤上創(chuàng)建一個(gè)名為 test.java 的文件坚弱,并用記事本打開(kāi)這個(gè)文件稍味,書(shū)寫(xiě)如下內(nèi)容隧熙。注意:區(qū)分大小寫(xiě),并注意空格:
class HelloWorld{
? ?public static void main(String[] args){
? ? ? ? ? ? ?System.out.println("Hello World");
}
}
代碼寫(xiě)完之后就可以進(jìn)行保存睬魂。然后终吼,在命令行模式下,進(jìn)入這個(gè).java 文件所在的文 件夾氯哮,使用下面的命令來(lái)進(jìn)行編譯:javac test.java
編譯完成之后际跪,會(huì)在目錄下生成一個(gè)相應(yīng)的HelloWorld.class文件夾
之后,在命令行上使用命令:java HelloWorld? ? ?執(zhí)行結(jié)果如下:
可以看到屏幕上打印出一個(gè)“Hello World”的字符串蛙粘。
二)深入Hello World
我們首先來(lái)研究和分析一下 test.java 這個(gè)程序的代碼:
class HelloWorld{
? ? ? public static void main(String args[]){
? ? ? ? ? ? ?System.out.println("Hello World");
? ? ? ?}
}
? 首先垫卤,第一行:class HelloWorld威彰,這句話定義了一個(gè)名字叫做 HelloWorld 的類出牧。其中, class 是 Java 語(yǔ)言的關(guān)鍵字歇盼,而 HelloWorld 則是定義的類的名字舔痕。 至于什么是類,這個(gè)概念對(duì)于初學(xué)者來(lái)說(shuō)比較復(fù)雜豹缀,在此不多做介紹伯复。對(duì)于初學(xué)者來(lái)說(shuō), 可以把類理解成:代碼的容器邢笙。也就是說(shuō)啸如,在 Java 中絕大部分代碼都要寫(xiě)在類的范圍之內(nèi), 要寫(xiě)代碼就必須先定義一個(gè)類氮惯。
? 在定義完了 HelloWorld 之后叮雳,后面有一對(duì)花括號(hào),花括號(hào)中的內(nèi)容就表示是這個(gè)類中的內(nèi)容妇汗。 在這個(gè)花括號(hào)里帘不,下面的這行:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public static void main(String args[])
? 這一行定義了一個(gè)主方法(也叫主函數(shù))。
? 在 Java 中杨箭,主方法的定義比較長(zhǎng)寞焙,但是非常有用,也許你現(xiàn)在還無(wú)法理解這些內(nèi)容,隨著學(xué)習(xí)的深入捣郊,你會(huì)理解這里面的每一個(gè)單詞辽狈。 但是現(xiàn)在,照著寫(xiě)并且記住主方法的寫(xiě)法就行了呛牲。 那么主方法有什么用呢稻艰?我們把主方法稱之為:程序執(zhí)行的入口。也就是說(shuō)侈净,Java 程序在執(zhí)行的時(shí)候尊勿,會(huì)執(zhí)行類中的主方法,當(dāng)主方法執(zhí)行完畢之后畜侦,程序也就退出了元扔。 在主方法內(nèi)部,有下面這句:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("Hello World");
這是一個(gè) Java 的語(yǔ)句旋膳。注意澎语,每一個(gè) Java 語(yǔ)句都應(yīng)當(dāng)以分號(hào)結(jié)尾。
?這個(gè)語(yǔ)句能夠在屏幕上打印出一個(gè)字符串验懊,這個(gè)字符串的內(nèi)容擅羞,就是括號(hào)中的“Hello World”字符串。并且义图,這個(gè)語(yǔ)句在打印完字符串之后减俏,還會(huì)打印一個(gè)換行符,進(jìn)行換行碱工。
三)類與.class文件
? 我們注意到娃承,編譯 test.java 之后,會(huì)產(chǎn)生一個(gè)名為 HelloWorld 的.class 文件怕篷。這個(gè).class文件的文件名與我們?cè)?test.java 中定義的類名一摸一樣历筝。換句話說(shuō),一個(gè).java 文件中定義的 每一個(gè)類廊谓,編譯后都會(huì)對(duì)應(yīng)的生成一個(gè)和類名完全一樣的.class 文件梳猪。 這個(gè).class 文件不是可執(zhí)行文件,用文本編輯器也無(wú)法正常打開(kāi)蒸痹。我們也可以在 test.java 中定義多個(gè)類春弥。例如下面的代碼:
class HelloWorld{
? ? ? ? ? ? public static void main(String args[]){
? ? ? ? ? ? ? ? ? System.out.println("Hello World");
? ? ? ? ? ? }
}
class Welcome{
? ? ? ? ? ?public static void main(String args[]){
? ? ? ? ? ? ? ? System.out.println("Welcome to learn java");
? ? ? ? ? ?}
}
編譯之后,會(huì)生成兩個(gè).class 文件电抚,一個(gè) HelloWorld.class惕稻,一個(gè) Welcome.class。 在運(yùn)行時(shí)蝙叛,運(yùn)行的是.class 文件俺祠。但是需要注意的是,使用 java + 類名運(yùn)行,而不能 有.class 這個(gè)后綴蜘渣。 比如淌铐,我們要運(yùn)行 Welcome 類,則使用的命令應(yīng)當(dāng)是: java Welcome 而不是 java Welcome.class
? 要注意的是蔫缸,我們使用 java Welcome 運(yùn)行 Welcome 類時(shí)腿准,JVM 需要在硬盤上找到相應(yīng) 的 Welcome.class 文件。此時(shí)拾碌,JVM 會(huì)通過(guò) CLASSPATH 變量的指示吐葱,來(lái)尋找.class 文件。 由于我們把 CLASSPATH 配置成了一個(gè)“.”校翔,這表示當(dāng)前目錄弟跑,因此 JVM 就會(huì)在當(dāng)前目錄下尋找 Welcome.class 文件。
四)類與公開(kāi)類
? 如果我們給 HelloWorld 類增加一個(gè)前綴:public防症,則此時(shí)孟辑,HelloWorld 就不是一個(gè)普通的類,而變成了一個(gè)公開(kāi)類蔫敲。代碼如下:
public class HelloWorld{
? ? ? ? ? public static void main(String args[]){
? ? ? ? ? ? ? ? ? ? ?System.out.println("Hello World");
? ? ? ? ? }
}
公開(kāi)類有自己的特殊性饲嗽。此時(shí)再編譯 test.java,則會(huì)產(chǎn)生一個(gè)編譯時(shí)的錯(cuò)誤奈嘿,錯(cuò)誤如下:
這個(gè)錯(cuò)誤說(shuō)明貌虾,如果要使用一個(gè)公開(kāi)類,則有一個(gè)要求:公開(kāi)類的類名必須與.java 文件的文件名相同(包括大小寫(xiě))指么。 為了修正這個(gè)錯(cuò)誤酝惧,我們必須把原來(lái)的 test.java 改名為 HelloWorld.java榴鼎,再次編譯才能編譯通過(guò)伯诬。 由于一個(gè).java 文件只能有一個(gè)文件名,因此一個(gè).java 文件中巫财,最多只能有一個(gè)公開(kāi)類盗似。 當(dāng)然,如果不是公開(kāi)類的話平项,一個(gè).java 文件中可以有多個(gè)類赫舒。
五)初學(xué)者忠告
1、 動(dòng)手敲代碼闽瓢。不論是書(shū)本上的例子代碼接癌,還是練習(xí)中的代碼,請(qǐng)每一個(gè)都自己敲一 遍扣讼。
2缺猛、 不要使用 IDE。Java 語(yǔ)言的流行,使得有大量的好用的開(kāi)發(fā)工具荔燎,比如 eclipse耻姥, netbeans 以及 IntelliJ IDEA?等。這些工具能夠極大的提高程序員的開(kāi)發(fā)效率有咨,是程序員的好幫手琐簇, 但是不適合初學(xué)者。初學(xué)者需要更多的鍛煉和磨礪座享,才能夠打下扎實(shí)的基礎(chǔ)婉商。如果一開(kāi)始就使用這些工具的話,很有可能會(huì)一直被這些工具束縛住渣叛, 對(duì)他們產(chǎn)生依賴据某,而影響對(duì) Java 的掌握。 建議你使用一個(gè)文本編輯器 + 命令行的方式诗箍,學(xué)習(xí) Java 的開(kāi)發(fā)癣籽。起碼在學(xué)習(xí) Java 的前半個(gè)月應(yīng)該這么做。
3滤祖、 選擇一個(gè)有語(yǔ)法高亮的文本編輯器筷狼。如 notepad++和 notepad2,你也可以選擇更加強(qiáng)大的 UltraEdit匠童。