1. 程式人生 > >java入門---簡介&簡單輸出小例子&開發前準備

java入門---簡介&簡單輸出小例子&開發前準備

推薦 根據 異常處理 之間 分布式應用 基本數據 服務端 clip 點贊

Java是由Sun Microsystems公司於1995年5月推出的Java面向對象程序設計語言和Java平臺的總稱。由James Gosling和同事們共同研發,並在1995年正式推出。Java分為三個體系:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平臺標準版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺企業版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平臺微型版)。

2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名以取消其中的數字"2":J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME。它的主要特性如下:

  • Java語言是簡單的:

    Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,而是引用。並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。

  • Java語言是面向對象的:

    Java語言提供類、接口和繼承等面向對象的特性,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,並支持類與接口之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。

  • Java語言是分布式的:

    Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。

  • Java語言是健壯的:

    Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。

  • Java語言是安全的:

    Java通常被用在網絡環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網絡下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。

  • Java語言是體系結構中立的:

    Java程序(後綴為java的文件)在Java平臺上被編譯為體系結構中立的字節碼格式(後綴為class的文件),然後可以在實現這個Java平臺的任何系統中運行。這種途徑適合於異構的網絡環境和軟件的分發。

  • Java語言是可移植的:

    這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。

  • Java語言是解釋型的:

    如前所述,Java程序在Java平臺上被編譯為字節碼格式,然後可以在實現這個Java平臺的任何系統中運行。在運行時,Java平臺中的Java解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。

  • Java是高性能的:

    與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。

  • Java語言是多線程的:

    在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable)的構造子將一個實現了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得註意的是Thread類已經實現了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。

  • Java語言是動態的:

    Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能夠動態地被載入到運行環境,也可以通過網絡來載入所需要的類。這也有利於軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。

發展歷史如下:

  • 1995年5月23日,Java語言誕生
  • 1996年1月,第一個JDK-JDK1.0誕生
  • 1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術
  • 1996年9月,約8.3萬個網頁應用了JAVA技術來制作
  • 1997年2月18日,JDK1.1發布
  • 1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
  • 1997年9月,JavaDeveloperConnection社區成員超過十萬
  • 1998年2月,JDK1.1被下載超過2,000,000次
  • 1998年12月8日,JAVA2企業平臺J2EE發布
  • 1999年6月,SUN公司發布Java的三個版本:標準版(JavaSE,以前是J2SE)、企業版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME)
  • 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的計算能力有了大幅提升
  • 2004年9月30日18:00PM,J2SE1.5發布,成為Java語言發展史上的又一裏程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0
  • 2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名,以取消其中的數字"2":J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME
  • 2006年12月,SUN公司發布JRE6.0
  • 2009年04月20日,甲骨文74億美元收購Sun。取得java的版權。
  • 2010年11月,由於甲骨文對於Java社區的不友善,因此Apache揚言將退出JCP[4]。
  • 2011年7月28日,甲骨文發布java7.0的正式版。
  • 2014年3月18日,Oracle公司發表Java SE 8。

Java語言盡量保證系統內存在1G以上,其他工具如下所示:

  • Linux 系統、Mac OS 系統、Windows 95/98/2000/XP,WIN 7/8系統。
  • Java JDK 7、8……
  • Notepad 編輯器或者其他編輯器。
  • IDE:Eclipse

安裝好以上的工具後,我們通過一個簡單的實例來展示 Java 編程,創建文件 HelloWorld.java(文件名需與類名一致), 代碼如下:


public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

在這裏要註意,String args[] 與 String[] args 都可以執行,但推薦使用 String[] args,這樣可以避免歧義和誤讀。運行以上實例,輸出結果如下:

$ javac HelloWorld.java
$ java HelloWorld
Hello World

以上我們使用了兩個命令 javacjavajavac 後面跟著的是java文件的文件名,例如 HelloWorld.java。該命令用於將 java 源文件編譯為 class 字節碼文件,如: javac HelloWorld.java。運行javac命令後,如果成功編譯沒有錯誤的話,會出現一個 HelloWorld.class 的文件。java 後面跟著的是java文件中的類名,例如 HelloWorld 就是類名,如: java HelloWorld。註意:java命令後面不要加.class。

有的小夥伴看到後不理解,為什麽是 String[] args,這個 args 是幹嘛的?String[] args 可以看出來它是一個數組。在命令行中比如運行 Test.class 文件,你可以這樣寫:

java Test luyaran

相當於給數組傳入了一個 luyaran 字符串。也可以打印出來,可以作為簡單的輸入。

public class Test {
    public static void main(String[] args) {
        System.out.println(args[0]);
    }
}

運行以上實例,輸出結果如下:

$ javac Test.java
$ java Test luyaran
luyaran

此處註意,main 是一個程序的入口,一個 java 程序運行必須而且有且僅有一個 main 方法。args[0] 是你傳入的第一個參數,args[1]是傳入的第二個參數,以此類推。String[] args還有一種等價的寫法,就是String... args。前者為數組形式, 後者為可變參數形式。前者用得較多, 但是看到後者也應認識。

Java語言其實是有個曾用名的~叫Oak,而且起這個名字的時候也是很隨心的,只是因為看到了窗口外的一顆橡樹(只是因為面向窗外多看了你一眼~),所以就叫為Oak,但Oak這個名字已經被註冊。最後他們以Java這個名字命名了這個語言,據說是Sun公司的程序猿們都很喜歡喝咖啡,而且對爪哇島的一種咖啡印象很深,所以就有了Java這個經典的名字和咖啡的圖標。

在正式學習java並安裝配置開發環境之前,有必要了解一些有關Java的專業術語:

  • JDK(Java Development Kit ):編寫Java程序的程序員使用的軟件
  • JRE(Java Runtime Environment):運行Java程序的用戶使用的軟件
  • Server JRE (Java SE Runtime Environment):服務端使用的 Java 運行環境
  • SDK(Software Development Kit):軟件開發工具包,在Java中用於描述1998年~2006年之間的JDK
  • DAO(Data Access Object):數據訪問接口,數據訪問,顧名思義就是與數據庫打交道
  • MVC(Model View Controller):模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用於組織代碼用一種業務邏輯和數據顯示分離的方法

補充下面向對象程序設計的 3 個主要特征:封裝性、繼承性、多態性。

封裝性(encapsulation):封裝是一種信息隱蔽技術,它體現於類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有哪些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的算法)對用戶是隱蔽的。封裝的目的在於把對象的設計者和對象的使用者分開,使用者不必知曉其行為實現的細節,只須用設計者提供的消息來訪問該對象。

繼承性:繼承性是子類共享其父類數據和方法的機制。它由類的派生功能體現。一個類直接繼承其他類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類的對象中的數據、方法就會出現大量重復。繼承不僅支持系統的可重用性,而且還促進系統的可擴充性。

多態性:對象根據所接收的消息而做出動作。同一消息被不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。例如:同樣是 run 方法,飛鳥調用時是飛,野獸調用時是奔跑。多態性的實現受到繼承性的支持,利用類繼承的層次關系,把具有通用功能的協議存放在類層次中盡可能高的地方,而將實現這一功能的不同方法置於較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在 OOPL 中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。

好啦,這次的分享到這裏就結束了,如果感覺不錯的話,請多多點贊支持哦。。。

  原文鏈接:https://blog.csdn.net/luyaran/article/details/80088993

java入門---簡介&簡單輸出小例子&開發前準備