




已閱讀5頁,還剩37頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
精品文檔1、 java簡介Java是現在最為流行的編程語言之一,也是擁有眾多廠商支持的編程語言之一,同時Java已經成為了一個事實上的應用層開發的標準(基于業務的開發)。其上所構建出來的框架也是最多的,發展的如此良好歸結于一點:反射機制(所有框架的靈魂)。 Java語言的前身是在1991年開發出的OAK平臺,最早是為一個GREEN的項目而設計的,此項目的核心意義在于利用email來控制家電產品運行,也就是最早所謂的物聯網的概念。當時SUN的工程師們原本打算使用C+進行開發,后來考慮到C+復雜性,于是以C+為基礎開發出了一個OAK平臺技術,所以Java是使用C+編寫。Java推出了Hot Java瀏覽器技術,并且獲得了相當大的成功,所以Java最早的定位就是基于網絡的。 后來Java經過了一些時間的沉淀,在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(斯坦伏大學網絡)開發的,SUN是一家從事于硬件生產的公司,而SUN最著名的代表作就是小型機,而最成功的應用是在amazon上進行的。Amazon是一個在線商店,但是它自己也出版許多的技術圖書。現在amazon比較著名的服務就是云服務,像CIA也購買了amazon云服務,搭建的是一個私有云服務。但是非常遺憾的是,SUN經歷了世界的互聯網低潮,低潮之后就一直沒有重新站起來,在2009年的時候終于被Oracle收購了。解釋:關于Oracle收購SUN 企業平臺架構:操作系統 + 數據庫 + 中間件 + 編程語言; 微軟的產品:Windows + SQL Server + IIS + .NET、Office; Oracle的產品:UNIX + Oracle + OAS(收購BEA得到WebLogic) + PL/SQL(收購SUN取得Java)、CRM、ERP;而Java技術的發展又有了幾個分支:J2SE(2005年之后更名為Java SE):提供了一些基礎版本的支持;J2EE(2005年之后更名為Java EE):提供了企業平臺搭建,現在使用最廣泛的架構;J2ME(2005年之后更名為Java ME):提供了嵌入式開發的支持,但是卻出生在了一個不好的時代,Nokia橫行的時代,但是J2ME在哪個時候只能夠作為游戲的出現。后來被Android所取代了。 Java主要的特點:Java語言足夠簡單、Java是一門面向對象的編程語言、Java提供了垃圾的自動收集機制、Java提供了多線程與反射操作機制、Java具備很強的可移植性。由于所有的程序不是直接與具體的操作系統捆綁在一起,那么都是經過JVM處理后執行的,所以只要JVM支持的功能不改變,那么程序可以在不同的平臺間進行任意的移植。但是由于程序沒有操作系統直接接觸,所以會導致性能下降,最早也是容易被競爭對手詬病的問題,但是隨著硬件技術的發展,這些問題都解決了。2、 JDK安裝如果要進行Java程序的開發,那么需要下載JDK(),本次使用的是JDK 1.7版本。但是在進行JDK的安裝之前請保證本機的病毒防火墻關閉。 安裝過程之中會詢問用戶是否要安裝JRE,在現在的操作系統里面都支持了JRE,但是支持的并不是最新的,所以本次是選擇安裝新的JRE,所謂的JRE指的是JAVA運行時環境,即:如果只有JRE,那么表示只能夠運行Java程序,但是卻不能夠進行開發。 安裝完成之后可以發現所有JDK的可執行程序路徑:D:Javajdk1.7.0_09bin。但是這些命令本身并不屬于windows系統,所以需要首先進行路徑的配置:【我的電腦】 【屬性】【高級】【環境變量】【編輯path】。 此時在path環境變量里面已經存在有一些其它配置,而且多個路徑之間要使用“;”進行分割。把新的路徑放在最前面,此時的效果如下。3、 基本概念3.1 第一個程序范例:定義Hello.java程序public class Hello public static void main(String args) System.out.println(Hello World .) ; 當程序編寫完成之后,下面就可以采用如下的方式進行操作(基于命令行方式):/在WINDOWS命令窗口下進行操作執行。 編譯程序:javac Hello.java,執行之后一個Hello.class的字節碼文件,也是真正要執行的程序; 解釋程序:java Hello,解釋程序,在JVM上進行解釋。第一個程序雖然簡單,但是卻包含了所有Java的核心運行過程,針對于每一步進行解釋。1、 定義類的部分:public class Hello 類之中的代碼; 類是在明天開始才要解釋的概念,那么在Java之中所有的程序都要求以類為單元進行編寫,對于類的定義有兩種: public class 類名稱:文件名稱要與類名稱保持一致,但是一般而言,在一個*.java文件里面只能夠有一個public class定義; class 類名稱:文件名稱可以與類名稱不同,但是生成的*.class名稱是定義的類名稱,在一個*.java文件里面可以同時使用class定義多個類,編譯之后每一個類會自動生成各自的*.class文件; 在日后進行類名稱定義的時候,有一個自己的命名規范:每一個單詞的首字母必須大寫,例如:HelloJavaDemo。2、 主方法 主方法表示的是程序的起點,任何的程序都是由主方法開始執行的,在Java中的主方法組成比較長: public static void main(String args) 編寫代碼,今天的代碼都在此處編寫; 一般主方法都習慣于將其放在使用public class定義的類之中,所以主方法所在的public class類,日后稱為主類。3、 系統輸出 系統輸出指的是將提示信息輸出到標準輸出設備 顯示器上,對于系統輸出有兩種方式:輸出之后增加換行:System.out.println(內容) ;輸出之后不增加換行:System.out.print(內容) ; 把以上的基本程序弄熟練了,基本上今天的Java程序的結構也就都固定了。3.2 CLASSPATH初步分析(重點)通過單詞的含義就可以清楚的知道,CLASSPATH指的是類的保存路徑。例如,現在在D:testjava目錄下存在有一個“Hello.class”文件存在,那么此時命令行所在的路徑也是“d:testjava”,所以可以直接使用“java Hello”這個類。但是如果說此時命令行的所在路徑為“e:”,在e盤下并沒有存在Hello.class文件。那么一旦執行了“java Hello”命令會出現如下的錯誤提示信息:錯誤: 找不到或無法加載主類 Hello Error:NotFoundClassError : Hello 那么現在就希望即使所在的路徑在e盤上,也可以加載到d:testjava目錄下的Hello.class文件,則可以通過設置CLASSPATH完成。范例:設置CLASSPATHSET CLASSPATH=d:testjava 設置完成之后,那么再次執行“java Hello”命令。那么發現可以找到Hello.class文件,所以可以得出一個結論:每當使用java命令解釋一個類的時候,會自動的通過CLASSPATH所設置的路徑加載所需要的類。 但是如果在實際的工作之中這樣到處亂設置CLASSPATH并不方便,最好的做法是從當前所在的路徑下去加載所需要的類文件。那么往往會將CLASSPATH設置為“.”,表示從當前所在路徑加載。范例:設置從當前所在路徑加載類SET CLASSPATH=. 默認情況下所有的CLASSPATH都是通過當前所在路徑進行加載的,但是在一些軟件配置的時候,有可能會自動的幫你去修改CLASSPATH路徑,那么此時就必須手工設置,但是上面的手工設置只適合于當前的命令行方式。如果要想針對于所有的命令行窗口,則可以建立一個新的環境屬性。面試題:請解釋PATH和CLASSPATH的區別? PATH:是操作系統的程序配置路徑,通過此路徑配置可執行程序; CLASSPATH:是Java程序解釋時所使用的路徑,用戶執行java命令的時候會自動的根據CLASSPATH所設置的路徑進行類的加載,一般都將其設置為“.”表示從當前所在路徑進行類加載。3.3 標識符與關鍵字、注釋(重點)在定義類、變量名稱、方法名稱的時候對于命名是有組成要求的,在Java里面任何的一個標識符可以由字母、數字、_、$ 符號所組成,其中不能以數字開頭,不能是Java的關鍵字(保留字),像Hello、JavaDemo,都屬于合法的標識符。但是在定義標識符的時候個人原則:建議都以字母開頭,由字母和數字組成,少用“_”,堅決不用“$”。在以上所給出的49個關鍵字之中,有兩個關鍵字只是介紹不講解:native、volatile。 在給出的關鍵字之中,有三個嚴格來講不屬于關鍵字,只屬于特殊含義的單詞,例如:null、true、false; Java里面有兩個不使用的關鍵字:goto、const 在JDK 1.4之后增加了一個assert關鍵字,將在異常處理中使用; 在JDK 1.5之后增加了一個enum關鍵字。 除此之外任何的語言都會存在有注釋的概念,所謂的注釋指的是程序在編譯的時候不會編譯的程序部分,在Java里面有三類注釋: 單行注釋:/ 注釋; 多行注釋:/* */; 文檔注釋:/* */ 此類注釋最后再使用。3.4 Java數據類型劃分(重點)程序的數據類型指的是允許操作的數據形式,例如數據庫之中可以操作字符串、數字、日期時間,那么程序也是一樣的。在Java之中數據類型一共分為兩大類: 基本數據類型(只包含具體的數據,不牽扯到內存的關聯):數值型:整型:byte、short、int、long; 默認值:0實型(浮點型):float、double; 默認值:0.0字符型:char; 默認值:u0000布爾型:boolean;默認值:false 引用數據類型(指的內存的關聯數據,類似于指針的概念):類、數組、接口。 默認值:null通過以上的數據的保存大小可以發現,按照由小到大的保存順序:byte short int long float = 48 & c = 0 & c = 9) System.out.println(是一個數字!) ; 而且由于UNICODE編碼的存在,所以Java中的char數據類型是可以保存中文的。public class TestDemo public static void main(String args) char c = 刁 ; / 字符變量 int num = c ; System.out.println(num) ; 但是如果要想保存中文,必須是在中文的語言環境下。3.4.4 布爾型數據(boolean) 布爾是一個數學家的名字,對于boolean數據類型只有兩種選擇:true、false。一般而言,布爾數據類型往往都作為一些程序的控制邏輯使用。范例:程序邏輯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 / 三目也可以利用判斷語句實現,不過代碼較長。3.5.2、邏輯運算 邏輯運算主要有與、或、非三種,其中非的實現主要依靠“!”完成。但是最為麻煩的是與和或兩個運算,因為各自都有兩組實現。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) 此時出現了程序的錯誤,那么就表示兩個判斷條件實際上都執行了,但是來分析一下與操作的特點,與操作必須保證所有的判斷條件都為true,最終才是true,那么按照之前的判斷來講,前面已經有條件返回了false,那么后面不管有多少個true,結果一定是false,那么就沒有必要繼續向后判斷了,則可以使用短路與“&”。范例:使用“&”public class TestDemo public static void main(String args) if (1 = 2 & 10 / 0 = 0) System.out.println(條件滿足!) ; 此時后面的條件沒有繼續判斷,屬于短路操作。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,結果就是true,而在以上的程序之中,發現前面有條件返回了true,但是后面的判斷依然執行了,這就是因為普通或會將所有的條件都判斷執行,而現在使用短路或。范例:使用短路或(|)public class TestDemo public static void main(String args) if (1 = 1 | 10 / 0 = 0) System.out.println(條件滿足!) ; 此時前面的條件返回了true,而不管后面會返回多少個false,最終的結果也一定是true。結論:在任何情況下編寫邏輯判斷的時候都使用“&”、“|”。3.5.3、位操作(了解)位運算的初步就是需要實現十進制和二進制數據之間的轉換操作,轉換原則:數字除2取余,最后按照倒序排列。十進制: 11 00000000 00000000 00000000 00001011(二進制數據,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,也就是算術右移(4)移位操作的數據類型可以是byte, char, short, int, long
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷鏈物流基地項目可行性研究報告
- 生物化學醫藥知識點解析
- 汽車發動機原理與性能知識要點
- 鄉村健康教育體系構建與推廣途徑
- 我的理想職業寫給自己的一封未來信(14篇)
- 農業綠色低碳發展的全球趨勢與挑戰
- 快樂寒假回憶記事作文(11篇)
- 網絡安全與信息技術題庫構建
- 2025年藝術設計專業課程考核試卷及答案
- 2025年香港歷史文化與社會發展的考試試卷及答案
- 校長在2025暑假前期末教師大會上的講話:靜水深流腳踏實地
- (2025)全國“安全生產月活動”《安全知識》競賽試題庫(附含答案)
- 貸款后管理與客戶滿意度提升
- 自動生成的文檔-202504081202-99
- 費用類報銷管理制度
- 杭州市上城區2025年下半年下半年招考50名專職社區工作者易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年中國SUV帳篷行業市場前景預測及投資價值評估分析報告
- 福建省惠安縣2025屆七下數學期末學業質量監測試題含解析
- 2025年就業指導培訓課件
- 2025-2030石油管道行業市場深度調研及競爭格局與投資研究報告
- 腹部超聲檢查規范指南
評論
0/150
提交評論