JAVA筆記第一章-基礎(chǔ)部分(李興華網(wǎng)易云課堂)_第1頁
JAVA筆記第一章-基礎(chǔ)部分(李興華網(wǎng)易云課堂)_第2頁
JAVA筆記第一章-基礎(chǔ)部分(李興華網(wǎng)易云課堂)_第3頁
JAVA筆記第一章-基礎(chǔ)部分(李興華網(wǎng)易云課堂)_第4頁
JAVA筆記第一章-基礎(chǔ)部分(李興華網(wǎng)易云課堂)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精品文檔1、 java簡介Java是現(xiàn)在最為流行的編程語言之一,也是擁有眾多廠商支持的編程語言之一,同時Java已經(jīng)成為了一個事實上的應(yīng)用層開發(fā)的標(biāo)準(zhǔn)(基于業(yè)務(wù)的開發(fā))。其上所構(gòu)建出來的框架也是最多的,發(fā)展的如此良好歸結(jié)于一點:反射機制(所有框架的靈魂)。 Java語言的前身是在1991年開發(fā)出的OAK平臺,最早是為一個GREEN的項目而設(shè)計的,此項目的核心意義在于利用email來控制家電產(chǎn)品運行,也就是最早所謂的物聯(lián)網(wǎng)的概念。當(dāng)時SUN的工程師們原本打算使用C+進行開發(fā),后來考慮到C+復(fù)雜性,于是以C+為基礎(chǔ)開發(fā)出了一個OAK平臺技術(shù),所以Java是使用C+編寫。Java推出了Hot Java瀏覽器技術(shù),并且獲得了相當(dāng)大的成功,所以Java最早的定位就是基于網(wǎng)絡(luò)的。 后來Java經(jīng)過了一些時間的沉淀,在1995年5月23日的時候正式推出了JDK 1.0,同時OAK被重新命名為Java,之后在1998年的時候,推出了JDK 1.2,同時將Java更名為Java 2,到了2005年十周年大會的時候,推出了JDK 1.5版本,或者稱為Java SE 5.0,最新的版本是JDK 1.8,要想使用廣泛,還需要至少3年。Java是由最早的SUN(斯坦伏大學(xué)網(wǎng)絡(luò))開發(fā)的,SUN是一家從事于硬件生產(chǎn)的公司,而SUN最著名的代表作就是小型機,而最成功的應(yīng)用是在amazon上進行的。Amazon是一個在線商店,但是它自己也出版許多的技術(shù)圖書?,F(xiàn)在amazon比較著名的服務(wù)就是云服務(wù),像CIA也購買了amazon云服務(wù),搭建的是一個私有云服務(wù)。但是非常遺憾的是,SUN經(jīng)歷了世界的互聯(lián)網(wǎng)低潮,低潮之后就一直沒有重新站起來,在2009年的時候終于被Oracle收購了。解釋:關(guān)于Oracle收購SUN 企業(yè)平臺架構(gòu):操作系統(tǒng) + 數(shù)據(jù)庫 + 中間件 + 編程語言; 微軟的產(chǎn)品:Windows + SQL Server + IIS + .NET、Office; Oracle的產(chǎn)品:UNIX + Oracle + OAS(收購BEA得到WebLogic) + PL/SQL(收購SUN取得Java)、CRM、ERP;而Java技術(shù)的發(fā)展又有了幾個分支:J2SE(2005年之后更名為Java SE):提供了一些基礎(chǔ)版本的支持;J2EE(2005年之后更名為Java EE):提供了企業(yè)平臺搭建,現(xiàn)在使用最廣泛的架構(gòu);J2ME(2005年之后更名為Java ME):提供了嵌入式開發(fā)的支持,但是卻出生在了一個不好的時代,Nokia橫行的時代,但是J2ME在哪個時候只能夠作為游戲的出現(xiàn)。后來被Android所取代了。 Java主要的特點:Java語言足夠簡單、Java是一門面向?qū)ο蟮木幊陶Z言、Java提供了垃圾的自動收集機制、Java提供了多線程與反射操作機制、Java具備很強的可移植性。由于所有的程序不是直接與具體的操作系統(tǒng)捆綁在一起,那么都是經(jīng)過JVM處理后執(zhí)行的,所以只要JVM支持的功能不改變,那么程序可以在不同的平臺間進行任意的移植。但是由于程序沒有操作系統(tǒng)直接接觸,所以會導(dǎo)致性能下降,最早也是容易被競爭對手詬病的問題,但是隨著硬件技術(shù)的發(fā)展,這些問題都解決了。2、 JDK安裝如果要進行Java程序的開發(fā),那么需要下載JDK(),本次使用的是JDK 1.7版本。但是在進行JDK的安裝之前請保證本機的病毒防火墻關(guān)閉。 安裝過程之中會詢問用戶是否要安裝JRE,在現(xiàn)在的操作系統(tǒng)里面都支持了JRE,但是支持的并不是最新的,所以本次是選擇安裝新的JRE,所謂的JRE指的是JAVA運行時環(huán)境,即:如果只有JRE,那么表示只能夠運行Java程序,但是卻不能夠進行開發(fā)。 安裝完成之后可以發(fā)現(xiàn)所有JDK的可執(zhí)行程序路徑:D:Javajdk1.7.0_09bin。但是這些命令本身并不屬于windows系統(tǒng),所以需要首先進行路徑的配置:【我的電腦】 【屬性】【高級】【環(huán)境變量】【編輯path】。 此時在path環(huán)境變量里面已經(jīng)存在有一些其它配置,而且多個路徑之間要使用“;”進行分割。把新的路徑放在最前面,此時的效果如下。3、 基本概念3.1 第一個程序范例:定義Hello.java程序public class Hello public static void main(String args) System.out.println(Hello World .) ; 當(dāng)程序編寫完成之后,下面就可以采用如下的方式進行操作(基于命令行方式):/在WINDOWS命令窗口下進行操作執(zhí)行。 編譯程序:javac Hello.java,執(zhí)行之后一個Hello.class的字節(jié)碼文件,也是真正要執(zhí)行的程序; 解釋程序:java Hello,解釋程序,在JVM上進行解釋。第一個程序雖然簡單,但是卻包含了所有Java的核心運行過程,針對于每一步進行解釋。1、 定義類的部分:public class Hello 類之中的代碼; 類是在明天開始才要解釋的概念,那么在Java之中所有的程序都要求以類為單元進行編寫,對于類的定義有兩種: public class 類名稱:文件名稱要與類名稱保持一致,但是一般而言,在一個*.java文件里面只能夠有一個public class定義; class 類名稱:文件名稱可以與類名稱不同,但是生成的*.class名稱是定義的類名稱,在一個*.java文件里面可以同時使用class定義多個類,編譯之后每一個類會自動生成各自的*.class文件; 在日后進行類名稱定義的時候,有一個自己的命名規(guī)范:每一個單詞的首字母必須大寫,例如:HelloJavaDemo。2、 主方法 主方法表示的是程序的起點,任何的程序都是由主方法開始執(zhí)行的,在Java中的主方法組成比較長: public static void main(String args) 編寫代碼,今天的代碼都在此處編寫; 一般主方法都習(xí)慣于將其放在使用public class定義的類之中,所以主方法所在的public class類,日后稱為主類。3、 系統(tǒng)輸出 系統(tǒng)輸出指的是將提示信息輸出到標(biāo)準(zhǔn)輸出設(shè)備 顯示器上,對于系統(tǒng)輸出有兩種方式:輸出之后增加換行:System.out.println(內(nèi)容) ;輸出之后不增加換行:System.out.print(內(nèi)容) ; 把以上的基本程序弄熟練了,基本上今天的Java程序的結(jié)構(gòu)也就都固定了。3.2 CLASSPATH初步分析(重點)通過單詞的含義就可以清楚的知道,CLASSPATH指的是類的保存路徑。例如,現(xiàn)在在D:testjava目錄下存在有一個“Hello.class”文件存在,那么此時命令行所在的路徑也是“d:testjava”,所以可以直接使用“java Hello”這個類。但是如果說此時命令行的所在路徑為“e:”,在e盤下并沒有存在Hello.class文件。那么一旦執(zhí)行了“java Hello”命令會出現(xiàn)如下的錯誤提示信息:錯誤: 找不到或無法加載主類 Hello Error:NotFoundClassError : Hello 那么現(xiàn)在就希望即使所在的路徑在e盤上,也可以加載到d:testjava目錄下的Hello.class文件,則可以通過設(shè)置CLASSPATH完成。范例:設(shè)置CLASSPATHSET CLASSPATH=d:testjava 設(shè)置完成之后,那么再次執(zhí)行“java Hello”命令。那么發(fā)現(xiàn)可以找到Hello.class文件,所以可以得出一個結(jié)論:每當(dāng)使用java命令解釋一個類的時候,會自動的通過CLASSPATH所設(shè)置的路徑加載所需要的類。 但是如果在實際的工作之中這樣到處亂設(shè)置CLASSPATH并不方便,最好的做法是從當(dāng)前所在的路徑下去加載所需要的類文件。那么往往會將CLASSPATH設(shè)置為“.”,表示從當(dāng)前所在路徑加載。范例:設(shè)置從當(dāng)前所在路徑加載類SET CLASSPATH=. 默認情況下所有的CLASSPATH都是通過當(dāng)前所在路徑進行加載的,但是在一些軟件配置的時候,有可能會自動的幫你去修改CLASSPATH路徑,那么此時就必須手工設(shè)置,但是上面的手工設(shè)置只適合于當(dāng)前的命令行方式。如果要想針對于所有的命令行窗口,則可以建立一個新的環(huán)境屬性。面試題:請解釋PATH和CLASSPATH的區(qū)別? PATH:是操作系統(tǒng)的程序配置路徑,通過此路徑配置可執(zhí)行程序; CLASSPATH:是Java程序解釋時所使用的路徑,用戶執(zhí)行java命令的時候會自動的根據(jù)CLASSPATH所設(shè)置的路徑進行類的加載,一般都將其設(shè)置為“.”表示從當(dāng)前所在路徑進行類加載。3.3 標(biāo)識符與關(guān)鍵字、注釋(重點)在定義類、變量名稱、方法名稱的時候?qū)τ诿怯薪M成要求的,在Java里面任何的一個標(biāo)識符可以由字母、數(shù)字、_、$ 符號所組成,其中不能以數(shù)字開頭,不能是Java的關(guān)鍵字(保留字),像Hello、JavaDemo,都屬于合法的標(biāo)識符。但是在定義標(biāo)識符的時候個人原則:建議都以字母開頭,由字母和數(shù)字組成,少用“_”,堅決不用“$”。在以上所給出的49個關(guān)鍵字之中,有兩個關(guān)鍵字只是介紹不講解:native、volatile。 在給出的關(guān)鍵字之中,有三個嚴格來講不屬于關(guān)鍵字,只屬于特殊含義的單詞,例如:null、true、false; Java里面有兩個不使用的關(guān)鍵字:goto、const 在JDK 1.4之后增加了一個assert關(guān)鍵字,將在異常處理中使用; 在JDK 1.5之后增加了一個enum關(guān)鍵字。 除此之外任何的語言都會存在有注釋的概念,所謂的注釋指的是程序在編譯的時候不會編譯的程序部分,在Java里面有三類注釋: 單行注釋:/ 注釋; 多行注釋:/* */; 文檔注釋:/* */ 此類注釋最后再使用。3.4 Java數(shù)據(jù)類型劃分(重點)程序的數(shù)據(jù)類型指的是允許操作的數(shù)據(jù)形式,例如數(shù)據(jù)庫之中可以操作字符串、數(shù)字、日期時間,那么程序也是一樣的。在Java之中數(shù)據(jù)類型一共分為兩大類: 基本數(shù)據(jù)類型(只包含具體的數(shù)據(jù),不牽扯到內(nèi)存的關(guān)聯(lián)):數(shù)值型:整型:byte、short、int、long; 默認值:0實型(浮點型):float、double; 默認值:0.0字符型:char; 默認值:u0000布爾型:boolean;默認值:false 引用數(shù)據(jù)類型(指的內(nèi)存的關(guān)聯(lián)數(shù)據(jù),類似于指針的概念):類、數(shù)組、接口。 默認值:null通過以上的數(shù)據(jù)的保存大小可以發(fā)現(xiàn),按照由小到大的保存順序:byte short int long float = 48 & c = 0 & c = 9) System.out.println(是一個數(shù)字!) ; 而且由于UNICODE編碼的存在,所以Java中的char數(shù)據(jù)類型是可以保存中文的。public class TestDemo public static void main(String args) char c = 刁 ; / 字符變量 int num = c ; System.out.println(num) ; 但是如果要想保存中文,必須是在中文的語言環(huán)境下。3.4.4 布爾型數(shù)據(jù)(boolean) 布爾是一個數(shù)學(xué)家的名字,對于boolean數(shù)據(jù)類型只有兩種選擇:true、false。一般而言,布爾數(shù)據(jù)類型往往都作為一些程序的控制邏輯使用。范例:程序邏輯public class TestDemo public static void main(String args) boolean flag = 1 numB ? numA : numB ; System.out.println(result) ; / 20 public class TestDemo public static void main(String args) int numA = 10 ; int numB = 20 ; int result = 0 ; if (numA numB) result = numA ; else result = numB ; System.out.println(result) ; / 20 / 三目也可以利用判斷語句實現(xiàn),不過代碼較長。3.5.2、邏輯運算 邏輯運算主要有與、或、非三種,其中非的實現(xiàn)主要依靠“!”完成。但是最為麻煩的是與和或兩個運算,因為各自都有兩組實現(xiàn)。1、 與操作:(&、&)范例:觀察“&”問題public class TestDemo public static void main(String args) if (1 = 2 & 10 / 0 = 0) System.out.println(條件滿足!) ; Exception in thread main java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:3) 此時出現(xiàn)了程序的錯誤,那么就表示兩個判斷條件實際上都執(zhí)行了,但是來分析一下與操作的特點,與操作必須保證所有的判斷條件都為true,最終才是true,那么按照之前的判斷來講,前面已經(jīng)有條件返回了false,那么后面不管有多少個true,結(jié)果一定是false,那么就沒有必要繼續(xù)向后判斷了,則可以使用短路與“&”。范例:使用“&”public class TestDemo public static void main(String args) if (1 = 2 & 10 / 0 = 0) System.out.println(條件滿足!) ; 此時后面的條件沒有繼續(xù)判斷,屬于短路操作。2、 或操作:(|、|)范例:觀察普通或“|”使用public class TestDemo public static void main(String args) if (1 = 1 | 10 / 0 = 0) System.out.println(條件滿足!) ; Exception in thread main java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:3) 由于或操作是若干個條件有一個返回true,結(jié)果就是true,而在以上的程序之中,發(fā)現(xiàn)前面有條件返回了true,但是后面的判斷依然執(zhí)行了,這就是因為普通或會將所有的條件都判斷執(zhí)行,而現(xiàn)在使用短路或。范例:使用短路或(|)public class TestDemo public static void main(String args) if (1 = 1 | 10 / 0 = 0) System.out.println(條件滿足!) ; 此時前面的條件返回了true,而不管后面會返回多少個false,最終的結(jié)果也一定是true。結(jié)論:在任何情況下編寫邏輯判斷的時候都使用“&”、“|”。3.5.3、位操作(了解)位運算的初步就是需要實現(xiàn)十進制和二進制數(shù)據(jù)之間的轉(zhuǎn)換操作,轉(zhuǎn)換原則:數(shù)字除2取余,最后按照倒序排列。十進制: 11 00000000 00000000 00000000 00001011(二進制數(shù)據(jù),int 是32位) 2 5 1 2 2 1 2 1 0 2 0 1 在Java里面提供的位運算:&、|、(取反)、(異或)、。移位操作要注意的問題是高(低)位是補0還是補1和對char, byte, short型的操作:(1) : (signed right-shift), 右移過程使用符號位擴展(sign extension),即如果符號為為1則高位補1, 是0則補0,也就是邏輯右移(3) : (unsigned right-shit),右移過程使用零擴展(zero extension),即最高位一律補0,也就是算術(shù)右移(4)移位操作的數(shù)據(jù)類型可以是byte, char, short, int, long

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論