奪命JAVA|第一章:從零開始
Java 簡介
Java 是由 Sun 微系統(tǒng)公司于 1995 年 5 月推出的 Java 面向?qū)ο蟪绦蛟O(shè)計(jì)語言和 Java 平臺的總稱
Java分為三個體系
JavaSE ( J2SE ),Java2 Platform Standard Edition烈炭,java 平臺標(biāo)準(zhǔn)版
JavaEE ( J2EE )溶锭,Java 2 Platform,Enterprise Edition,java 平臺企業(yè)版
JavaME ( J2ME )符隙,Java 2 Platform Micro Edition趴捅,java 平臺微型版
2005 年 6 月,JavaOne 大會召開霹疫,SUN 公司公開 Java SE 6
同時 Java 的各種版本已經(jīng)更名以取消其中的數(shù)字 "2"
J2EE 更名為 Java EE
J2SE 更名為 Java SE
J2ME 更名為 Java ME
Java 的主要特性
Java 語言是簡單的:
Java 語言的語法與 C 語言和 C++ 語言很接近拱绑,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面丽蝎,Java 丟棄了 C++ 中很少使用的猎拨、很難理解的、令人迷惑的那些特性,如操作符重載红省、多繼承额各、自動的強(qiáng)制類型轉(zhuǎn)換
特別地,Java 語言不使用指針类腮,而是引用
Java 語言提供了自動的垃圾回收機(jī)制臊泰,使得程序員不必為內(nèi)存管理而擔(dān)憂
Java 語言是面向?qū)ο蟮模?/b>
Java 語言提供類、接口和繼承等面向?qū)ο蟮奶匦匝潦啵瑸榱撕唵纹鹨姼滋樱恢С诸愔g的單繼承,但支持接口之間的多繼承厂抽,并支持類與接口之間的實(shí)現(xiàn)機(jī)制 ( 關(guān)鍵字為 implements )
Java 語言全面支持動態(tài)綁定需频,而 C++ 語言只對虛函數(shù)使用動態(tài)綁定
總之,Java 語言是一個純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言
Java 語言是分布式的:
Java 語言支持 Internet 應(yīng)用的開發(fā)筷凤,在基本的 Java 應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口 ( java net ) 昭殉,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括 URL藐守、URLConnection挪丢、Socket、ServerSocket等
Java 的 RMI ( 遠(yuǎn)程過程調(diào)用 ) 機(jī)制也是開發(fā)分布式應(yīng)用的重要手段
Java 語言是健壯的:
Java 的強(qiáng)類型機(jī)制卢厂、異常處理乾蓬、垃圾的自動收集等是 Java 程序健壯性的重要保證
放棄指針是 Java 的明智選擇
Java的安全檢查機(jī)制使得 Java 更具健壯性
Java 語言是安全的:
Java 通常被用在網(wǎng)絡(luò)環(huán)境中,為此慎恒,Java 提供了一個安全機(jī)制以防惡意代碼的攻擊
除了 Java 語言具有的許多安全特性以外任内,Java 對通過網(wǎng)絡(luò)下載的類具有一個安全防范機(jī)制 ( 類 ClassLoader ) ,如分配不同的名字空間以防替代本地的同名類融柬、字節(jié)代碼檢查死嗦,并提供安全管理機(jī)制( 類 SecurityManager ) 讓 Java 應(yīng)用設(shè)置安全哨兵
Java 語言是體系結(jié)構(gòu)中立的:
Java 程序 ( 后綴為 java 的文件 ) 在 Java 平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式 ( 后綴為 class 的文件 ) ,然后可以在實(shí)現(xiàn)這個 Java 平臺的任何系統(tǒng)中運(yùn)行
這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)
Java 語言是可移植的:
這種可移植性來源于體系結(jié)構(gòu)中立性粒氧,另外越除,Java 還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度
Java 系統(tǒng)本身也具有很強(qiáng)的可移植性,Java 編譯器是用 Java 實(shí)現(xiàn)的外盯,Java 的運(yùn)行環(huán)境是用 ANSI C 實(shí)現(xiàn)的
Java 語言是解釋型的:
Java 程序在 Java 平臺上被編譯為字節(jié)碼格式摘盆, 然后可以在實(shí)現(xiàn)這個 Java 平臺的任何系統(tǒng)中運(yùn)行
在運(yùn)行時,Java 平臺中的 Java 解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行门怪,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中
Java 是高性能的:
與那些解釋型的高級腳本語言相比,Java 的確是高性能的
事實(shí)上锅纺,Java 的運(yùn)行速度隨著 JIT ( Just-In-Time ) 編譯器技術(shù)的發(fā)展越來越接近于 C++
Java 語言是多線程的:
Java 語言中掷空,線程是一種特殊的對象,它必須由 Thread 類或其子 ( 孫 ) 類來創(chuàng)建
通常有兩種方法來創(chuàng)建線程
使用型構(gòu)為 Thread ( Runnable ) 的構(gòu)造子將一個實(shí)現(xiàn)了 Runnable 接口的對象包裝成一個線程
從 Thread 類派生出子類并重寫 run 方法,使用該子類創(chuàng)建的對象即為線程
Thread 類實(shí)現(xiàn)了 Runnable 接口坦弟,因此护锤,任何一個線程均有它的 run 方法,而 run 方法中包含了線程所要運(yùn)行的代碼
線程的活動由一組方法來控制酿傍,Java 語言支持多個線程的同時執(zhí)行烙懦,并提供多線程之間的同步機(jī)制 ( 關(guān)鍵字為 synchronized )
Java 語言是動態(tài)的:
Java 語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境
Java 程序需要的類能夠動態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類
這也有利于軟件的升級赤炒。另外氯析,Java 中的類有一個運(yùn)行時刻的表示,能進(jìn)行運(yùn)行時刻的類型檢查
Java 發(fā)展歷史
1995年5月23日莺褒,Java語言誕生
1996年1月掩缓,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入JAVA技術(shù)
1996年9月遵岩,約8.3萬個網(wǎng)頁應(yīng)用了JAVA技術(shù)來制作
1997年2月18日你辣,JDK1.1發(fā)布
1997年4月2日,JavaOne會議召開尘执,參與者逾一萬人舍哄,創(chuàng)當(dāng)時全球同類會議規(guī)模之紀(jì)錄
1997年9月,JavaDeveloperConnection社區(qū)成員超過十萬
1998年2月誊锭,JDK1.1被下載超過2,000,000次
1998年12月8日表悬,JAVA2企業(yè)平臺J2EE發(fā)布
1999年6月,SUN公司發(fā)布Java的三個版本:標(biāo)準(zhǔn)版(JavaSE,以前是J2SE)炉旷、企業(yè)版(JavaEE以前是J2EE)和微型版(JavaME签孔,以前是J2ME)
2000年5月8日,JDK1.3發(fā)布
2000年5月29日窘行,JDK1.4發(fā)布
2001年6月5日饥追,NOKIA宣布,到2003年將出售1億部支持Java的手機(jī)
2001年9月24日罐盔,J2EE1.3發(fā)布
2002年2月26日但绕,J2SE1.4發(fā)布,自此Java的計(jì)算能力有了大幅提升
2004年9月30日18:00PM惶看,J2SE1.5發(fā)布捏顺,成為Java語言發(fā)展史上的又一里程碑。為了表示該版本的重要性纬黎,J2SE1.5更名為Java SE 5.0
2005年6月幅骄,JavaOne大會召開,SUN公司公開Java SE 6本今。此時拆座,Java的各種版本已經(jīng)更名主巍,以取消其中的數(shù)字"2":J2EE更名為Java EE,J2SE更名為Java SE挪凑,J2ME更名為Java ME
2006年12月孕索,SUN公司發(fā)布JRE6.0
2009年04月20日,甲骨文74億美元收購Sun躏碳。取得 java 的版權(quán)
2010年11月搞旭,由于甲骨文對于Java社區(qū)的不友善,因此 Apache 揚(yáng)言將退出 JCP[4]
2011年7月28日菇绵,甲骨文發(fā)布java7.0的正式版
2014年3月18日肄渗,Oracle公司發(fā)表Java SE 8
Java 開發(fā)工具
Java 語言盡量保證系統(tǒng)內(nèi)存在 1G 以上,其它工具如下所示
Linux 系統(tǒng)脸甘、Mac OS 系統(tǒng)恳啥、Windows 95/98/2000/XP,WIN 7/8 系統(tǒng)
Java JDK 7丹诀、8
http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html
IDEA
https://www.jetbrains.com/idea/)
Eclipse
http://www.eclipse.org/downloads/
安裝好上面的工具后钝的,我們就可以編譯運(yùn)行 "Hello World"
Java 基礎(chǔ)教程
Java 是當(dāng)下最流行的開發(fā)語言,長年盤踞在 TIOBE 語言排行榜榜首
Java 是 Web 和 Android 上的主流開發(fā)語言铆遭,是淘寶等大公司的主要開發(fā)語言
Java 世界的 Hello World
我們用一個簡單的示例來展示 Java 最簡單的代碼
首先新建一個文件 HelloWorld.java硝桩,文件名需與類名一致
public class HelloWorld {
?? public static void main(String[] args) {
? ? ?? System.out.println("Hello World");
?? }
}
$ javac HelloWorld.java
$ java HelloWorld
Hello World
javac 后面跟著的是 java 文件的文件名,例如 HelloWorld.java
這個命令用于將 java 源文件編譯為 class 字節(jié)碼文件枚荣,如: javac HelloWorld.java
運(yùn)行 javac 命令后碗脊,如果成功編譯沒有錯誤的話,會出現(xiàn)一個 HelloWorld.class 的文件
java 后面跟著的是 java 文件中的類名,例如 HelloWorld 就是類名橄妆,如: java HelloWorld
java 命令后面不要加 .class
要編譯運(yùn)行 Java 文件衙伶,需要用到 javac 和 java 兩個命令
編譯運(yùn)行以上 Java 代碼,輸出結(jié)果如下