1.Java概述
Java 原名 Oak 是 Sun Microsystems 公司的 James Gosling 及其團隊于 1995 年 5 月推出的 Java 程式設計語言 和 Java 平臺 的總稱,
Java 是一種廣泛使用的計算機編程語言,擁有跨平臺、面向物件、泛型編程的特性,廣泛應用于企業級Web應用開發和移動應用開發,
Java 平臺 由 Java 虛擬機(Java Virtual Machine,JVM) 和 Java 應用編程介面(Application Programming Interface,API) 構成,
2010 年 Sun Microsystems 被 Oracle 正式收購,自此 Java 歸屬于 Oracle ,
2.Java發展歷程
Oak 的出現( Java 的雛形)
20世紀90年代,硬體領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、面包烤箱、移動電話等)的智能化程度,Sun Microsystems 公司為了搶占市場先機,在1991年成立了一個稱為 Green 的專案小組,James Gosling 及其團隊一起組成的作業小組在 State of California 州 Menlo Park 市沙丘路的一個小作業室里面研究開發新技術,專攻計算機在家電產品上的嵌入式應用,
由于 C++ 所具有的優勢,該專案組的研究人員首先考慮采用 C++ 來撰寫程式,但對于硬體資源極其匱乏的單片式系統來說,C++ 程式過于復雜和龐大,另外由于消費電子產品所采用的嵌入式處理器芯片的種類繁雜,如何讓撰寫的程式跨平臺運行也是個難題,為了解決困難,他們首先著眼于語言的開發,假設了一種結構簡單、符合嵌入式應用需要的硬體平臺體系結構并為其制定了相應的規范,其中就定義了這種硬體平臺的二進制機器碼指令系統(即后來成為“位元組碼”的指令系統),以待語言開發成功后,能有半導體芯片生產商開發和生產這種硬體平臺,對于新語言的設計,Sun 公司研發人員并沒有開發一種全新的語言,而是根據嵌入式軟體的要求,對 C++ 進行了改造,去除了留在 C++ 的一些不太實用及影響安全的成分,并結合嵌入式系統的實時性要求,開發了一種稱為 Oak 的面向物件語言,
由于在開發 Oak 語言時,尚且不存在運行位元組碼的硬體平臺,所以為了在開發時可以對這種語言進行實驗研究,他們就在已有的硬體和軟體平臺基礎上,按照自己所指定的規范,用軟體建設了一個運行平臺,整個系統除了比 C++ 更加簡單之外,沒有什么大的區別,1992年的夏天,當 Oak 語言開發成功后,研究者們向硬體生產商進行演示了 Green 作業系統、Oak 的程式設計語言、類別庫和其硬體,以說服他們使用 Oak 語言生產硬體芯片,但是,硬體生產商并未對此產生極大的熱情,因為他們認為,在所有人對 Oak 語言還一無所知的情況下,就生產硬體產品的風險實在太大了,所以 Oak 語言也就因為缺乏硬體的支持而無法進入市場,從而被擱置了下來,
1994年6、7月間,在經歷了一場歷時三天的討論之后,團隊決定再一次改變了努力的目標,這次他們決定將該技術應用于萬維網,他們認為隨著 Mosaic 瀏覽器的到來,因特網正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的,作為原型,帕特里克·諾頓寫了一個小型萬維網瀏覽器 WebRunner,
1995年 Java 的誕生
1995年,互聯網的蓬勃發展給了 Oak 機會,業界為了使死板、單調的靜態網頁能夠“靈活”起來,急需一種軟體技術來開發一種程式,這種程式可以通過網路傳播并且能夠跨平臺運行,于是,世界各大IT企業為此紛紛投入了大量的人力、物力和財力,這個時候,Sun 公司想起了那個被擱置起來很久的 Oak,并且重新審視了那個用軟體撰寫的試驗平臺,由于它是按照嵌入式系統硬體平臺體系結構進行撰寫的,所以非常小,特別適用于網路上的傳輸系統,而 Oak 也是一種精簡的語言,程式非常小,適合在網路上傳輸,
Sun 公司首先推出了可以嵌入網頁并且可以隨同網頁在網路上傳輸的 Applet(Applet是一種將小程式嵌入到網頁中進行執行的技術),并將 Oak 更名為 Java(在申請注冊商標時,發現 Oak 已經被人使用了,再想了一系列名字之后,最終,使用了提議者在喝一杯 Java 咖啡時無意提到的 Java 詞語),
1995年5月23日,Sun 公司在 Sun world 會議上正式發布 Java 和 HotJava 瀏覽器,IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和 Microsoft 等各大公司都紛紛停止了自己的相關開發專案,競相購買了 Java 使用許可證,并為自己的產品開發了相應的 Java 平臺,
1996年 Sun 公司發布第一個 JDK
1996年1月,Sun 公司發布了 Java 的第一個開發工具包(JDK 1.0),這是 Java 發展歷程中的重要里程碑,標志著 Java 成為一種獨立的開發工具,9月,約8.3萬個網頁應用了 Java 技術來制作,10月,Sun 公司發布了 Java 平臺的第一個即時編譯器 JIT(Just-In-Time Compiler),
1996年4月,10個最主要的作業系統供應商申明將在其產品中嵌入JAVA技術,
1996年9月,約8.3萬個網頁應用了JAVA技術來制作,
1997年2月18日,JDK 1.1 面世,在隨后的3周時間里,達到了22萬次的下載量,
1997年4月2日,Java One 會議召開,參會者逾一萬人,創當時全球同類會議規模之紀錄,
1997年9月,Java Developer Connection 社區成員超過10萬,
1998年2月,JDK1.1被下載超過2,00萬次,
1998年12月8日,Java2 企業平臺 J2EE 發布,
1999年4月27日,HotSpot 虛擬機發布,HotSpot 虛擬機發布時是作為 JDK 1.2 的附加程式提供的,后來它成為了 JDK 1.3 及之后所有版本的 Sun JDK 的默認虛擬機,
1999年6月,Sun 公司發布了第二代 Java 平臺(簡稱為Java2)的3個版本:J2ME(Java2 Micro Edition,Java2 平臺的微型版),應用于移動、無線及有限資源的環境;J2SE(Java 2 Standard Edition,Java 2 平臺的標準版),應用于桌面環境;J2EE(Java 2Enterprise Edition,Java 2 平臺的企業版),應用于基于 Java 的應用服務器,Java 2 平臺的發布,是 Java 發展程序中最重要的一個里程碑,標志著 Java 的應用開始普及,
2000年5月8日,JDK1.3 發布,
2000年5月29日,JDK1.4 發布,,
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機,
2001年9月24日,J2EE1.3 發布,
2002年2月26日,J2SE1.4 發布,自此 Java 的計算能力有了大幅提升,與 J2SE1.3 相比,其多了近62%的類和介面,在這些新特性當中,還提供了廣泛的 XML 支持、安全套接字(Socket)支持(通過SSL與TLS協議)、全新的 I/OAPI 、正則運算式、日志與斷言,
2004年9月30日,J2SE1.5 發布,成為 Java 語言發展史上的又一里程碑,為了表示該版本的重要性,J2SE 1.5 更名為 Java SE 5.0(內部版本號1.5.0),代號為 “Tiger”,Tiger 包含了從1996年發布1.0版本以來的最重大的更新,其中包括泛型支持、基本型別的自動裝箱、改進的回圈、列舉型別、格式化 I/O 及可變引數,
2005年發布J2SE 6并更名為 Java SE 6
2005年6月,JavaOne 大會召開,Sun 公司公開 Java SE 6,此時,Java 的各種版本已經更名,以取消其中的數字“2”:J2EE 更名為 Java EE,J2SE 更名為 Java SE,J2ME 更名為 Java ME,
2006年11月13日,Sun 公司宣布 Java 全線采納 GNU General Public License Version 2,將 Java 技術作為免費軟體對外發布,從而正式公開了Java 平臺標準版的第一批源代碼,以及 Java 迷你版的可執行源代碼,
2006年12月11日,Sun把原本的名稱“ J2SE ”改為“ Java SE ”,然后再從版本號中去掉“.0”,而開發者內部編號仍然是1.6.0,這個版本是根據 JSR 270 開發的,在發展階段,新版本大概每周都發布包括一些功能增強和漏洞的修復,Beta 版本在2006年2月和6月發布,也就是為什么2006年12月11日變成最終的版本,
2006年12月23日, JavaSE6 正式發布,
從2007年3月起,全世界所有的開發人員均可對 Java 源代碼進行修改,
2009年 Sun 被 Oracle 收購
2009年,Oracle 公司宣布收購 Sun,
2009年12月,Sun 公司發布Java EE 6,
2010年,Oracle 公司正式收購 Sun,Java 編程語言的共同創始人之一 James Gosling 從 Oracle 公司辭職,
2010年11月,由于 Oracle 公司對于Java社區的不友善,因此Apache揚言將退出JCP,
2011年7月28日,Oracle 公司舉行了全球性的活動,以慶祝 Java7 的推出,隨后 Java7 正式發布,
2014年3月 Java8 發布
2014年3月18日,Oracle 公司發布了 Java SE 8(LTS),
2017年9月21日,Oracle 公司發布 Java SE 9,
2018年3月20日,Oracle 公司發布 Java SE 10,
2018年9月 Java11 發布
2018年9月25日,Oracle 公司發布 Java SE 11(LTS),
2019年3月19日,Oracle 公司發布 Java SE 12,
2019年9月17日,Oracle 公司發布 Java SE 13,
2020年3月17日,Oralce 公司發布 Java SE 14,
2020年9月15日,Oracle 公司發布 Java SE 15,
3.Java語言
Java 是一種廣泛使用的計算機編程語言,擁有跨平臺、面向物件、泛型編程的特性,廣泛應用于企業級Web應用開發和移動應用開發,
Java 語言作為靜態面向物件編程語言的代表,極好地實作了面向物件理論,允許程式員以優雅的思維方式進行復雜的編程,
Java 語言是一種分布式的面向物件語言,具有面向物件、平臺無關性、簡單性、解釋執行、多執行緒、安全性等很多特點,
簡單性
Java 看起來設計得很像 C++,但是為了使語言小和容易熟悉,設計者們把 C++ 語言中許多可用的特征去掉了,這些特征是一般程式員很少使用的,例如,Java 不支持 go to 陳述句,代之以提供 break 和 continue 陳述句以及例外處理,Java 還剔除了 C++ 的運算子過載(overload)和多繼承特征,并且不使用主檔案,免去了預處理程式,因為 Java 沒有結構,陣列和串都是物件,所以不需要指標,Java 能夠自動處理物件的參考和間接參考,實作自動的無用單元收集,使用戶不必為存盤管理問題煩惱,能更多的時間和精力花在研發上,
面向物件
Java 是一個面向物件的語言,對程式員來說,這意味著要注意應中的資料和操縱資料的方法(method),而不是嚴格地用程序來思考,在一個面向物件的系統中,類(class)是資料和操作資料的方法的集合,資料和方法一起描述物件(object)的狀態和行為,每一物件是其狀態和行為的封裝,類是按一定體系和層次安排的,使得子類可以從超類繼承行為,在這個類層次體系中有一個根類,它是具有一般行為的類,Java 程式是用類來組織的,
Java 還包括一個類的擴展集合,分別組成各種程式包(Package),用戶可以在自己的程式中使用,例如,Java 提供產生圖形用戶介面部件的類(java.awt 包),這里 awt 是抽象視窗工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io 包)和支持網路功能的類(java.net 包),
分布性
Java 設計成支持在網路上應用,它是分布式語言,Java 既支持各種層次的網路連接,又以 Socket 類支持可靠的流(stream)網路連接,所以用戶可以產生分布式的客戶機和服務器,
網路變成軟體應用的分布運載工具,Java 程式只要撰寫一次,就可到處運行,
編譯和解釋性
Java 編譯程式生成位元組碼(byte-code),而不是通常的機器碼,Java 位元組碼提供對體系結構中性的目標檔案格式,代碼設計成可有效地傳送程式到多個平臺,Java 程式可以在任何實作了 Java 解釋程式和運行系統(run-time system)的系統上運行,
在一個解釋性的環境中,程式開發的標準“鏈接”階段大大消失了,如果說 Java 還有一個鏈接階段,它只是把新類裝進環境的程序,它是增量式的、輕量級的程序,因此,Java 支持快速原型和容易試驗,它將導致快速程式開發,這是一個與傳統的、耗時的“編譯、鏈接和測驗”形成鮮明對比的精巧的開發程序,
穩健性
Java 原來是用作撰寫消費類家用電子產品軟體的語言,所以它是被設計成寫高可靠和穩健軟體的,Java 消除了某些編程錯誤,使得用它寫可靠軟體相當容易,
Java 是一個強型別語言,它允許擴展編譯時檢查潛在型別不匹配問題的功能,Java 要求顯式的方法宣告,它不支持 C 風格的隱式宣告,這些嚴格的要求保證編譯程式能捕捉呼叫錯誤,這就導致更可靠的程式,
可靠性方面最重要的增強之一是 Java 的存盤模型,Java 不支持指標,它消除重寫存盤和訛誤資料的可能性,類似地,Java 自動的“無用單元收集”預防存盤漏泄和其它有關動態存盤分配和解除分配的有害錯誤,Java 解釋程式也執行許多運行時的檢查,諸如驗證所有陣列和串訪問是否在界限之內,
例外處理是 Java 中使得程式更穩健的另一個特征,例外是某種類似于錯誤的例外條件出現的信號,使用 try/catch/finally 陳述句,程式員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務,
安全性
Java 的存盤分配模型是它防御惡意代碼的主要方法之一,Java 沒有指標,所以程式員不能得到隱蔽起來的內幕和偽造指標去指向存盤器,更重要的是,Java 編譯程式不處理存盤安排決策,所以程式員不能通過查看宣告去猜測類的實際存盤安排,編譯的 Java 代碼中的存盤參考在運行時由 Java 解釋程式決定實際存盤地址,
Java 運行系統使用位元組碼驗證程序來保證裝載到網路上的代碼不違背任何 Java 語言限制,這個安全機制部分包括類如何從網上裝載,例如,裝載的類是放在分開的名字空間而不是區域類,預防惡意的小應用程式用它自己的版本來代替標準 Java 類,
可移植性
Java 使得語言宣告不依賴于實作的方面,例如,Java 顯式說明每個基本資料型別的大小和它的運算行為(這些資料型別由 Java 語法描述),
Java 環境本身對新的硬體平臺和作業系統是可移植的,Java 編譯程式也用 Java 撰寫,而 Java 運行系統用 ANSIC 語言撰寫,
高性能
Java 是一種先編譯后解釋的語言,所以它不如全編譯性語言快,但是有些情況下性能是很要緊的,為了支持這些情況,Java 設計者制作了“及時”編譯程式,它能在運行時把 Java 位元組碼翻譯成特定 CPU (中央處理器)的機器代碼,也就是實作全編譯了,
Java 位元組碼格式設計時考慮到這些“及時”編譯程式的需要,所以生成機器代碼的程序相當簡單,它能產生相當好的代碼,
多執行緒性
Java 是多執行緒語言,它提供支持多執行緒的執行(也稱為輕便程序),能處理不同任務,使具有線索的程式設計很容易,Java 的 lang 包提供一個 Thread 類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法,
Java 的線索支持也包括一組同步原語,這些原語是基于監督程式和條件變數風范,由 C.A.R.Haore 開發的廣泛使用的同步化方案,用關鍵詞 synchronized,程式員可以說明某些方法在一個類中不能并發地運行,這些方法在監督程式控制之下,確保變數維持在一個一致的狀態,
跨平臺性
跨平臺性是 Java 主要的特性之一,跨平臺使得用 Java 語言撰寫的程式可以在編譯后不用經過任何更改,就能在任何硬體設備條件下運行,這個特性經常被稱為“一次編譯,到處運行”,
實作跨平臺性的方法是大多數編譯器在進行 Java 語言程式的編碼時候會生成一個用位元組碼寫成的“半成品”,這個“半成品”會在 Java 虛擬機(解釋層)的幫助下運行,虛擬機會把它轉換成當前所處硬體平臺的原始代碼,之后,Java 虛擬機會打開標準庫,進行資料(圖片、執行緒和網路)的訪問作業,主要注意的是,盡管已經存在一個進行代碼翻譯的解釋層,有些時候 Java 的位元組碼代碼還是會被 JIT 編譯器進行二次編譯,
有些編譯器,比如 GCJ,可以自動生成原始代碼而不需要解釋層,但是這些編譯器所生成的代碼只能應用于特定平臺,并且 GCJ 目前只支持部分的 Java API,
Java 語言使用解釋層最初是為了輕巧性,所以這些程式的運行效率比 C 語言和 C++ 要低很多,用戶也對此頗有微詞,很多最近的調查顯示 Java 的程式運行速度比幾年前要高出許多,有些同樣功能的程式的效率甚至超過了 C++ 和 C 語言撰寫的程式,
Java 語言在最開始應用的時候是沒有解釋層的,所有需要編譯的代碼都直接轉換成機器的原始代碼,這樣做雖然使程式獲得了最佳的性能,但是導致程式例外臃腫,從 JIT 技術開始,Java 的程式都經過一次轉換之后才變成機器碼,很多老牌的第三方虛擬機都使用一種叫做“動態編譯”的技術,也就是說虛擬機實時監測和分析程式的運行行為,同時選擇性地對程式所需要的部分進行編譯和優化,所有這些技術都改善了代碼的運行速度,但是又不會讓程式的體積變得失常,
程式的輕便性事實上是軟體撰寫很難達到的一個目標,Java 雖然成功地實作了“一次編譯,到處運行”,但是由于平臺和平臺之間的差異,所撰寫的程式在轉換代碼的時候難免會出現微小的、不可察覺的錯誤和意外,有些程式員對此非常頭疼,他們嘲笑 Java 的程式不是“一次編譯,到處運行”,而是“一次編譯,到處除錯”,以 Java AWT 為例,早期 Java AWT 內提供的按鈕、文字區等均是以計算機系統所默認的樣式而顯示,這令 Java 程式在有些沒有提供圖案的計算機系統產生錯誤(在 Microsoft Windows 設有視窗管理器,在一些 Linux distribution 則沒有),后來 Sun 公司針對 Java AWT 一些問題而推出 Java Swing,
平臺無關性讓 Java 在服務器端軟體領域非常成功,很多服務器端軟體都使用 Java 或相關技術創建,
自動垃圾回收(Garbage Collection)
C++ 語言被用戶詬病的原因之一是大多數 C++ 編譯器不支持垃圾收集機制,通常使用 C++ 編程的時候,程式員于程式中初始化物件時,會在主機存盤器堆疊上分配一塊存盤器與地址,當不需要此物件時,進行析構或者洗掉的時候再釋放分配的存盤器地址,如果物件是在堆疊上分配的,而程式員又忘記進行洗掉,那么就會造成存盤器泄漏(Memory Leak),長此以往,程式運行的時候可能會生成很多不清除的垃圾,浪費了不必要的存盤器空間,而且如果同一存盤器地址被洗掉兩次的話,程式會變得不穩定,甚至崩潰,因此有經驗的 C++ 程式員都會在洗掉之后將指標重置為 NULL ,然后在洗掉之前先判斷指標是否為 NULL,
C++ 中也可以使用“智能指標”(Smart Pointer)或者使用 C++ 托管擴展編譯器的方法來實作自動化存盤器釋放,智能指標可以在標準類別庫中找到,而 C++ 托管擴展被微軟的 Visual C++ 7.0 及以上版本所支持,智能指標的優點是不需引入緩慢的垃圾收集機制,而且可以不考慮執行緒安全的問題,但是缺點是如果不善使用智能指標的話,性能有可能不如垃圾收集機制,而且不斷地分配和釋放存盤器可能造成存盤器碎片,需要手動對堆進行壓縮,除此之外,由于智能指標是一個基于模板的功能,所以沒有經驗的程式員在需要使用多型特性進行自動清理時也可能束手無策,
Java 語言則不同,上述的情況被自動垃圾收集功能自動處理,物件的創建和放置都是在存盤器堆疊上面進行的,當一個物件沒有任何參考的時候,Java 的自動垃圾收集機制就發揮作用,自動洗掉這個物件所占用的空間,釋放存盤器以避免存盤器泄漏,
注意程式員不需要修改 finalize 方法,自動垃圾收集也會發生作用,但是存盤器泄漏并不是就此避免了,當程式員疏忽大意地忘記解除一個物件不應該有的參考時,存盤器泄漏仍然不可避免,
不同廠商、不同版本的 JVM 中的存盤器垃圾回識訓制并不完全一樣,通常越新版本的存盤器回識訓制越快,IBM、BEA、SUN 等等開發 JVM 的公司都曾宣稱過自己制造出了世界上最快的 JVM,JVM 性能的世界紀錄也在不斷的被打破并提高,
IBM有一篇有關 Java 存盤器回識訓制比不激活垃圾收集機制的 C++ 存盤器處理快數倍的技術文章,而著名的 Java 技術書籍《 Java 編程思想》(Thinking in Java)也有一段論述 Java 存盤器及性能達到甚至超過 C++ 的章節,
4.Java平臺
Java 平臺 由 Java 虛擬機(Java Virtual Machine,JVM) 和 Java 應用編程介面(Application Programming Interface,API) 構成,
Java 應用編程介面為此提供了一個獨立于作業系統的標準介面,可分為基本部分和擴展部分,在硬體或作業系統平臺上安裝一個 Java 平臺之后,Java 應用程式就可運行,
Java三大體系
按應用范圍,Java 可分為 3 個體系,即 Java SE、Java EE 和 Java ME,
Java SE
Java SE(Java Platform Standard Edition,Java 平臺標準版)以前稱為 J2SE,它允許開發和部署在桌面、服務器、嵌入式環境和實時環境中使用的 Java 應用程式,Java SE 包含了支持 Java Web 服務開發的類,并為 Java EE 提供基礎,如 Java 語言基礎、JDBC 操作、I/O 操作、網路通信以及多執行緒等技術,
Java EE
Java EE(Java Platform Enterprise Edition,Java 平臺企業版)以前稱為 J2EE,企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程式,Java EE 是在 Java SE 基礎上構建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實作企業級的面向服務體系結構(Service Oriented Architecture,SOA)和 Web 2.0 應用程式,
Java ME
Java ME(Java Platform Micro Edition,Java 平臺微型版)以前稱為 J2ME,也叫 K-JAVA, Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和列印機)上運行的應用程式提供一個健壯且靈活的環境,
Java ME 包括靈活的用戶界面、健壯的安全模型、豐富的內置網路協議以及對可以動態下載的聯網和離線應用程式,基于 Java ME 規范的應用程式 只需撰寫一次就可以用于許多設備,而且可以利用每個設備的本機功能,
5.開發環境
JDK(Java Development Kit)
JDK(Java Development Kit)稱為 Java 開發工具包,包括了 Java 運行環境(Java Runtime Environment),一些Java 工具和 Java 的核心類別庫(Java API),
主流的 JDK 是 Sun 公司發布的 JDK ,除了 Sun 之外,還有很多公司和組織都開發了自己的JDK,例如,IBM 公司開發的 JDK,BEA公司的 Jrocket,還有GNU組織開發的 JDK ,
另外,可以把 Java API 類別庫中的 Java SE API 子集和 Java 虛擬機這兩部分統稱為 JRE(JAVA Runtime Environment),JRE 是支持 Java 程式運行的標準環境 ,
想要開發一個全新的Java程式,那么必須安裝 JDK,
JRE(Java Runtime Environment)
JRE 是個運行環境,JDK 是個開發環境,運行 Java 程式的時候就需要 JRE,而 JDK 里面已經包含了 JRE,因此只要安裝了 JDK,就可以編輯 Java 程式,也可以正常運行 Java 程式,
但由于 JDK 包含了許多與運行無關的內容,占用的空間較大,因此想要運行一個已有的 Java 程式,就只需要安裝 JRE 即可,
6.簡易的Java程式
源檔案名為:HelloWorld.java
檔案內容為:
/**
*訪問修飾符:public---公開訪問
*class---類識別符號
*類名:HelloWorld(可以隨意寫)
*/
public class HelloWorld {
/**
*訪問修飾符:public---公開訪問
*static---靜態修飾符
*回傳型別:void---慷訓傳型別
*方法名:main---方法名(main方法名不可亂寫,其他方法可以隨意寫)
*形式引數型別:String[]---字串型別的陣列
*形式引數名:args---變數名(可以隨意寫)
*/
public static void main(String[] args) {
//輸出列印到控制臺
System.out.println("HelloWorld");
}
}
PS:
大小寫敏感:Java是大小寫敏感的,這就意味著識別符號Hello與hello是不同的,
源檔案名:源檔案名必須和類名相同,當保存檔案的時候,你應該使用類名作為檔案名保存(切記Java是大小寫敏感的),檔案名的后綴為.java,(如果檔案名和類名不相同則會導致編譯錯誤),
主方法入口:所有的Java程式由public static void main(String[] args)方法開始執行,
類名(大駝峰命名法):對于所有的類來說,類名的首字母應該大寫,如果類名由若干單詞組成,那么每個單詞的首字母應該大寫,例如MyFirstJavaClass,
方法名(小駝峰命名法):所有的方法名都應該以小寫字母開頭,如果方法名含有若干單詞,則后面的每個單詞首字母大寫,例如myFirstJavaMethod,
可以使用txt檔案,撰寫檔案內容后,再對檔案進行重命名操作,從而完成撰寫Java源檔案,
7.Java程式的簡易理論運作流程
1.撰寫Java源檔案
撰寫 Java 源檔案(即: *.java 檔案,文本檔案),
2.編譯Java源檔案為位元組碼檔案
使用編譯器 javac.exe 將 Java 源檔案編譯生成一種與平臺無關的二進制中間碼---位元組碼檔案(即: *.class 檔案,特殊的二進制檔案(可以理解為 JVM 專用的機器語言)),
3.JVM解釋位元組碼檔案并運行
Java 虛擬機(即 JVM ) 加載位元組碼檔案,呼叫解釋器 java.exe 將位元組碼檔案解釋為當前平臺的機器語言并運行,
PS:Class 檔案是一組以8位位元組為基礎單位的二進制流,各個資料專案嚴格按照順序緊湊地排列在 Class 檔案之中,中間沒有添加任何分隔符,這使得整個 Class 檔案中存盤的內容幾乎全部是程式運行的必要資料,沒有空隙存在,當遇到需要占用8位位元組以上空間的資料項時,則會按照高位在前的方式分割成若干個8位位元組進行存盤,
8.集成開發環境工具
IntelliJ IDEA
IntelliJ IDEA:IntelliJ 在業界被公認為最好的 Java 開發工具,尤其在智能代碼助手、代碼自動提示、重構、JavaEE 支持、各類版本工具( git、svn 等)、JUnit、CVS 整合、代碼分析、 創新的 GUI 設計等方面的功能可以說是超常的,支持 HTML,CSS,PHP,MySQL,Python,Kotlin 等,
Eclipse
Eclipse:Eclipse 是著名的跨平臺的自由集成開發環境(IDE),最初主要用來 Java 語言開發,但是目前亦有人通過插件使其作為其他計算機語言比如 C++ 和 Python 的開發工具,
NetBeans
NetBeans:NetBeans 是 Sun 公司在2000年創立的開放源代碼供開發人員和客戶社區的家園,旨在構建世界級的 Java IDE,NetBeans 當前可以在 Solaris、Windows、Linux和 Macintosh OS X 平臺上進行開發,并在 SPL (Sun 公用許可)范圍內使用,
NetBeans 包括開源的開發環境和應用平臺,NetBeans IDE 可以使開發人員利用 Java 平臺能夠快速創建 Web、企業、桌面以及移動的應用程式,NetBeans IDE 已經支持 PHP、Ruby、JavaScript、Groovy、Grails 和 C/C++ 等開發語言,
MyEclipse
MyEclipse:由 Genuitec 公司開發的一款商業化軟體,是在 Eclipse 基礎上加上自己的插件開發而成的功能強大的企業級集成開發環境,主要用于 Java、Java EE 以及移動應用的開發,在最新版本的 MyEclipse 中,配合 CodeMix 使用支持也十分廣泛,尤其是對各種開源產品和主流開發框架的支持相當不錯,目前已支持 PHP、Python、Vue、Angular、React、Java、Java EE 等語言和框架開發,
9.參考資料(排名不分先后)
維基百科-Java
百度百科-Java
C語言中文網-Java教程
菜鳥教程-Java
Oracle戰略收購Sun宣告
維基百科-Java版本歷史
博客園-某人的喵星人-Java程式運行流程
百度百科-二進制檔案
百度百科-文本檔案
《深入理解Java虛擬機(第三版)》-周志明-Class類檔案的結構
百度百科-IntelliJ IDEA
百度百科-Eclipse
百度百科-NetBeans
百度百科-MyEclipse
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228380.html
標籤:Java
