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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論