第一章 Java概覽
1.1 基本簡介
Java是一種理想的面向對象的網絡程式設計語言。
1991年,出現了Oak語言,旨在解決程式設計語言的選擇和跨平台的問題。
1994年,随着Internet的迅猛發展,Sun Microsystems公司發現Oak語言所具有的跨平台、面向對象、高安全性等特點非常适合于網際網路的需要,于是就改進了該語言的設計且命名為“Java”,并于1995年正式向IT業界推出。
1.2 Java的應用範疇
随着Java2一系列新技術(如JAVA2D、JAVA3D、SWING、JAVA SOUND、EJB、SERVLET、JSP、 CORBA、XML、JNDI等等)的引入,使得它在電子商務、金融、證券、郵電、電信、娛樂等行業有着廣泛的應用,使用Java技術實作網絡應用系統也正在成為系統開發者的首要選擇。
1.3 Java的特點
1)簡單、安全可靠
2)面向對象
3)分布式計算
4)平台的無關性(跨不同的作業系統)
5) 多線程
6) 動态的
7) 可擴充的
正如SUN Micro Systems所述:Java是簡單的、面向對象的、分布式的、解釋的、有活力的、安全的、結構中立的、可移動的、高性能的、多線程和動态的語言。
1.4 Java的三個平台
Java不僅僅是一種網絡程式設計語言,還是一個不斷擴充的開發平台。Sun公司針對不同的市場目标和裝置進行定位,把Java劃分為如下三個平台:
1)J2SE(Java2 Standard Edition)是Java2 的标準版,主要用于桌面應用軟體的程式設計。它包含了構成Java語言基礎和核心的類。我們在學習Java的過程中,主要是在該平台上進行的。
2)J2EE(Java2 Enterprise Edition)是Java2的企業版,主要是為企業應用提供一個伺服器的運作和開發平台。J2EE 不僅包含J2SE 中的類,還包含了諸如EJB、servlet、JSP、XML等許多用于開發企業級應用的類包。J2EE本身是一個開放的标準,任何軟體廠商都可以推出自己符合J2EE标準的産品,J2EE将逐漸發展成為強大的網絡計算平台。
3)J2ME(Java2 Micro Edition)是Java2的微縮版,主要為消費電子産品提供一個Java的運作平台,使得能夠在手機、機頂盒、PDA等消費電子産品上運作Java程式。
1.5 Java開發的步驟
1)使用文本編輯工具編寫Java的源程式,Java源程式的擴充名必須是.java。
2)使用Java編譯器Javac.exe編譯Java的源程式
Javac用于将擴充名為.java的源程式代碼檔案編譯成擴充名為.class位元組碼檔案。
使用格式: javac FileName.java
例:編譯java源程式myProg.java
Javac myProg.java
執行該指令将在目前目錄下生成位元組碼檔案myProg.class。
注意:在編譯檔案時,源檔案的擴充名.java必須帶上,否則會出現編譯錯誤,不能生成位元組碼檔案。
3)使用解釋器Java.exe(JVM)解釋執行Java的位元組碼程式
解釋執行編譯後的位元組碼檔案程式。
使用格式: java classFileName
例:解釋執行位元組碼檔案myProg.class
Java myProg
注意: 運作的類檔案名不需要帶.class擴充名。
Java.exe 是執行Java編譯後的.class位元組碼檔案的主要程式,所有的java程式均由此程式來加載執行,Java的跨平台技術也是由此程式實作,Sun公司在不同的作業系統中開發了不同的位元組碼解釋器,這些解釋器統稱為Java Virtual Machine(JVM)Java虛拟機。Windows下的JVM就是java.exe,使用虛拟機加載一個Java的位元組碼檔案後,Java虛拟機就開始尋找一個叫main的入口方法,開始執行位元組碼程式。
我們應該注意以下幾點:
(1) Java程式總是由一些類組成。在每個Java程式中可以包含有多個類,但至少必須有一個類;
(2) 可以把每個類的程式代碼放入一個單獨的程式檔案中,一般情況下程式檔案名和其中定義的類名取名相一緻;
(3) 源程式檔案必須使用擴充名.java。
面向對象的特點:
Java是一種純面向對象的程式設計語言,面向對象的程式程式設計有如下的特點:
1)程式中所有東西都是對象,可将對象看成是一種新型變量;它儲存着資料,且能對自身進行操作。
2)程式是一些對象的組合,通過消息傳遞進行相關的處理,各對象知道自己該做些什麼。
3)每個對象都有自己的存儲空間并可容納其他對象。也就是說通過封裝現有的對象,可以建立出新的對象。對象的概念看似簡單,其實卻可達到任意高的複雜程度。
4)如前所述,每個對象都屬于某一類型,是以每個對象都是某個類的一個執行個體。類的最重要的特征就是能将什麼消息發給它,同一類所有對象都能接收相同的消息。
1.6 Java的開發環境的搭建
1)下載下傳并安裝JDK檔案
紅色箭頭指定的必須選中,紅框線内就是提供的不同作業系統的JDK開發環境安裝包,把安裝包下載下傳後,根據系統提示的步驟安裝即可,一般都遵循預設的選擇。
2)設定系統環境
在運作Java程式或進行一些相關處理時,用到了工具箱(JDK)中的工具和資源,這就需要設定兩個環境變量PATH和CLASSPATH,以擷取運作工具和資源的路徑。1.7後的版本可以不設定ClassPath環境變量
(1) 右擊“我的電腦”圖示;
(2) 在出現的快捷菜單中單擊“屬性”選項;
(3) 在出現的“系統屬性”對話框視窗上單擊“進階”選項;
(4) 單擊對話框上的“環境變量”按鈕;
(5) 在出現的“環境變量”對話框上,單擊系統或使用者變量框内的“建立”按鈕;
建立一個名為“JAVA_HOME”的系統環境變量。其變量的值為JDK安裝根目錄,我的JDK安裝到了C:\Program Files\Java\jdk1.8.0_101。
添加JAVA_HOME環境變量
4、“建立”(或編輯)一個名為“path”的環境變量,如果Path變量已經存在,則在變量值的最後面追加“;%JAVA_HOME%\bin;”。
注意不同的系統可能會有所不同,但是原理上一樣;
5、“建立”一個名為“ClassPath”的環境變量,其值為“.;”
6、在控制台中輸入“javac”如果出現Java的拽住資訊,則表示JDK安裝成功。
1.7 JDK和JRE
JDK(Java Development Kit),Java開發環境,要開發Java必須使用此環境。
JRE(Java Runtime Environment),Java運作時環境,運作Java程式時的必須環境。
JDK中包含了JRE。
1.8 第一個程式HelloWorld
用文本編輯器編寫一個HelloWorld.java的文本檔案(Java源程式)
/**
*/
這部分内容是注釋内容,用來描述對程式的描述,主要功能、作者、檔案資訊等内容,此部分内容也可以出現在代碼的行間,用以描述以下代碼的主要功能。
Import java.util.; import是Java的關鍵字,說明該單詞後跟的一個導入的包名(java.util.)
; Java代碼,一個完成語句後一般以分号”;”作辨別,以便系統可以識别每條語句。
Public Java的關鍵字,修改一段代碼是什麼通路權限的(以後會仔細講)
Class Java關鍵字 說明後邊跟的字元代表了一個類
HelloWorld 使用者辨別符(以後講辨別符——代号),類的名字,Java源代碼的檔案名以類名+“.java”命名,Java的檔案名必須同Public限定的類名嚴格一緻(區分大小寫)。
public static void main(String[] argc) 這名話中,static Java關鍵字,靜态的,void Java關鍵字 main Java虛拟機(JVM java.exe)所要調用的方法入口,()中的代碼是執行這個main方法所使用的參數其中String
是引用類型的資料類型名稱, argc 是使用者資料辨別符。 [] 代表的是數組的意思
在方法聲明完成後 要接 “{“ 相當于流程圖中的開始的意思,在方法的結尾要以 “}”結尾,相當于流程圖的結束。
System.out.println(“Hello World!”);//這名話的意思調用System.out.println方法,在螢幕上列印“Hello World!”,相當于流程圖中的平行四邊形。System是一個類,out也是一個類,做為System類的一個變量出現,println是out類的一個方法。方法的調用,直接使用方法名+(),在()中把方法中所要使用的參數進行傳入。
1.9 延伸閱讀:
1.9.1 什麼是環境變量
windows下面的環境變量有系統級變量和使用者級變量,系統級變量是指所有使用者都可使用,不管你用哪個使用者登入,這些變量都是可以通路的。
使用者級變量則是針對特定使用者設定的變量,其他使用者不可通路。
環境變量指的是目前使用者或系統所使用的一些基本配置資訊。
比如說你要執行 java 指令,你不設定環境變量path包括你的jdk安裝路徑,那系統去哪找你的java.exe檔案。
如果執行某個指令,系統無法在目前檔案夾裡找到對應的.exe,那麼系統就會去path包含的路徑找挨個找看是否能知道對應的.exe,一旦找到第一個對應的.exe就運作指令,其他的路徑下就不找了。如果找不到你就會看到“系統找不到某某指令”的提示。
其他的環境變量也一樣的用途,隻不過是用來存儲一些資訊用的,這些資訊可以被系統使用,也可以被你的應用程式使用。
在我們設定的環境變量中曾設定了一個JAVA_HOME= C:\Program Files\Java\jdk1.8.0_101,當系統解析PATH中的%JAVA_HOME%\bin時,會用C:\Program Files\Java\jdk1.8.0_101代替JAVA_HOME,進而得到C:\Program Files\Java\jdk1.8.0_101\bin的一個路徑,而我們要使用的javac.exe、java.exe等Java的一些程式,都在C:\Program Files\Java\jdk1.8.0_101\bin下。
1.9.2 指令提示符常用指令
cmd 是command的縮略格式,即指令控制台,Windows下稱之為指令提示符,在這個視窗中鍵入指令,相當于在輕按兩下滑鼠,系統會執行相關的操作,并将結果列印到控制台上,完成人機互動。
切換驅動器使用驅動器的字元+:enter來完成
如:D:會将目前使用的驅動器更改為D:盤
Help 所有常用的内部指令的提示
CD 進入目錄(檔案夾) 也可以使用CD 來完成目錄的浏覽
Md 建立目錄
Rd 删除為空的目錄
Dir 列出目前目錄的内容
Dir *.java 列出所有擴充名為.java的檔案名
Dir /? 此指令的幫助資訊
Del 删除檔案
Cd .. 傳回上一級目錄
Cd / 傳回根目錄
. 代表目前路徑
.. 代表目前路徑的父路徑,即上一級路徑。
1.9.3 PATH 與CLASSPATH
在Windows作業系統中,如果執行某個指令,系統無法在目前檔案夾裡找到對應的.exe,那麼系統就會去path包含的路徑找挨個找看是否能知道對應的.exe,一旦找到第一個對應的.exe就運作指令,其他的路徑下就不找了。如果找不到你就會看到“系統找不到某某指令”的提示。
同理,當JVM執行某個類的位元組碼檔案(.class)時,一般會需要其它的類的位元組碼檔案來支援,如執行System.out.println()這個方法進行螢幕輸出,這時就需要Java系統中的System類,這個類并不在目前的運作目錄中,系統會按照CLASSPATH中設定的路徑尋找相關的.class檔案來尋找可用的類的位元組碼檔案來支援目前程式的運作。(CLASSPATH這個環境變量對于1.6以後的JVM基本很少使用)。