一、 Java語言簡介
1.1 計算機語言的發展過程
計算機語言發展主要分爲三個階段:
1.第一代:機器語言
2.第二代:低級語言
3.第三代:高級語言
1.2 Java發展簡史
1.Java 是一種程序開發語言,既然是一門語言,就像其他語言一樣,具備一定的語法
和自己的數據結構。
2.Java語言來源於sun公司,sun指的是斯坦福大學網絡。由james gosling領導並開發。
Java語言的具體發展歷程
1991~1995 Sun 爲了佔領智能消費電子產品市場,由james gosling 負責該項目,來開發Oak 語言 |
1995 將Oak 改名爲Java |
1996 發佈JDK1.0 |
1997 發佈JDK1.1 |
1998 發佈JDK1.2,將該版本命名爲J2SDK,將Java更名爲Java 2 |
1999 將Java 分爲三大塊:J2SE(Java 標準版)、J2EE(Java 企業版)、J2ME(Java 微型版本) |
2000 發佈J2SE1.3 |
2002 發佈J2SE1.4 |
2004 此時不再叫J2SE1.5,叫5.0 |
2005 Java 10 週年,將J2SE 改爲JAVA SE、 將J2EE 改爲JAVA EE、將J2ME 改爲JAVAME |
2006 發佈JAVA SE 6 |
2011 年7 月JAVA SE 7 |
2014年3月19日 JAVA SE 8 發佈 |
1.1 JAVASE、JAVAEE與JAVAME的關係
Java可以分爲三個個版本,JAVAME適用於小型設備和智能卡的開發(Java Platform MicroEdition,JavaME),JAVASE適用於桌面系統的核心Java開發平臺,也成爲Java 平標準版(Java Platform Standard Edition,Java SE),第三種是基於web和服務器的應用程序Java 平臺企業版(Java Platform EnterpriseEdition,Java EE)。
1.2 Java語言特性
1.面向對象
優於面向過程的開發語言,更適用於大型軟件的開發。
2.可移植性
Java語言是跨平臺的,只需要編譯一次,就可以在多種平臺上運行,例如在Windows上編譯運行的程序也可以在Linux系統上運行。但需要安裝不同平臺上的JDK(Java開發運行環境)
3.健壯性
Java擁有自動垃圾回收機制,GC。不需要手動對內存中的垃圾進行回收。
4.多線程
可以多線程開發
5.開發簡單性
易於學習,sun提供了很多工具包。
1.3 Java的加載與執行過程
Java程序經過一次編譯就可以在不同的平臺上運行,而不需要再次編譯,這也是Java流行的一個原因。例如:編譯好的程序可以在Windows系統、Linux系統或嵌入式終端上運行。
編寫好的Java程序需要經過編譯才能執行,編譯的目的是讓底層的平臺或者機器可以識別並執行。下面的圖是Java程序編譯執行的過程。
Java程序的執行分爲兩個階段
1.編譯期
編譯期將Java源文件.java編譯成.class字節碼文件。
2.運行期
Java類加載器將.class文件加載到內存,在Java虛擬機JVM中進行解釋並生成可執行代碼,注意:這個可執行代碼是不同平臺的可執行代碼。
如下圖:
1.4 準備
1.4.1 下載安裝JDK
要下載要運行程序的系統對應的JDK,如:windows系統下載jdk-6u5-windows-i586-p.exe。Linux系統下載jdk-8u51-linux-x64.tar.gz。並安裝。
1.4.2 MS-DOS常用命令
cd命令:切換目錄。
命令格式:
cd 目錄名稱 |
dir命令:顯示當前目錄下的文件信息。
命令格式:
dir |
mkdir命令:在dos系統下創建目錄。
命令格式:
mkdir 目錄名稱 md目錄名稱 |
cls命令:清屏。
命令格式:
cls |
del命令:刪除一個文件。
命令格式:
del 文件名稱 |
rmdir命令:刪除一個空的目錄。
命令格式:
rmdir 文件名稱 rd 文件名稱 |
move命令:文件更名。
命令格式:
move 文件名稱 新文件名稱 |
1.4.3 環境變量PATH
告訴系統,要執行的命令在什麼地方,如果不設置path,系統就找不到你要執行的命令。也就是說path和操作系統相關的,和java沒有關係,但是如果JDK安裝目錄不在path中設置,操作系統就找不到我們要用的java和javac命令。
當執行javac命令時,操作系統會在path中找,找到就執行,找不到就報錯。
C:\Users\LZD>java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing) |
如果顯示上面信息,說明JDK配置成功。
1.4.4 環境變量CLASSPATH
CLASSPATH是和Java相關的。當執行一個Java程序時,會啓動一個JVM,虛擬機要在CLASSPATH設置的目錄下找要執行的.class文件,如果找到了就執行,如果找不到就報錯。如果不設置CLASSPATH,JVM就在執行java命令的當前目錄下找,如果設置了CLASSPATH就在CLASSPATH下找,不在當前目錄下找。
1.5 第一個Java程序
第一個Java程序我們使用文本編輯器進行編輯,並且在命令行進行編譯和執行。對Java程序的編譯和執行過程做到了解。
第一個Java程序HelloWorld.java:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World"); } } |
1.5.1 首先編譯Java源文件
在命令行編譯源文件,使用javac命令,命令格式如下:
C:\Users\LZD>javac d:/corejava/HelloWorld.java D:\>javac corejava/HelloWorld.java D:\corejava>javac HelloWorld.java |
可以是相對路徑也可以是絕對路徑。注意:javac命令後必須是完整的文件名稱,含擴展名java。編譯完成後會在源文件目錄形成一個HelloWorld.class 文件,這說明編譯成功了。編譯成功後就可以執行了。
1.5.2 執行Java程序
當Java源文件編譯成.class文件後就可以執行了。執行Java程序需要使用java命令,命令格式如下:
D:\corejava>java HelloWorld Hello World |
注意:java命令後跟着的是類名,但不含後綴.class。另外需要注意的是,執行Java程序涉及到CLASSPATH環境變量,如果不設置CLASSPATH,JVM就在執行java命令的當前目錄下找編譯好的.class文件並加載執行,如果設置了CLASSPATH環境變量,Java虛擬機JVM就會在CLASSPATH指定的目錄下找,而不在執行java命令的當前目錄下找.class文件。
1.5.3 語法簡介
HelloWorld.java:
// public 訪問修飾符,全局可訪問,關鍵字 // class 說明聲明的是一個Java類,關鍵字 // HelloWorld 用戶定義的類名,標識符 public class HelloWorld{ // public 語義同上 // static 表示方法是靜態的,關鍵字 // void 表示方法沒有返回值,關鍵字 // main Java程序執行入口方法,關鍵字 // String[] args 數組參數 public static void main(String[] args){ // 將信息輸出到控制檯 // System sun提供的工具類 System.out.println("Hello World"); } } |
1.5.4 Java中的註釋
在Java中,註釋會被Java虛擬機忽略,不會執行。主要用於程序功能的說明,方便其他開發人員瞭解程序的基本功能。
在Java中註釋有三種方式:
1.單行註釋
// 單行註釋 |
2.多行註釋
/* 多行註釋 多行註釋 */ |
3.多行註釋
/** * 多行註釋 * 可以生成java doc文檔 */ |
1.6 定義Java類
在Java中,定義類有兩種方式:
1.採用pubicclass 類名的方式
pubic class 類名{ // 類體 } |
注意:如果採用public class來聲明一個類,那麼文件名稱和類名必須完全相同(包括大小寫)。如果不同會報錯。
2.採用class類名的方式
class 類名{ // 類體 } |
注意:採用class關鍵字來聲明類,文件名可以是任何合法的文件名稱,文件名不需要和類名一致(當然可以相同)。但生成的class 文件名稱和類名一致,如果類名和文件名稱不同,.class文件名稱和類名相同不和原文件名稱一致。
在一個源文件中可以聲明多個類,可以將所有的類都使用class來聲明,我們新建一個Java源文件ClassTest01.java,文件內容如下:
class A{ public static void main(String[] args){ // 方法體 System.out.println("Hello World"); } }
class B{ // 類體 }
class C{ // 類體 } |
編譯:
javac ClassTest01.java |
在目錄下會生成三個.class文件,A.class、B.class和C.class。
執行:
java A |
注意:在一個java文件中,可以有多個class,沒有public class,文件名可以不和類名相同,只要是合法的文件名稱就行了。
另外,在一個源文件中可以使用public class來聲明一個類,但是要注意:如果有public class且只能有一個並且和Java文件名稱必須相同,也就是java文件中只能有一個class能被public修飾。
public class A{ public static void main(String[] args){ // 方法體 System.out.println("Hello World"); } }
class B{ // 類體 }
class C{ // 類體 } |
下面的方式是不和法的
public class A{ public static void main(String[] args){ // 方法體 System.out.println("Hello World"); } }
public class B{ // 類體 }
class C{ // 類體 } |
一、 Java中的標識符與關鍵字
2.1 標識符
在Java中,標識符可以用來標識類名,接口名,變量名和方法名,也就是用戶可以定義的名稱。
2.1.1 Java 標識符的命名規則
1.標識符是由,數字,字母,下劃線和美元符號構成,其他符號不可以
2.必須以字母、下劃線或美元符號開頭,不能以數字開頭
3.關鍵字不能作爲標識符
4.標識符區分大小寫
5.標識符理論上沒有長度限制
參見表格
合法標識符不合法標識符
$Abc | 合法 | _Abc | 合法 |
123abc | 非法 | public | 非法 |
Abc def | 非法 | Abc-def | 非法 |
public1 | 合法 | Abc# | 非法 |
Abc% | 非法 | Abc123 | 合法 |
Abc_123 | 合法 | #Abc | 非法 |
對於如何命名Java 標識符,通常的做法是見名知意,如:根據類名就知道此類的功能,通過方法名稱就知道方法的作用等等。
通常的規範是:類名首字母大寫,後面每個單詞的首字母大寫。方法名首字母小寫,後面每個單詞首字母大寫。變量首字母小寫後面每個單詞首字母大寫。靜態變量全部大寫。
如下面的例子:
// 類名首字母大寫,後面每個單詞的首字母大寫 public class ClassTest02{ // 變量首字母小寫後面每個單詞首字母大寫 public String studentName; // 同上 public int age //靜態變量全部大寫 public String COUNTRY = "中國" ;
// 方法名首字母小寫,後面每個單詞首字母大寫 public void studyLesson(){ System.out.println("學習Java") ; } } |
2.2 關鍵字
Java關鍵字是Java語言開發者定義的,並且有特定含義的字符。不能用關鍵字定義標識符。在Java 中關鍵字都是小寫的
class extends implements interface import package break case continue default do if else for return switch while false true null Boolean byte char short int Long float double try catch throw throws finally abstract final native private protected public static synchronized transient volatile instanceof new super void assert enum goto const |
二、 內容回顧與練習
3.1 內容回顧
1.瞭解Java發展歷史
2.瞭解JavaSE、JavaEE和JavaME的區別和聯繫
3.瞭解Java的編譯期和運行期的概念
4.掌握環境變量PATH和CLASSPATH的作用和區別
5.會編寫Java程序,並且在命令行編譯執行。理解javac和java命令執行過程
6.如何定義Java類
7.publicclass和class的區別