對(duì)于Java開(kāi)發(fā)學(xué)習(xí)者來(lái)說(shuō),基礎(chǔ)掌握的知識(shí)點(diǎn)有以下幾種:
1. Java面向?qū)ο蟮膬?yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)。
2. Java虛擬機(jī)的概念,任何一種可以運(yùn)行Java字節(jié)碼的軟件均可看成是Java的虛擬機(jī)(JVM)
3. JDK顧名思義它是給開(kāi)發(fā)者提供的開(kāi)發(fā)工具箱,是給程序開(kāi)發(fā)者用的。它除了包括完整的JRE(Java Runtime Environment),Java運(yùn)行環(huán)境,還包含了其他供開(kāi)發(fā)者使用的工具包。
4. JRE的概念,普通用戶(hù)而只需要安裝JRE(Java Runtime Environment)來(lái)運(yùn)行Java程序。而程序開(kāi)發(fā)者必須安裝JDK來(lái)編譯、調(diào)試程序。
5. Java中覆蓋(Override)是指子類(lèi)對(duì)父類(lèi)方法的一種重寫(xiě),子類(lèi)只能拋出比父類(lèi)更少的異常,且訪問(wèn)權(quán)限不能比父類(lèi)的小。被覆蓋的方法不能是 private 的,否則只是在子類(lèi)中重新定義了一個(gè)方法。
Java中重載(Overload)表示同一個(gè)類(lèi)中可以有多個(gè)名稱(chēng)相同的方法,但這些方法的參數(shù)列表各不相同。
1、對(duì)象的初始化(1) 非靜態(tài)對(duì)象的初始化 在創(chuàng)建對(duì)象時(shí),對(duì)象所在類(lèi)的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化。
基本類(lèi)型:int型,初始化為0。 如果為對(duì)象:這些對(duì)象會(huì)按順序初始化。
※在所有類(lèi)成員初始化完成之后,才調(diào)用本類(lèi)的構(gòu)造方法創(chuàng)建對(duì)象。 構(gòu)造方法的作用就是初始化。
(2) 靜態(tài)對(duì)象的初始化 程序中主類(lèi)的靜態(tài)變量會(huì)在main方法執(zhí)行前初始化。 不僅第一次創(chuàng)建對(duì)象時(shí),類(lèi)中的所有靜態(tài)變量都初始化,并且第一次訪問(wèn)某類(lèi)(注意此時(shí) 未創(chuàng)建此類(lèi)對(duì)象)的靜態(tài)對(duì)象時(shí),所有的靜態(tài)變量也要按它們?cè)陬?lèi)中的順序初始化。
2、繼承時(shí),對(duì)象的初始化過(guò)程 (1) 主類(lèi)的超類(lèi)由高到低按順序初始化靜態(tài)成員,無(wú)論靜態(tài)成員是否為private。 (2) 主類(lèi)靜態(tài)成員的初始化。
(3) 主類(lèi)的超類(lèi)由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個(gè)超類(lèi)的默認(rèn)構(gòu)造 方法前,先進(jìn)行對(duì)此超類(lèi)進(jìn)行非靜態(tài)對(duì)象的初始化。
(4) 主類(lèi)非靜態(tài)成員的初始化。 (5) 調(diào)用主類(lèi)的構(gòu)造方法。
3、關(guān)于構(gòu)造方法 (1) 類(lèi)可以沒(méi)有構(gòu)造方法,但如果有多個(gè)構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu)造方法,否則在繼承此類(lèi)時(shí),需要在子類(lèi)中顯式調(diào)用父類(lèi)的某一個(gè)非默認(rèn)的構(gòu)造方法了。 (2) 在一個(gè)構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語(yǔ)句必須是 第一條語(yǔ)句。
4、有關(guān)public、private和protected (1) 無(wú)public修飾的類(lèi),可以被其他類(lèi)訪問(wèn)的條件是:a.兩個(gè)類(lèi)在同一文件中,b.兩個(gè)類(lèi) 在同一文件夾中,c.兩個(gè)類(lèi)在同一軟件包中。 (2) protected:繼承類(lèi)和同一軟件包的類(lèi)可訪問(wèn)。
(3) 如果構(gòu)造方法為private,那么在其他類(lèi)中不能創(chuàng)建該類(lèi)的對(duì)象。 5、抽象類(lèi) (1) 抽象類(lèi)不能創(chuàng)建對(duì)象。
(2) 如果一個(gè)類(lèi)中一個(gè)方法為抽象方法,則這個(gè)類(lèi)必須為abstract抽象類(lèi)。 (3) 繼承抽象類(lèi)的類(lèi)在類(lèi)中必須實(shí)現(xiàn)抽象類(lèi)中的抽象方法。
(4) 抽象類(lèi)中可以有抽象方法,也可有非抽象方法。抽象方法不能為private。
(5) 間接繼承抽象類(lèi)的類(lèi)可以不給出抽象方法的定義。 6、final關(guān)鍵字 (1) 一個(gè)對(duì)象是常量,不代表不能轉(zhuǎn)變對(duì)象的成員,仍可以其成員進(jìn)行操作。
(2) 常量在使用前必須賦值,但除了在聲明的同時(shí)初始化外,就只能在構(gòu)造方法中初始化 。 (3) final修飾的方法不能被重置(在子類(lèi)中不能出現(xiàn)同名方法)。
(4) 如果聲明一個(gè)類(lèi)為final,則所有的方法均為final,無(wú)論其是否被final修飾,但數(shù)據(jù) 成員可為final也可不是。 7、接口interface (用implements來(lái)實(shí)現(xiàn)接口) (1) 接口中的所有數(shù)據(jù)均為 static和final即靜態(tài)常量。
盡管可以不用這兩個(gè)關(guān)鍵字修飾 ,但必須給常量賦初值。 (2) 接口中的方法均為public,在實(shí)現(xiàn)接口類(lèi)中,實(shí)現(xiàn)方法必須可public關(guān)鍵字。
(3) 如果使用public來(lái)修飾接口,則接口必須與文件名相同。 8、多重繼承 (1) 一個(gè)類(lèi)繼承了一個(gè)類(lèi)和接口,那么必須將類(lèi)寫(xiě)在前面,接口寫(xiě)在后面,接口之間用逗 號(hào)分隔。
(2) 接口之間可多重繼承,注意使用關(guān)鍵字extends。 (3) 一個(gè)類(lèi)雖只實(shí)現(xiàn)了一個(gè)接口,但不僅要實(shí)現(xiàn)這個(gè)接口的所有方法,還要實(shí)現(xiàn)這個(gè)接口 繼承的接口的方法,接口中的所有方法均須在類(lèi)中實(shí)現(xiàn)。
9、接口的嵌入 (1) 接口嵌入類(lèi)中,可以使用private修飾。此時(shí),接口只能在所在的類(lèi)中實(shí)現(xiàn),其他類(lèi)不 能訪問(wèn)。
(2) 嵌入接口中的接口一定要為public。 10、類(lèi)的嵌入 (1) 類(lèi)可以嵌入另一個(gè)類(lèi)中,但不能嵌入接口中。
(2) 在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類(lèi)對(duì)象,需通過(guò)手段來(lái)取得。 手段有兩種: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一個(gè)類(lèi)繼承了另一個(gè)類(lèi)的內(nèi)部類(lèi),因?yàn)槌?lèi)是內(nèi)部類(lèi),而內(nèi)部類(lèi)的構(gòu)造方法不能自動(dòng) 被調(diào)用,這樣就需要在子類(lèi)的構(gòu)造方法中明確的調(diào)用超類(lèi)的構(gòu)造方法。
接上例: class C extends A.B { C() { new A().super(); // 這一句就實(shí)現(xiàn)了對(duì)內(nèi)部類(lèi)構(gòu)造方法的調(diào)用。 } } 構(gòu)造方法也可這樣寫(xiě): C(A a) { a.super(); } // 使用這個(gè)構(gòu)造方法創(chuàng)建對(duì)象,要寫(xiě)成C c = new C(a); a是A的對(duì)象。
11、異常類(lèi) JAVA中除了RunTimeException 類(lèi),其他異常均須捕獲或拋出。至于數(shù)據(jù)庫(kù),WEB,JSP,JS之類(lèi)的那是高級(jí)部分了。
建議你看本書(shū)《Think in java》。上邊的講解很容易懂。
學(xué)java:
先把基本語(yǔ)法搞懂,你學(xué)過(guò)C++,java的語(yǔ)法和C++很像。你只要著重把他們不同的地方學(xué)清楚就行。
然后搞懂類(lèi)。java純面向?qū)ο蟮?。所有的代碼都在類(lèi)中。所以你要把java中重要的類(lèi)學(xué)一遍。比如流類(lèi),集合類(lèi),數(shù)據(jù)庫(kù)操作類(lèi),網(wǎng)絡(luò)編程的類(lèi)等。當(dāng)然,在這之前你要把java面向?qū)ο蟮乃枷肱?,和C++有什么區(qū)別。這樣你學(xué)習(xí)類(lèi)的時(shí)候就容易多了。
最后多實(shí)踐點(diǎn),學(xué)了類(lèi)之后,就用你學(xué)的類(lèi)寫(xiě)點(diǎn)小程序,加深理解。
API說(shuō)白了就是別人寫(xiě)好的類(lèi)。像上邊說(shuō)的流類(lèi),集合類(lèi)等都是API。API都有相應(yīng)的文檔供我們學(xué)習(xí)。你學(xué)java基礎(chǔ),一般在下載JDK時(shí)會(huì)同時(shí)下載下相應(yīng)的文檔。沒(méi)有的話你可以到官方網(wǎng)站上去下載。
第2章 一切都是對(duì)象2.1 用句柄操縱對(duì)象2.2 必須創(chuàng)建所有對(duì)象2.2.1 保存在什么地方2.2.2 特殊情況:主類(lèi)型2.2.3 Java中的數(shù)組2.3 絕對(duì)不要清除對(duì)象2.3.1 作用域2.3.2 對(duì)象的作用域2.4 新建數(shù)據(jù)類(lèi)型:類(lèi)2.4.1 字段和方法2.5 方法、自變量和返回值2.5.1 自變量列表2.6 構(gòu)建Java程序2.6.1 名字的可見(jiàn)性2.6.2 使用其他組件2.6.3 static關(guān)鍵字2.7 我們的第一個(gè)Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語(yǔ)法2.8.3 嵌入HTML2.8.4 @see:引用其他類(lèi)2.8.5 類(lèi)文檔標(biāo)記2.8.6 變量文檔標(biāo)記2.8.7 方法文檔標(biāo)記2.8.8 文檔示例2.9 編碼樣式2.10 總結(jié)2.11 練習(xí) 第3章 控制程序流程3.1 使用Java運(yùn)算符3.1.1 優(yōu)先級(jí)3.1.2 賦值3.1.3 算術(shù)運(yùn)算符3.1.4 自動(dòng)遞增和遞減3.1.5 關(guān)系運(yùn)算符3.1.6 邏輯運(yùn)算符3.1.7 按位運(yùn)算符3.1.8 移位運(yùn)算符3.1.9 三元if-else運(yùn)算符3.1.10 逗號(hào)運(yùn)算符3.1.11 字串運(yùn)算符+3.1.12 運(yùn)算符常規(guī)操作規(guī)則3.1.13 造型運(yùn)算符3.1.14 Java沒(méi)有“sizeof”3.1.15 復(fù)習(xí)計(jì)算順序3.1.16 運(yùn)算符總結(jié)3.2 執(zhí)行控制3.2.1 真和假3.2.2 if-else3.2.3 反復(fù)3.2.4 do-while3.2.5 for3.2.6 中斷和繼續(xù)3.2.7 切換3.3 總結(jié)3.4 練習(xí) 第4章 初始化和清除4.1 由構(gòu)建器保證初始化4.2 方法過(guò)載4.2.1 區(qū)分過(guò)載方法4.2.2 主類(lèi)型的過(guò)載4.2.3 返回值過(guò)載4.2.4 默認(rèn)構(gòu)建器4.2.5 this關(guān)鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執(zhí)行清除4.4 成員初始化4.4.1 規(guī)定初始化4.4.2 構(gòu)建器初始化4.5 數(shù)組初始化4.5.1 多維數(shù)組4.6 總結(jié)4.7 練習(xí) 第5章 隱藏實(shí)施過(guò)程5.1 包:庫(kù)單元5.1.1 創(chuàng)建獨(dú)一無(wú)二的包名5.1.2 自定義工具庫(kù)5.1.3 利用導(dǎo)入改變行為5.1.4 包的停用5.2 Java訪問(wèn)指示符5.2.1 “友好的”5.2.2 public:接口訪問(wèn)5.2.3 private:不能接觸5.2.4 protected:“友好的一種”5.3 接口與實(shí)現(xiàn)5.4 類(lèi)訪問(wèn)5.5 總結(jié)5.6 練習(xí) 第6章 類(lèi)再生6.1 合成的語(yǔ)法6.2 繼承的語(yǔ)法6.2.1 初始化基礎(chǔ)類(lèi)6.3 合成與繼承的結(jié)合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開(kāi)發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關(guān)鍵字6.8.1 final數(shù)據(jù)6.8.2 final方法6.8.3 final類(lèi)6.8.4 final的注意事項(xiàng)6.9 初始化和類(lèi)裝載6.9.1 繼承初始化6.10 總結(jié)6.11 練習(xí) 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調(diào)用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴(kuò)展性7.3 覆蓋與過(guò)載7.4 抽象類(lèi)和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過(guò)繼承擴(kuò)展接口7.5.3 常數(shù)分組7.5.4 初始化接口中的字段7.6 內(nèi)部類(lèi)7.6.1 內(nèi)部類(lèi)和上溯造型7.6.2 方法和作用域中的內(nèi)部類(lèi)7.6.3 鏈接到外部類(lèi)7.6.4 static內(nèi)部類(lèi)7.6.5 引用外部類(lèi)對(duì)象7.6.6 從內(nèi)部類(lèi)繼承7.6.7 內(nèi)部類(lèi)可以覆蓋嗎?7.6.8 內(nèi)部類(lèi)標(biāo)識(shí)符7.6.9 為什么要用內(nèi)部類(lèi):控制框架7.7 構(gòu)建器和多形性7.7.1 構(gòu)建器的調(diào)用順序7.7.2 繼承和finalize()7.7.3 構(gòu)建器內(nèi)部的多形性方法的行為7.8 通過(guò)繼承進(jìn)行設(shè)計(jì)7.8.1 純繼承與擴(kuò)展7.8.2 下溯造型與運(yùn)行期類(lèi)型標(biāo)識(shí)7.9 總結(jié)7.10 練習(xí) 第8章 對(duì)象的容納8.1 數(shù)組8.1.1 數(shù)組和第一類(lèi)對(duì)象8.1.2 數(shù)組的返回8.2 集合8.2.1 缺點(diǎn):類(lèi)型未知8.3 枚舉器(反復(fù)器)8.4 集合的類(lèi)型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再論枚舉器8.5 排序8.6 通用集合庫(kù)8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 決定實(shí)施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 實(shí)用工具8.8 總結(jié)8.9 練習(xí) 第9章 違例差錯(cuò)控制9.1 基本違例9.1.1 違例自變量9.2 違例的捕獲9.2.1 try塊9.2.2 違例控制器9.2.3 違例規(guī)范9.2.4 捕獲所有違例9.2.5 重新“擲”出違例9.3 標(biāo)準(zhǔn)Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng)建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點(diǎn):丟失的違例9.7 構(gòu)建器9.8 違例匹配9.8.1 違例準(zhǔn)則9.9 總結(jié)9.10 練習(xí) 第10章 Java IO系統(tǒng)10.1 輸入和輸出10.1.1 InputStream的類(lèi)型10.1.2 OutputStream的類(lèi)型10.2 增添屬性和有用的接口10.2.1 通過(guò)FilterInputStream從InputStream里讀入數(shù)據(jù)10.2.2 通過(guò)FilterOutputStream向OutputStream里寫(xiě)入數(shù)據(jù)10.3 本身的缺陷:RandomAccessFile10.4 File類(lèi)10.4.1 目錄列表器10.4.2 檢查與創(chuàng)建目錄10.5 IO流的典型應(yīng)用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)10.5.5 管道數(shù)據(jù)流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 數(shù)據(jù)的發(fā)起與接收10.7.2 修改數(shù)據(jù)流的行為10.7.3 未改變的類(lèi)10.7.4 一個(gè)例子10.7.5 重定向標(biāo)準(zhǔn)IO10.8 壓縮10.8.1 用GZIP進(jìn)行簡(jiǎn)單壓縮10.8.2 用Zip進(jìn)行多文件保存10.8.3 Java歸檔(jar)實(shí)用程序10.9 對(duì)象串聯(lián)10.9.1 尋找類(lèi)10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結(jié)10.11 練習(xí) 第11章 運(yùn)行期類(lèi)型鑒定11.1 對(duì)RTTI的需要11.1.1 Class對(duì)象11.1.2 造型前的檢查11.2 RTTI語(yǔ)法11.3 反射:運(yùn)行期類(lèi)信息11.3.1 一個(gè)類(lèi)方法提取器11.4 總結(jié)11.5 練習(xí) 第12章 傳遞和返回對(duì)象12.1 傳遞句柄12.1.1 別名問(wèn)題12.2 制作本地副本12.2.1 按值傳遞12.2.2 克隆對(duì)象12.2.3 使類(lèi)具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成對(duì)象12.2.7 用Vector進(jìn)行深層復(fù)制12.2.8 通過(guò)序。
java語(yǔ)法基礎(chǔ)1,關(guān)鍵字:其實(shí)就是某種語(yǔ)言賦予了特殊含義的單詞。
保留字:其實(shí)就是還沒(méi)有賦予特殊含義,但是準(zhǔn)備日后要使用過(guò)的單詞。2,標(biāo)示符:其實(shí)就是在程序中自定義的名詞。
比如類(lèi)名,變量名,函數(shù)名。包含 0-9、a-z、$、_ ; 注意: 1),數(shù)字不可以開(kāi)頭。
2),不可以使用關(guān)鍵字。3,常量:是在程序中的不會(huì)變化的數(shù)據(jù)。
4,變量:其實(shí)就是內(nèi)存中的一個(gè)存儲(chǔ)空間,用于存儲(chǔ)常量數(shù)據(jù)。 作用:方便于運(yùn)算。
因?yàn)橛行?shù)據(jù)不確定。所以確定該數(shù)據(jù)的名詞和存儲(chǔ)空間。
特點(diǎn):變量空間可以重復(fù)使用。什么時(shí)候定義變量?只要是數(shù)據(jù)不確定的時(shí)候,就定義變量。
變量空間的開(kāi)辟需要什么要素呢? 1,這個(gè)空間要存儲(chǔ)什么數(shù)據(jù)?數(shù)據(jù)類(lèi)型。 2,這個(gè)空間叫什么名字???變量名稱(chēng)。
3,這個(gè)空間的第一次的數(shù)據(jù)是什么? 變量的初始化值。變量的作用域和生存期:變量的作用域: 作用域從變量定義的位置開(kāi)始,到該變量所在的那對(duì)大括號(hào)結(jié)束;生命周期: 變量從定義的位置開(kāi)始就在內(nèi)存中活了; 變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;數(shù)據(jù)類(lèi)型: 1):基本數(shù)據(jù)類(lèi)型:byte、short、int、long、float、double、char、boolean 2):引用數(shù)據(jù)類(lèi)型: 數(shù)組、類(lèi)、接口。
級(jí)別從低到高為:byte,char,short(這三個(gè)平級(jí))-->int-->float-->long-->double 自動(dòng)類(lèi)型轉(zhuǎn)換:從低級(jí)別到高級(jí)別,系統(tǒng)自動(dòng)轉(zhuǎn)的;強(qiáng)制類(lèi)型轉(zhuǎn)換:什么情況下使用?把一個(gè)高級(jí)別的數(shù)賦給一個(gè)別該數(shù)的級(jí)別低的變量;運(yùn)算符號(hào): 1)、算術(shù)運(yùn)算符。 + - * / % %:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開(kāi)關(guān)運(yùn)算。
+:連接符。 ++,-- 2)、賦值運(yùn)算符。
= += -= *= /= %= 3)、比較運(yùn)算符。 特點(diǎn):該運(yùn)算符的特點(diǎn)是:運(yùn)算完的結(jié)果,要么是true,要么是false。
4)、邏輯運(yùn)算符。 & | ^ ! && || 邏輯運(yùn)算符除了! 外都是用于連接兩個(gè)boolean類(lèi)型表達(dá)式。
&: 只有兩邊都為true結(jié)果是true。否則就是false。
|:只要兩邊都為false結(jié)果是false,否則就是true ^:異或:和或有點(diǎn)不一樣。 兩邊結(jié)果一樣,就為false。
兩邊結(jié)果不一樣,就為true. & 和 &&區(qū)別: & :無(wú)論左邊結(jié)果是什么,右邊都參與運(yùn)算。 &&:短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。
| 和|| 區(qū)別:|:兩邊都運(yùn)算。 ||:短路或,如果左邊為true,那么右邊不參與運(yùn)算。
5)、位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。 & | ^ <> >>>(無(wú)符號(hào)右移) 練習(xí):對(duì)兩個(gè)變量的數(shù)據(jù)進(jìn)行互換。
不需要第三方變量。 int a = 3,b = 5;-->b = 3,a = 5; a = a + b; a =8; b = a - b; b =3;c a = a - b; a =5; a = a ^ b;// b = a ^ b;//b= a ^ b ^ b = a a = a ^ b;//a= a ^ b ^ a = b; 練習(xí):高效的算出 2*8 ------------------> 位移運(yùn)算的考驗(yàn),java基礎(chǔ)面試中它的曝光率不低哦5,語(yǔ)句。
If switch do while while for 這些語(yǔ)句什么時(shí)候用? 1)、當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if,也可以使用switch。 但是建議使用switch,效率相對(duì)較高。
switch(變量){ case 值:要執(zhí)行的語(yǔ)句;break; … default:要執(zhí)行的語(yǔ)句; } 工作原理:用小括號(hào)中的變量的值依次和case后面的值進(jìn)行對(duì)比,和哪個(gè)case后面的值相同了 就執(zhí)行哪個(gè)case后面的語(yǔ)句,如果沒(méi)有相同的則執(zhí)行default后面的語(yǔ)句;細(xì)節(jié):1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止; 2):switch 后面的小括號(hào)中的變量應(yīng)該是byte,char,short,int四種類(lèi)型中的一種; 3):default可以寫(xiě)在switch結(jié)構(gòu)中的任意位置;如果將default語(yǔ)句放在了第一行,則不管expression與case中的value是否匹配,程序會(huì)從default開(kāi)始執(zhí)行直到第一個(gè)break出現(xiàn)。 2)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類(lèi)型時(shí),需要使用if。
3)、當(dāng)某些語(yǔ)句需要執(zhí)行很多次時(shí),就用循環(huán)結(jié)構(gòu)。 while和for可以進(jìn)行互換。
區(qū)別在于:如果需要定義變量控制循環(huán)次數(shù)。建議使用for。
因?yàn)閒or循環(huán)完畢,變量在內(nèi)存中釋放。break:作用于switch ,和循環(huán)語(yǔ)句,用于跳出,或者稱(chēng)為結(jié)束。
break語(yǔ)句單獨(dú)存在時(shí),下面不要定義其他語(yǔ)句,因?yàn)閳?zhí)行不到,編譯會(huì)失敗。當(dāng)循環(huán)嵌套時(shí),break只跳出當(dāng)前所在循環(huán)。
要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱(chēng)之為標(biāo)號(hào)。代碼片段:z: //for循環(huán)標(biāo)號(hào) for(int x=0;x<3;x++){ for(int y=0;y<2;y++){ //不帶標(biāo)號(hào)的就是結(jié)束整個(gè)循環(huán)體的作用,在那個(gè)循環(huán)內(nèi)部就結(jié)束哪個(gè)循環(huán) if(x==1)break; //帶標(biāo)號(hào)跳過(guò)break后面的語(yǔ)句,回到標(biāo)號(hào)位置的循環(huán),繼續(xù)該循環(huán)下次的條件判斷, //已決定是否執(zhí)行該循環(huán)體 if(x==2&&y==1)break z; } } continue:只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。
作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語(yǔ)句單獨(dú)存在時(shí),下面不可以定義語(yǔ)句,執(zhí)行不到。
6,函 數(shù):為了提高代碼的復(fù)用性,可以將其定義成一個(gè)單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。
java中的函數(shù)的定義格式: 修飾符 返回值類(lèi)型 函數(shù)名(參數(shù)類(lèi)型 形式參數(shù)1,參數(shù)類(lèi)型 形式參數(shù)1,…){ 執(zhí)行語(yǔ)句; return 返回值; } 當(dāng)函數(shù)沒(méi)有具體的返回值時(shí),返回的返回值類(lèi)型用void關(guān)鍵字表示。如果函數(shù)的返回值類(lèi)型是void時(shí),return語(yǔ)句可以省略不寫(xiě)的,系統(tǒng)會(huì)幫你自動(dòng)加上。
return的作用:結(jié)束函數(shù)。結(jié)束功能。
如何。
java基礎(chǔ)知識(shí)如下:
1.繼承、類(lèi)extends,只能有一個(gè)父類(lèi),super調(diào)用父類(lèi),
2.方法重構(gòu)(名字相同參數(shù)不同),
3.多態(tài)(子類(lèi)的多樣), final不能繼承-可以被匿名類(lèi)引用,
上轉(zhuǎn)型。
4.接口、interface 名,沒(méi)有方法體,只能implement實(shí)現(xiàn)接口,可以多實(shí)現(xiàn),為實(shí)現(xiàn)類(lèi)提供實(shí)現(xiàn)方法的模板規(guī)范,可以有成員變量,接口回調(diào)。
5.抽象類(lèi)、abstract 類(lèi),含有抽象方法的類(lèi),可以含有非抽象方法,只能繼承不能new,和接口的功能類(lèi)似。
6.泛型類(lèi)、class 名稱(chēng)<;泛型列表>;(不能是基本類(lèi)型),聲明泛型 。
7.內(nèi)部類(lèi)、在類(lèi)內(nèi)部定義的類(lèi),只能被這個(gè)類(lèi)使用。
8.匿名類(lèi)、將一個(gè)類(lèi)的實(shí)現(xiàn)作為一個(gè)參數(shù)。
9.異常類(lèi)、自定義一個(gè)類(lèi) MyException繼承Exception類(lèi),當(dāng)執(zhí)行 StringBuffer類(lèi),可以操作字符串的內(nèi)容(截取,代替,獲?。?;StringTokenizer類(lèi),可以解析字符串,有兩個(gè)構(gòu)造方法StringTokenizer(字符串,分隔符),分隔符的任意排列組合,返回結(jié)果集,hasMoreTokenizer是否為false來(lái)判斷,nextTokens()來(lái)獲取下一個(gè)對(duì)象。
10.正則表達(dá)式、字符串對(duì)象調(diào)用matches(正則表達(dá)式),判斷是否和正則表達(dá)式匹配,返回boolean類(lèi)型;字符串對(duì)象調(diào)用replaceAll(正則表達(dá)式,替換的字符串)產(chǎn)生一個(gè)將匹配正則表達(dá)式的字串替換后的新的字符串對(duì)象;字符串調(diào)用split(正則表達(dá)式),返回一個(gè)字符串?dāng)?shù)組,以正則表達(dá)式作為分隔符。
11.字符串解析、用Scanner(字符串)類(lèi)來(lái)分隔字符串,Scanner對(duì)象調(diào)用useDelimiter(正則表達(dá)式)來(lái)設(shè)置分隔符,返回一個(gè)結(jié)果集,可以精細(xì)化的獲取數(shù)字型的結(jié)果,和非數(shù)字型的結(jié)果,hasNext()判斷,next/nextInt/nextDouble獲取下一個(gè)。
12.模式匹配、建立模式對(duì)象Pattern.compile(正則表達(dá)式),建立匹配對(duì)象 Pattern對(duì)象.matcher(目標(biāo)字符串),返回結(jié)果集,Matcher對(duì)象調(diào)用方法find()尋找返回Boolean(類(lèi)似next()+hasNext()),group()返回匹配的字符串,replaceAll(替換的字符串)返回一個(gè)替換了所以匹配的字串的新的字符串,模式可以用|來(lái)連接,即正則表達(dá)式1|正則表達(dá)式2。
可以直接學(xué),先學(xué)習(xí)變量,語(yǔ)法,面向?qū)ο?,看完?shū)就多練習(xí),有個(gè)半年就可以繼續(xù)學(xué)習(xí)后面的了,基礎(chǔ)部分多下點(diǎn)功夫,以后省很多功夫,當(dāng)然我現(xiàn)在學(xué)習(xí)java只需要3天就可以完成這部分,因?yàn)槲乙呀?jīng)有c++的基礎(chǔ)了
然后是可以考慮學(xué)習(xí)下JSP,不學(xué)也可以,不學(xué)的話就應(yīng)該學(xué)習(xí)java的程序設(shè)計(jì)了,就是桌面程序的!SWT和AWT是什么,什么是SWING,這些都要知道~
然后是學(xué)下TCP/IP和UDP,做個(gè)小程序,然后就隨便了,要有項(xiàng)目才能提高,光看書(shū)不行的
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:4.102秒