**-----Java基礎大綱-----**
**-----本章節-----**
1.Java語言的歷史、特點及工作原理
2.JRE和JDK的介紹
3.Java運行環境和開發工具
4.Java基礎語法
**-----下一章節-----**
5.條件語句
6.循環
7.數組
==============================================
一:歷史及開發準備
1.Java發展歷程及來源
(1)發展歷程
1996年1月,Sun公司發佈了Java的第一個開發工具包(JDK 1.0)。
1997年2月,JDK 1.1面世,在隨後的3周時間裏,達到了22萬次的下載量。
1998年12月8日,第二代Java平臺的企業版J2EE發佈。
1999年4月27日,HotSpot虛擬機發布。
2000年5月,JDK1.3、JDK1.4和J2SE1.3相繼發佈。
2005年6月,在Java One大會上,Sun公司發佈了Java SE 6。
2011年,甲骨文公司Java7正式發佈。
2014年,甲骨文公司發佈了Java8正式版。
(2)什麼是Java
計算機語言:指人與計算機之間的通信,主要由一些指令組成,指令包括“數字、符號和語法等內容”,程序員可以通過這些指令來指揮計算機工作。
計算機語言的種類:機器語言(計算機識別)、彙編語言、高級語言;
*機器語言:由二進制的0和1組成的編碼,不便於記憶和識別。
**彙編語言:採用了英文縮寫的標識符,容易識別與記憶。
**高級語言:採用接近於人類的自然語言進行編程,進一步簡化了程序編寫的 過程。
Java是一種高級計算機語言。可以編寫跨平臺應用軟件、完全面向對象的程序設計語言。其簡單易用、安全可靠、主要面向Internet編程,在很多領域,Java無處不在。
============================================================
2.Java三大體系架構
(1)Java SE
Java SE(Java Platform Standard Edition)標準版,是爲開發普通桌面和商務應用程序提供的解決方案。它是三個平臺中最核心的部分,包括了Java最核心的類庫。
(2)Java EE
Java EE(Java platform Enterprise Edition)企業版,是爲開發企業級應用程序提供的解決方案。其爲技術平臺,用於開發、裝配以及部署企業級應用程序。
(3)Java ME
Java Me(Java platform Micro Edition)小型版,是爲開發企業級應用程序提供的解決方案。其主要用於小型電子設備上軟件程序的開發。
====================================================
3.Java編程工具(開發平臺)
(1)Eclipse:一個開放源代碼的、基於Java的可擴展開發平臺 。
(2)NetBeans:開放源碼的Java集成開發環境,適用於各種客戶機和
Web應用。
(3)IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好
的功能。
(4)MyEclipse:由Genuitec公司開發的一款商業化軟件,是應用比
較廣泛的Java應用程序集成開發環境。
(5)EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”
後,可直接使用EditPlus編譯執行Java程序 。
====================================================
4.Java語言特點
(1)簡單性
(2)面向對象
(3)分佈式
(4)健壯性
(5)安全性
(6)平臺獨立與可移植性
(7)多線程
(8)動態性
注:Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序
==================================================
5.編程環境(JVM-JDK--JRE)
(1)JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。所有的Java程序都在Java虛擬機中運行。
(2)JDK(Java Development Kit)是 Java 語言的軟件開發工具包,主要用於移動設備、嵌入式設備上的java應用程序。JDK是整個java開發的核心,它包含了JAVA的運行環境,JAVA工具和JAVA基礎的類庫。 (JDK包含編譯器和虛擬機,編譯器實現java程序的編譯,虛擬機實現程序的運行。)
(3)JRE 是Java運行環境(Java Runtime Enviroment) 的縮寫,它包括Java虛擬機(jvm)、Java核心類庫和支持文件。(運行環境(jre),它包含虛擬機但不包含編譯器)。
================================================================
6.JDK下載(新建文件夾jdk、jre)及安裝
**-----JDK下載-----**
(1)oracle官網或者是其他相關網站下載jdk文件,目前最高的版本1.8,但是因爲 新版本的穩定性原因,我們在本文中使用的是1.7版本。
下載地址:http://www.oracle.com
(2)下載的文件名:jdk-7u21-windows-i586.exe等
(3)這是一個普通的Windows下的可執行文件,可以安裝在Windows7及其以後所有版本的Windows平臺上。
(4)根據需要下載相應版本的jdk或jre,下載安裝的jdk是自動包含了jre的。
(5)對應計算機系統位數(32位或64位),安裝對應位數JDK 。
**-----JDK安裝-----**
(1)安裝時所包含的選項:
**開發工具:JDK中的核心功能模塊,其中包含一系列可執行程序,如:javac.exe、java.exe,還包含一個專用的JRE環境。
**源代碼:Java提供公共API類的源代碼。
**公共JRE:是Java程序的運行環境。安裝JDK時已包含一個JRE,因此沒有必要再安裝公共的JRE環境,此項可不作選擇。
(2)安裝好JDK後,其所包含的目錄:
Bin:用於存放一些可執行程序,如:javac.exe、java.exe、jar.exe和 javadoc.exe(文檔生成工具)等。
Dt:小型數據庫。從JDK6.0開始,java新增成員JavaDB,是一個純java實現、開源的數據庫管理系統,其支持JDBC4.0所有的規範,學習JDBC時無需再安裝數據庫軟件,選擇直接使用JavaDB即可。
Jre:Java程序運行時的環境。其爲根目錄,包含Java虛擬機,運行時的類包等。
Include:JDK是通過C和C++實現的,因此啓動時需要引入一些C語言的頭文件,該目錄用於存放這些頭文件。
Lib(library):java類庫或庫文件,是開發工具使用的歸檔包文件。
Src.zip:放置JDK核心類的源代碼,通過該文件可以查看java基礎類的源代碼。
===========================================================================
7.JDK環境變量配置
(1)進入“計算機”的“屬性”選項,選擇“高級系統設置” 。
(2)點擊“高級系統設置”後,會看到如下圖所示的對話框,選擇“環境變量” 。
(3)接下來就是具體的配置過程了:
①、在環境變量中新建“變量名”:JAVA_HOME,“變量值”:C:\Program Files\Java\jdk1.7.0_07
注:“變量值”這一欄主要填寫的是你安裝 java 的路徑,這裏根據個人的情況可能會有所不同 。
②、上步結束之後,選中系統變量中的“path”,在“變量值”一欄的最前面添加如下的 code:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意:上面的代碼最好一個字符不要差,因爲 JAVA_HOME 已經限制了你的 JDK 的路徑了,Java 的每個版本的JDK 應該都是由這些東西構成的 。
③、上一步確定之後,再“新建”:
"變量名":CLASSPATH,"變量值":
.;%JAVA_HOME%\bin;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
注: “變量值”最前面的 .; 不要漏掉。做完上面的三個步驟之後,環境變量的配置已經完成了。
=================================================================
8.調出cmd,檢查環境變量是否已搭建好
(1)輸入:“java”,你應該看到下面的東西:
(2)輸入"javac",你應該看到下面的東西:
(3)輸入"java -version",你應該看到下面的東西(查看當前安裝的JDK版本):
=============================================================
9.爲什麼要配置java的環境變量?
(1)PATH環境變量。作用是指定命令搜索路徑,在執行命令時,它會到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。我們需要把 jdk安裝目錄下的bin目錄增加到現有的PATH變量中,bin目錄中包含經常要用到的可執行文件如javac/java/javadoc等待,設置好 PATH變量後,就可以在任何目錄下執行javac/java等工具了。
(2)CLASSPATH環境變量。作用是指定類搜索路徑,要使用已經編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPTH來尋找類的。我們 需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。
(3)JAVA_HOME環境變量。它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟件就是通過搜索JAVA_HOME變量來找到並使用安裝好的jdk。
===============================================================
10.安裝開發工具Eclipse
(1)下載與jdk對應系統位數(32位或64位),打開bin目錄下的eclipse.exe雙擊即可使用。
(2)打開eclipse編輯工具,啓動編輯工具時,需要選擇工作空間,建議自選其他盤(workspace)。
(3)打開eclipse以後選擇file->New->Java Project 新建項目 。
(4)開發流程:項目(project)-包(package)-類(class)
===============================================================
11.Java的第一個程序(eclipse):
==========================================================
12.Java的第一個程序(記事本):
public class HellowWorld { //類名
public static void main(String[] args) { //main方法,程序執行入口
System.out.println("HelloWorld"); //控制檯打印輸出語句
}
}
(1)文件保存格式(文件名):HelloWorld.java
(2)文件保存格式(文件類型):所有文件
注:java文件的後綴一定是”.java”!
java區分大小寫,因此請確保文件名與類名匹配。
(3)打開cmd窗口進入到文件所在目錄後輸入javac HelloWorld.java編譯文件,如果沒有任何輸出即可編譯成功。
(4)繼續輸入java HelloWorld 即可運行編譯後的class文件。
**-----Java文件編譯與運行-----**
(1)Javac.exe:java編譯器工具,作用是將編寫好的Java文件編譯成Java字節碼 文件(可執行的Java程序)。
(2)Java.exe:java運行工具,會啓動一個Java虛擬機(JVM)進程,java虛擬機 相當於一個虛擬的操作系統,它專門負責運行由Java編譯器生成的字節碼文件 (.class文件)。
==========================================================
13.Java的第一個程序剖析:
(1)public class HelloWorld{}:
class :定義一個類,必須在類名前加關鍵
字class;
Public: class前有public修飾符,要求類名
必須與文件名同名,整個類的實現
由大括號{}括起來,表明main函數是公共的,
可以被外部java程序所調用;
HelloHworld:聲明一個名稱爲HelloWorld的類;
(2)public static void main(){String args[]}: Main()方法是程序執行的入口。所有的java應用程序都必須具有一個main()方法,而且必須按照如上的格式來定義。不具有main()方法的類可以成功編 譯,但不能成功執行,因爲它沒有main()方法作爲執行起始點。
System.out.println("HelloWorld");:實現字符串在控制檯的輸出;
Static:說明main函數是靜態函數;
String args[]:字符串類型的數組;
System.out.println():換行輸出;
System.out.print():輸出;
注:ln=line:行
==========================================================
二、Java基礎語法
1.Java命名規範
(1)項目名:建議首字母大寫(此處不做強制要求) .
(2)包名:一個唯一包名的前綴總是全部小寫的ASCII字母並且是一個頂級域名。
通常爲: com、edu、gov、mil、net、org
包的命名規則:域名(com cn org).網站.項目.功能。如:com.eduask
注:包名的後續部分根據不同機構各自內部的命名規範而不盡相同。
(3)類名:是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫;類的名 字必須由大寫字母開頭而單詞中的其他字母均爲小寫。例如TestPage
(4)Java方法(Methods):方法名是一個動詞,採用大小寫混合的方式,第一個單 詞的首字母小寫,其後單詞的首字母大寫。
============================================================
2.Java代碼註釋
目的:使代碼便於閱讀與理解,其只在Java源文件中有效,不會被編譯
(1)單行註釋://這裏是註釋
(2)多行註釋:/*.............*/
(3)文檔註釋:/**....................*/
=============================================================
3.Java中的標識符
定義標識符時,應該遵循以下規則:
(1)包名所有字母一律小寫
(2)類名和接口名每個單詞的首字母大寫。如:ArrayList
(3)常量名所有字母大寫,單詞之間用下劃線連接。如:DAY_OF_MONTH
(4)變量名和方法名的第一個單詞首字母小寫,從第二個單詞開始每個單詞首字母 大寫。如:lineNumber
(5)在程序中,儘量使用有意義的英語單詞來定義標識符,使程序便於閱讀。如: password密碼
注:標識符不能以數字開頭,不能是Java中的關鍵字。
=============================================================
4.Java中的關鍵字
一些具有特殊用途的詞被稱爲關鍵字。關鍵字對 Java 的編譯器有着特殊的意義。 Java 中常用關鍵字(所有的關鍵字都是小寫;程序中的標識符不能以關鍵字命名)。如:
=========================================================
5.Java中的常量
(1)整型常量
(2)浮點數常量
(3)字符常量
(4)字符串常量
(5)布爾常量
(6)null常量
注:常量是一種特殊的變量,一般用關鍵字final表明,有此關鍵字的常量不允許被改變。
**-----關於進制-----**
整型常量常用以下來表示:
二進制、八進制、十進制、十六進制
(1)二進制:以數字0、1組成,前面以0b或0B開頭
(2)八進制:以0開頭且其後由0~7範圍內的整數組成的數字序列
(3)十進制:由0~9的整數組成的數字序列,不能以0開頭
(4)十六進制(以0X或0x開頭且其後由0~9、A~F組成的數字序列
**-----關於進制轉換-----**
(1)十進制轉二進制:除以2取餘數,直到商爲0,再將餘數倒序排列,即爲二進制數。
二進制轉十進制:從右向左用二進制位上的每個數去乘以2的相應次方,最右邊的一位應該是2的0次方一直到2的n-1次方。
<上倒序>
<下組合不倒序>
(2)二進制轉八進制:將二進制數從右至左每三位分成一段,然後將二進制的每段的三位數轉換爲八進制數的一位
數值對應如下:
二進制:000/001/010/011/100/101/110/111
八進制:0/1/2/3/4/5/6/7
注:八進制數必須以0開頭,最後將替換的數相結合。
(3)二進制轉十六進制:將二進制數從右至左每四位分成一段,然後將二進制的每段的四位數轉換爲十六進制數的一位。
數值對應如下:
二進制:0000/0001/0010/0011/0100/0101/0110/0111/1000/1001/1010/1011/1100/1101/
1110/1111
(4)十六進制:
0/1/2/3/4/5/6/7/8/9/A/B/C/D/E/F
注:將替換的結果結合,轉換的結果爲0xA56或0XA56,十六進制數必須以0x或0X開頭
**-----特殊字符的常量表示法-----**
(1)反斜線(Backslash):\\
(2)退格(Backspace):\b
(3)回車(Carriage return):\r
(4)進紙符(Form feed):\f
(5)製表符(Form feed):\t
(6)換行(New line):\n
(7)單引號(Single quote):\’
(8)八進制數( \0~\377 ):\DDD
(9)Unicode字符:\uHHHH
============================================================
6.Java中的變量
Java中用三個元素描述變量,形式爲:變量類型 變量名=變量值
注:從本質上講,變量其實是內存中的一小塊區域,使用變量名來訪問這塊區域,因此,每個變量使用前必須先要聲明,然後必須填充內容,最後才能使用。
變量的數據類型如下:
注:在 Java 的領域裏,基本數據類型變量存的是數據本身,而引用類型變量存的是保存數據的空間地址。說白了,基本數據類型變量裏存儲的是直接放在抽屜裏的東西,而引用數據類型變量裏存儲的是這個抽屜的鑰匙,鑰匙和抽屜一一對應。
**------Java變量中的數據類型-----**
**-----Java中的數據類型分類-----**
(1)整數類型變量(沒有小數部分):
字節型(byte):byte b=3;
短整型(short): short c=23;
整型(int): int i=223;
長整型(long): long l=222222L;long l=222;
給long類型的變量賦值時要注意,如果賦值未超過int型的取值範圍,則不用加L,省略,
若賦值超過,則需在值末尾加上L字母,表示其爲long類型變量。不加L,默認其數據類型爲int。
(2)浮點數類型變量(有小數):
單精度浮點數(float):float f=2.48f;
雙精度浮點數(double):
double d1=100.1;double d2=199.3d;
Java程序中,如果float類型數據賦值後不加f,會被默認爲double類型的數據,而爲double類型數據賦值時,可加可不加D;
另外,程序中也可以爲浮點型類型變量賦予一個整數數值,如下:
float f=100;
double d=100;
(3)字符類型變量:
字符(char):char c='a';char ch=97;
字符類型變量用於存儲一個單一字符,每個char類型的字符變量都會佔用2個字節。在賦值時,需要單引號把字符括起來;也可賦值爲整數,計算機會自動將這些整數轉化爲所對應的字符。
任何超過一個字體的內容都不能聲明爲字符型。
上例中,數值97對應字符a。
注意:String 是一種常見的引用數據類型,用來表示字符串。在程序開發中,很多操作都要使用字符串來完成,例如系統中的用戶名、密碼、電子郵箱等。
(4)布爾類型變量(boolean):
布爾類型變量用來存儲布爾值,該類型只有兩個值,true和false;如下:
boolean b=false;//聲明一個boolean類型的變量,初始值爲false
b=true;//改變b的值爲true
**-----變量的數據類型轉換-----**
在Java中類型由低到高的順序爲:byte、short、char、int、long、float、double。
(1)自動轉換:當由低到高時可以自動轉換。
byte b;int i=b;long l=b;float f=b;double d=b;那麼這些都可以自動轉換,是合法的,但byte、short、char是平級的不能自動轉換,必須使用強制轉換。
(2)強制轉換:由高級到低級時,必須使用強制轉換。
int i=99;byte b=(byte) i;char c=(char) i;
**-----變量的使用規則-----**
(1)Java 中的變量需要先聲明後使用;
(2)變量使用時,可以聲明變量的同時進行初始化,也可以先聲明後賦值;
(3)變量中每次只能賦一個值,但可以修改多次;
(4)main 方法中定義的變量必須先賦值,然後才能輸出;
(5)雖然語法中沒有提示錯誤,但在實際開發中,變量名不建議使用中文,容易產 生安全隱患,譬如後期跨平臺操作時出現亂碼等等;
=========================================================
7.Java中的運算符
(1)算術運算符
2種單目算術運算符:++,--
5種雙目算術運算符: +,-,*,/,%,
注:"目"就是代表參與運算的操作成員數量
(2)賦值運算符
(3)比較運算符
(4)邏輯運算符
**-----邏輯運算符的規則-----**
(1)exp1 && exp2:當且僅當exp1和exp2表達式的值都爲真時,整個表達式的結果 爲真。
(2)exp1 || exp2 :當且僅當exp1和exp2表達式的值都爲假時,整個表達式的結 果爲假。
(3)!exp1:當exp1本來爲真時,結果爲假;本來爲假時,結果爲真(相反)。
(5)位運算符
(6)條件運算符
唯一一個三目運算符。
語法如下:a=exp1?exp2:exp3;
如果exp1的結果爲真(即非0),則a=exp2的值;否則a=exp3的值
例如:
big=(a>=b)?a:b;
a>=b爲真,則big=a,否則big=b
**-----Java中運算符的優先級-----**
=========================================================