118.Java_前定義

1.簡介

  Java是1995年6月由Sun公司引進到咱們這個世界的革命性的編程語言。1990年Sun公司成立了由James Gosling領導的開發小組,開始致力於開發一種可移植的、跨平臺的語言,該語言能生成正確運行於各類操做系統、各類CPU芯片上的代碼。他們的精心專研和努力促成了Java語言的誕生。java

印度尼西亞有一個重要的盛產咖啡的島嶼叫Java,中文譯名爲爪哇,開發人員爲這種新的語言起名爲Java,其寓意是爲世人端上一杯熱咖啡。程序員

  Java是一門面向對象編程語言,不只吸取了C++語言的各類優勢,還摒棄了C++裏難以理解的多繼承、指針等概念,所以Java語言具備功能強大和簡單易用兩個特徵。編程

  Java語言做爲靜態面向對象編程語言的表明,極好地實現了面向對象理論,容許程序員以優雅的思惟方式進行復雜的編程。多線程

 

 

2. 發展

1991年,SUN公司的Green項目,Oak
1995年,推出Java測試版
1996年,JDK1.0
1997年,JDK1.1
1998年,JDK1.2,大大改進了早期版本缺陷,是一個革命性的版本,改名爲Java2。
2004年,J2SE 5.0 (1.5.0) Tiger老虎
2006年,J2SE 6.0 (1.6.0) Mustang野馬
2011年,JavaSE7.0 Dolphin海豚
2014年,JavaSE8.0app

 

 

3. 特色

3.1面向對象

  Java是面向對象的編程語言,將在之後詳細、準確地討論類、對象、繼承、多態、接口等重要概念。編程語言

 

3.2平臺無關性

  Java不一樣於通常的編譯語言或解釋型語言。它首先將源代碼編譯成字節碼,再依賴各類不一樣平臺上的虛擬機來解釋執行字節碼,從而具備「一次編寫,處處運行」的跨平臺特性。在早期JVM中,這在必定程度上下降了Java程序的運行效率。但在J2SE1.4.2發佈後,Java的運行速度有了大幅提高。編輯器

  平臺無關性即在一個計算機上編譯獲得的字節碼文件能夠複製到任何一個安裝了Java運行環境的計算機上直接使用。字節碼由Java虛擬機負責解釋運行,即Java虛擬機負責將字節碼翻譯成本地計算機的機器碼,並將機器碼交給本地的操做系統來運行。 post

 

說明:測試

1.平臺與機器指令ui

        這裏所指的平臺是由操做系統(Operating System, OS)和處理器CPU所構成。與平臺無關是指軟件的運行不因操做系統、處理器的變化而沒法運行或出現運行錯誤。

 

        每一個平臺都會造成本身獨特的機器指令,所謂平臺的機器指令就是能夠被該平臺直接識別、執行的一種由0,1組成的序列代碼。相同的CPU和不一樣的操做系統所造成的平臺的機器指令多是不一樣的。好比,某個平臺可能用8位序列代碼00001111表示加法指令,以10000001表示減法指令,而另外一種平臺可能用8位序列代碼10101010表示加法指令,以10010011表示減法指令。

 

2.舉例對比C/C++程序依賴平臺

       C/C++針對當前C/C++源程序所在的特定平臺對其源文件進行編譯、連接,生成機器指令,即根據當前平臺的機器指令生成可執行文件.

        不能保證C/C++源程序所產生的可執行文件在全部的平臺上都能正確地被運行,其緣由是不一樣平臺可能具備不一樣的機器指令(如圖1.2所示)

 

 

3.Java虛擬機與字節碼

       Java語言提供的編譯器不針對特定的操做系統和CPU芯片進行編譯,而是針對Java虛擬機把Java源程序編譯成稱爲字節碼的「中間代碼」能夠被Java虛擬機直接識別、執行的一種由0,1組成的序列代碼。

        字節碼並非機器指令,由於它不和特定的平臺相關,不能被任何平臺直接識別、執行。Java針對不一樣平臺提供的Java虛擬機的字節碼指令都是相同的,Java虛擬機負責將字節碼翻譯成虛擬機所在平臺的機器碼,並讓當前平臺運行該機器碼,如圖1.3所示。

 

 

3.3 多線程

  Java的特色之一就是內置對多線程的支持。多線程容許同時完成多個任務

 

3.4動態

  Java程序的基本組成單元就是類,有些類是本身編寫的,有一些是從類庫中引入的,而類又是運行時動態裝載的,這就使得Java能夠在分佈環境中動態地維護程序及類庫。 

 

3.5簡單

  Java要比C++簡單,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更清楚更容易理解的方式實現。

 

 

 

4 脈絡

0.前定義
1.數據類型
2.運算
3.語句
4.輸入輸出
5.高級功能
6.應用

 

 

 

 

5.開發步驟

5.1Java程序的開發步驟

1) 編寫源文件:擴展名必須是 .java。
2) 編譯Java源程序:用Java編譯器(javac.exe)編譯源文件,獲得字節碼文件。
3) 運行Java程序:使用Java解釋器(java.exe)來解釋執行字節碼文件。

 

 

 

 

5.2簡單Java程序

5.2.1源文件的編寫與保存

Java應用程序的源文件是由若干個書寫形式互相獨立的類組成

 

例子1:源文件Hello.java是由Hello和Student的類組成。

package app1_1;// Netbeans創建項目時增長的部分
public class Hello {
   public static void main (String args[]) { System.out.println("你們好!"); System.out.println("Nice to meet you"); Student stu = new Student(); stu.speak("We are students"); } } class Student { public void speak(String s) { System.out.println(s); } } 

 

  • 1 編寫源文件

使用一個文本編輯器,如Edit或記事本編寫上述例子1給出的源文件。
Java源程序中語句所涉及到的小括號及標點符號都是英文狀態下輸入的括號和標點符號,好比「你們好!」中的引號必須是英文狀態下的引號,而字符串裏面的符號不受漢字符或英文字符的限制。

 

  • 2. 保存源文件

若是源文件中有多個類,那麼只能有一個類是public類;若是有一個類是public類,那麼源文件的名字必須與這個類的名字徹底相同,擴展名是java;若是源文件沒有public類,那麼源文件的名字只要和某個類的名字相同,而且擴展名是java就能夠了。
上述例子1中的源文件必須命名爲Hello.java。咱們將Hello.java保存到C:\chapter1文件夾中。

 

 

  • 3.編譯

編譯器(javac)
進入邏輯分區C的chapter1目錄中,使用編譯器javac編譯源文件(如圖1.13):
圖1.13 使用javac編譯源文件
C:\chapter1> javac Hello.java

 

圖1.13 使用javac編譯源文件

 

  • 4.運行

1.應用程序的主類
一個Java應用程序必須有一個類含有

public static void main(String args[ ])


方法,稱這個類是應用程序的主類

保存   有public修飾類.java 或  均無public的話,其餘類.java

運行 主類(有psvm方法的類)的main方法


2.解釋器(java)
使用Java虛擬機中的Java解釋器(java.exe)來解釋執行其字節碼文件。Java應用程序老是從主類的main方法開始執行。所以,需進入主類字節碼所在目錄,好比C:\chapter1,而後使用Java解釋器(java.exe)運行主類的字節碼. 圖1.14 使用java解釋器運行程序 
C:\chapter1\> java Hello

 

 

 圖1.14  使用Java解釋器運行程序

 

例子2

class A { 
    public static void main(String args[]) {
      People zhubajie;
      zhubajie = new People();
      zhubajie.height = 170;
      zhubajie.ear = "兩隻大耳朵";
      System.out.println("身高:"+zhubajie.height);
      System.out.println(zhubajie.ear);
      zhubajie.speak("師傅,我們別去西天了,改去月宮吧");
    }
} 


public class People {
    int height; 
    String ear;
    void speak(String s) { 
       System.out.println(s);
    }
}

 

 

5.3java反編譯

         JDK提供的反編譯器是javap.exe(也有真對Java的許多商業反編譯軟件,例如dj-gui反編譯)。若是想反編譯例子1中的Hello.class,可以使用javap命令:javap Hello.class ,例如:

C:\chapter1\> javap Hello.class

        若是想反編譯類庫中的Date類(其包名是java.util)Date.class,可以使用javap命令:javap java.util.Date.class,例如:

C:\chapter1\> javap  java.util.Date.class

 

 

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索