以下所有描述中使用標準的Java SE8 開發(fā)工具包(JDK8)
一唯蝶、helloworld預(yù)熱
<code>
//This is a simple Java program,name is Example
class Example{
public static void main(String args[]){
System.out.println("Hello World for Java");
}
}
</code>
1、對于大多數(shù)語言遗嗽,包含程序源代碼的文件名稱是任意的粘我,而在Java中不是,比如這個例子痹换,源文件的名稱應(yīng)當是Example.java征字,分析如下:
- Java中源文件的正式稱謂是編譯單元(compilation unit),包含一個或者多個類定義的文本文件娇豫,Java編譯器要求源文件使用.jave作為擴展名
- 程序定義的類的名稱是Example匙姜,這不是巧合。在Java中所有代碼必須位于類中冯痢。主類的名稱應(yīng)當與包含程序的文件的名稱相匹配氮昧,文件名的大小寫與類名相匹配,Java大小寫是敏感的浦楣。文件名與類名相匹配的約定會使得維護和組織程序更加容易
2袖肥、編譯程序,執(zhí)行編譯器java:
<code>c:>javac Example.java</code>
javac創(chuàng)建一個一個名為Example.class的文件振劳,包含程序的字節(jié)碼版本椎组,Java字節(jié)碼是程序的中間表示形式,其中包含了Java虛擬機將要執(zhí)行的指令历恐,sojavac的輸出不是可以直接執(zhí)行的代碼寸癌,實際上,必須使用名為“java”的Java應(yīng)用程序加載器弱贼,為此蒸苇,傳遞類名“Example”作為命令行參數(shù):<code>c:>java Example</code>
程序輸出:<code> Hello World for Java" </code>
所以這就是為什么將Java源代碼文件的名稱指定為它所包含的類名的原因。
3哮洽、深入剖析這個Example
- 注釋和其他大多數(shù)語言一樣填渠,java三種注釋類型
- 關(guān)鍵字class表示正在定義一個新類,Example是一個標識符,表示類的名稱以{}開頭結(jié)尾氛什,在java中所有程序都是在類的內(nèi)部發(fā)生的莺葫。這也是所有javac程序都是面向?qū)ο蟮囊粋€原因
- 所有Java應(yīng)用都是通過調(diào)用main()方法開始執(zhí)行的。public static void main(String args[]) 涉及到了封裝的概念后續(xù)再做解釋枪眉。public是訪問修飾符就可以在聲明該成員的類的外部訪問它捺檬,相反的是private,它阻止類外部的代碼訪問這種類成員贸铜,再次強調(diào)堡纬,Java對大小寫是敏感的
- main方法中有個參數(shù),有些復(fù)雜蒿秦,String args[]聲明了一個名為args的參數(shù)烤镐,該參數(shù)是String類的實例數(shù)組(數(shù)組是類似對象的集合)。String類型的對象存儲字符串棍鳖。args接收當執(zhí)行程序時傳遞的所有命令行參數(shù)炮叶。當然這個程序沒有!
- main()方法只不過是程序開始執(zhí)行的地方渡处,復(fù)雜程序有幾十個類镜悉,但只有一個類需要main()方法,以提供程序的開始點医瘫。當然有些不需要:例如侣肄,對于創(chuàng)建applet--嵌入到web瀏覽器的java程序--不需要使用main()方法,因為web瀏覽器使用了一種不同的方法啟動applet的執(zhí)行
二醇份、 變量
Java是強類型化語言稼锅,所以每個變量具有一種類型,每個表達式具有一種類型僚纷,包括賦值缰贝,不管是顯式的還是在方法中調(diào)用的都要進行類型兼容性檢查
<code>
int num; //聲明一個變量
num = 100; //賦值
System.out.println("This is num:" + num);
num = num * 2;
System.out.println(num);
</code>
Java定義了8種基本數(shù)據(jù)類型分為四組 :
整型:byte,short畔濒,int剩晴,long,表示有符號
浮點型:float侵状,double赞弥,表示帶小數(shù)位的數(shù)字
字符型:char,表示字符集中的符號趣兄,比如字母和數(shù)字
布爾型:boolean绽左,表示true/false值得特殊類型
基礎(chǔ)類型不是面向?qū)ο螅部梢允褂盟鼈儤?gòu)造數(shù)組以及自定義類型艇潭。
注意:這些基礎(chǔ)類型有明確的范圍和數(shù)學(xué)行為拼窥,C/C++允許整數(shù)大小隨執(zhí)行環(huán)境變化戏蔑,而Java需要具備可移植性,所以總有嚴格定義的范圍鲁纠,int總是32位的
值得注意的是总棵,char類型 。java中的char類型和C/C++不同改含,在后者char的寬度是8位情龄,而java不是這樣,Java使用Unicode表示字符捍壤,Unicode定義一個完全國際化的字符集骤视,能夠表示所有字符。Unicode需要16位寬鹃觉,所以Java中char是16位類型专酗,范圍是0~65 536,沒有負的char值
<code>
class CharDemo{ //類名開頭大寫
public static void main(String args[]){
char ch1,ch2;
ch1 = 88; //ch1被賦值為88盗扇,該值是字母X對應(yīng)的ascii值笼裳,這個在java中仍然管用
ch2 = 'Y';
System.out.print(ch1 + " " + ch2); //打印X Y
}
}
</code>
在Java的規(guī)范中,char被當做整數(shù)類型粱玲,這意味和int,short,long,byte在一個分類中,然而char類型主要用途是表示Unicode字符拜轨,所以通常放入單獨的分類中其他的字面值等比較簡單抽减,想深入理解的話可以看看官方解釋等
三计技、控制語句
- java中的if語句與其他所有類似酝碳,語法與C/C++以及C#完全一樣
- for循環(huán)對于所有編程語言來說智绸,都是重要組成部分:
<code>for(initialization;condition;iteration) statement;</code>
example:
<code>
for(int x = 0; x < 10; x++){ //對于規(guī)范英上,即使一個語句也用代碼塊吧
System.out.println("This is x:" + x);
}
</code>
四淑玫、各種詞匯名詞
Java程序由空白符矢否、標識符蛮艰、字面值怕吴、注釋拒垃、運算符停撞、分隔符以及關(guān)鍵字組成。相信有編程基礎(chǔ)的你肯定不會混淆的
除了上述還有:true悼瓮、false和null不能將他們用作變量名戈毒、類名
注意:從jdk8開始,不建議使用下劃線作為標識符