




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java入門概述軟件C/S結(jié)構(gòu):Client客戶端/Server服務(wù)器軟件B/S結(jié)構(gòu):Browser瀏覽器/Server服務(wù)器Java的三個(gè)版本:JavaSE:java標(biāo)準(zhǔn)版(Java基礎(chǔ),編寫桌面程序)JavaEE:java企業(yè)版(開發(fā)企業(yè)級(jí)應(yīng)用,比如說(shuō)WEB應(yīng)用)JavaME:java微小版(手機(jī)應(yīng)用開發(fā),已淘汰)JDK:Java開發(fā)工具包,只負(fù)責(zé)編譯JDK版本:1.0 失敗1.1 失敗1.2 正式版(從此以后 J2SE J2EE J2ME)1.31.41.5 里程碑(改動(dòng)非常大 從此以后JavaSE JavaEE JavaME)1.61.71.8 (變化很大)JRE:Java運(yùn)行環(huán)境,只
2、負(fù)責(zé)運(yùn)行JVM:Java虛擬機(jī),是JRE的一部分,負(fù)責(zé)把字節(jié)碼解釋為最終機(jī)器碼Java運(yùn)行原理javac編譯解釋為linux機(jī)器碼解釋為mac機(jī)器碼Xxxx.java源文件Xxxx.class類文件(字節(jié)碼文件)mac的虛擬機(jī)Windows的虛擬機(jī)linux的虛擬機(jī)Linuxmacwindows解釋為Window機(jī)器碼Java是半編譯半解釋的語(yǔ)言Java的特點(diǎn):1. 一次編寫多次運(yùn)行,可以跨平臺(tái)2. 面向?qū)ο?,不是面向過(guò)程,最基本的程序單位是一個(gè)類,而不是一個(gè)函數(shù)3. 支持多線程4. 網(wǎng)絡(luò)編程功能強(qiáng)大,適合編寫大型網(wǎng)絡(luò)分布式軟件5. 相當(dāng)于C+比較簡(jiǎn)單,內(nèi)存是自動(dòng)回收(GC垃圾回收機(jī)制)6.
3、安全性好7. 是開放源代碼(開源項(xiàng)目)8. 不適合圖形界面編程三大核心機(jī)制:虛擬機(jī)機(jī)制GC垃圾回收機(jī)制代碼安全性機(jī)制環(huán)境變量配置:path:外部命令搜索路徑,例如javac javadocclasspath:類路徑,搜索類文件臨時(shí)配置:set classpath=類所在的目錄面向?qū)ο竺嫦驅(qū)ο蟮暮诵乃枷耄喝f(wàn)物皆為對(duì)象類和對(duì)象一起組成了面向?qū)ο缶幊填恈lass:對(duì)象的藍(lán)圖,生成對(duì)象的模板,是抽象的概念上的設(shè)計(jì)實(shí)例化抽象對(duì)象類對(duì)象object:對(duì)象是實(shí)際存在的該類事物的具體個(gè)體,因而也成為實(shí)例(instance)類的成員:屬性:存儲(chǔ)對(duì)象的數(shù)據(jù)方法:實(shí)現(xiàn)對(duì)象的功能構(gòu)造器:創(chuàng)建對(duì)象,初始化屬性值方法的聲
4、明語(yǔ)法(不帶返回值方法是void方法)public 返回值 方法名稱(類型 參數(shù)1,類型 參數(shù)2,) 方法體執(zhí)行的語(yǔ)法方法的聲明語(yǔ)法(帶返回值方法是非void方法,例如int double String)public 返回值 方法名稱(類型 參數(shù)1,類型 參數(shù)2,) 方法體執(zhí)行的語(yǔ)法return 返回值;形式參數(shù)(形參):就是聲明方法時(shí)定義的參數(shù)實(shí)際參數(shù)(實(shí)參):就是調(diào)用方法時(shí)傳入的參數(shù)形參和實(shí)參之間是賦值關(guān)系,實(shí)參的值賦給形參,形參和實(shí)參的個(gè)數(shù),類型,順序必須一致return語(yǔ)句:本身代表退出當(dāng)前方法,回到調(diào)用者程序,繼續(xù)向下執(zhí)行兩種情況:void 方法:直接寫return非void方法:寫
5、return 返回值類圖:是屬于軟件工程中的UML圖類名+ 屬性名稱:類型+ 方法名稱(參數(shù):類型,):返回類型局部變量和全局變量問(wèn)題局部變量:聲明在方法內(nèi)部的變量全局變量:聲明在方法外部,類的內(nèi)部的變量(說(shuō)白了,就是屬性?。┚植孔兞咳肿兞柯暶魑恢梅椒▋?nèi)部方法外部,類內(nèi)部默認(rèn)值沒(méi)有默認(rèn)值有默認(rèn)初始值權(quán)限修飾符沒(méi)有有作用域僅限于聲明的語(yǔ)句塊整個(gè)類調(diào)用直接使用通過(guò)對(duì)象訪問(wèn)生命周期進(jìn)入語(yǔ)句塊創(chuàng)建,退出語(yǔ)句塊就銷毀隨著對(duì)象的創(chuàng)建而創(chuàng)建,隨著對(duì)象的銷毀而銷毀this永遠(yuǎn)代表當(dāng)前的對(duì)象,要看用哪個(gè)對(duì)象調(diào)用的方法,就代表那個(gè)對(duì)象,this最常見(jiàn)的功能就是區(qū)分同名的全局變量和局部變量方法的遞歸調(diào)用:就是在方
6、法中調(diào)用自己本身這個(gè)方法面向?qū)ο蟮娜筇卣鳎悍庋b 繼承 多態(tài)封裝:目的就是把屬性封裝起來(lái),不允許類之外的代碼直接訪問(wèn),防止賦錯(cuò)誤的值,以及不合法的值,具體實(shí)現(xiàn)就是把屬性的訪問(wèn)權(quán)限修飾符設(shè)置為private私有(只允許在類內(nèi)部訪問(wèn)),然后提供public共有(在任何地方都可以訪問(wèn))的一對(duì)方法setXxx和getXxx對(duì)屬性進(jìn)行存取setXxx方法給屬性賦值 Xxx就是屬性的名字的駝峰寫法getXxx方法是返回屬性,Xxx同上,boolean值的getXxx要寫出isXxx構(gòu)造器(構(gòu)造方法):創(chuàng)建對(duì)象,初始化屬性值語(yǔ)法:權(quán)限修飾符 類名(參數(shù)列表) 語(yǔ)句塊默認(rèn)構(gòu)造器:如果類中沒(méi)有顯式的聲明任何構(gòu)造
7、方法,那么java編譯器會(huì)自動(dòng)在類中添加一個(gè)無(wú)參構(gòu)造方法(隱式構(gòu)造器)構(gòu)造方法普通方法聲明語(yǔ)法沒(méi)有定義返回類型有定義返回類型調(diào)用new語(yǔ)句調(diào)用對(duì)象.方法()默認(rèn)有默認(rèn)沒(méi)有功能創(chuàng)建對(duì)象同時(shí)初始化屬性值自定義功能一個(gè)java源文件的組成三部分包聲明 package語(yǔ)句導(dǎo)入聲明 import語(yǔ)句類聲明 public class語(yǔ)句共有的類必須寫在同名文件中,一個(gè)源文件可以寫多個(gè)類,但只可能有一個(gè)是共有,一般不推薦一個(gè)源文件寫多個(gè)類包package的作用:1. 區(qū)分同名類2. 可以把訪問(wèn)權(quán)限擴(kuò)大到4種3. 把類進(jìn)行功能劃分如果類直接寫在src源代碼文件夾,這個(gè)類可以認(rèn)為是放到默認(rèn)包中package語(yǔ)句
8、必須是源代碼的第一行有效代碼src下的第一層包叫做頂層包,里面的包叫做子包,子包可以再包含子包,包之間用點(diǎn)分隔,包名一律小寫如果用到不同包的類,必須寫導(dǎo)入語(yǔ)句或者用類全名導(dǎo)入語(yǔ)句僅導(dǎo)入當(dāng)前包中所有類,而不包括子包不是默認(rèn)包的類無(wú)法調(diào)用默認(rèn)中的類,所以我們不推薦把類寫到默認(rèn)包包的國(guó)際規(guī)范:工程的頂層包必須是三層 網(wǎng)址后綴.公司名稱.項(xiàng)目名所有的系統(tǒng)包(Java自帶的包)只有java.lang包會(huì)自動(dòng)導(dǎo)入,其他的都必須手動(dòng)導(dǎo)入java.lang包中全都是最常用的類標(biāo)識(shí)符、關(guān)鍵字和數(shù)據(jù)類型三種注釋:當(dāng)行注釋 /多行注釋 /* */ 此注釋不能嵌套文檔注釋 /* */ 用于生成文檔,只能注釋類,屬性,
9、方法API:application program interface應(yīng)用程序接口標(biāo)識(shí)符:自己命名的類名,方法名,變量名,包名,接口名,枚舉名關(guān)鍵字:就是java內(nèi)置的標(biāo)識(shí)符,不允許做其他用途的叫做關(guān)鍵字,有兩個(gè)特殊關(guān)鍵字goto const,java沒(méi)有用上,但是也不準(zhǔn)做其他用途,叫做保留字,從1.5以后統(tǒng)一都叫做關(guān)鍵字基本類型引用類型存在形式以值的形式存在是以對(duì)象存在數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單的單一數(shù)據(jù)存儲(chǔ)復(fù)雜數(shù)據(jù)結(jié)構(gòu)屬性賦值的順序:1. 屬性默認(rèn)值2. 聲明屬性同時(shí)賦值3. 構(gòu)造器賦值4. set方法值傳遞:基本類型:傳遞的是值本身,例如10 50 引用類型:傳遞的是對(duì)象實(shí)例的引用地址運(yùn)算符,表達(dá)式,
10、流程控制短路運(yùn)算&&短路與:如果第一個(gè)表達(dá)式為false,就不會(huì)再執(zhí)行第二個(gè)表達(dá)式| 短路或:如果第一個(gè)表達(dá)式為true,就不會(huì)再執(zhí)行第二個(gè)表達(dá)式& 邏輯與| 邏輯或 異或 兩個(gè)表達(dá)式都為true或都為false,為false,一個(gè)true,一個(gè)false,為true基本類型判斷=是判斷值是否相等引用類型判斷=是判斷引用地址是否相等位運(yùn)算:就是把數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制之后再進(jìn)行 與 或 左移 右移 無(wú)符號(hào)右移等運(yùn)算數(shù)組數(shù)據(jù)類型:1. 是一個(gè)引用類型2. 存儲(chǔ)一組數(shù)據(jù)類型相同的數(shù)據(jù)3. 數(shù)組存儲(chǔ)的數(shù)據(jù)稱為數(shù)組的元素,數(shù)據(jù)的元素本身也可以是引用類型4. 既可以放到類型一側(cè),也可以
11、放到變量一側(cè),規(guī)范是放到類型一側(cè)5. 數(shù)組沒(méi)有構(gòu)造方法6. 數(shù)組元素的下標(biāo)從0開始7. 數(shù)組的元素和屬性類似,也是有默認(rèn)值8. 數(shù)組的長(zhǎng)度是通過(guò)公有屬性length返回?cái)?shù)組聲明的三種寫法:1. int a = new int數(shù)組長(zhǎng)度;2. int a = 值1,值2,值3, 此語(yǔ)句只能在聲明數(shù)組的同時(shí)使用3. int a = new int 值1,值2,值3,; forEach循環(huán):專門用來(lái)遍歷數(shù)組或者集合for (元素類型 變量 :數(shù)組) 循環(huán)的語(yǔ)句冒泡排序(下沉法):每次冒泡都會(huì)把一個(gè)最大的數(shù)字放到最下面冒泡排序(上浮法):每次冒泡都會(huì)把一個(gè)最小的數(shù)字放到最上面選擇排序:每次冒泡會(huì)找到一個(gè)
12、最小元素的下標(biāo),然后把這個(gè)元素和最上面的元素交換配置main方法的運(yùn)行時(shí)參數(shù)新建類直接先運(yùn)行一次!RunRun ConfigurationsArguments選項(xiàng)卡String類型的數(shù)字轉(zhuǎn)換為int型,Integer.parseInt(字符串?dāng)?shù)字)數(shù)組線性查找法:遍歷數(shù)組的每一個(gè)元素進(jìn)行比較,直到找到第一個(gè)為止折半(二分)查找法:每次查找都會(huì)把查找范圍縮小一一半,前提是,數(shù)組必須是排過(guò)序的多維數(shù)組:數(shù)組的元素本身又是一個(gè)數(shù)組,這個(gè)數(shù)組就是多維數(shù)組,Java的多維數(shù)組并不需要是矩陣的,可以是不規(guī)則的。數(shù)組是定長(zhǎng)的,長(zhǎng)度是固定的不可改變的繼承繼承:1. 誰(shuí)繼承誰(shuí)?子類(衍生類,派生類)繼承父類(基
13、類,超類)2. 繼承了什么?繼承了父類的屬性,方法(構(gòu)造器不能繼承?。?private的屬性也能被繼承,但是由于權(quán)限的限制,不能在子類中直接使用3. 怎么繼承? 類聲明 extends 父類名4. 繼承線5. Java中只能做單繼承:一個(gè)子類只能繼承一個(gè)父類,一個(gè)父類可以有多個(gè)子類6. 如果類沒(méi)有繼承其他類,默認(rèn)就是繼承Object類,Object類是所有類的根類,也就是說(shuō)所有的對(duì)象都可以使用Object的方法(繼承的嘛。)四種訪問(wèn)權(quán)限修飾符:修飾類(public default),內(nèi)部類,屬性,方法,構(gòu)造器修飾符類圖中文描述private-私有只能在本類中使用default默認(rèn)只能在同一包中
14、使用(不推薦)protected#受保護(hù)只能在同一包中使用,不同包的子類也可以使用public+共有任何地方都可以使用Override覆蓋(重寫)方法:重新改造從父類中繼承的方法覆蓋方法的規(guī)則:1. 方法名稱必須相同,返回類型相同,參數(shù)列表相同(個(gè)數(shù),順序,類型都相同)2. 子類的權(quán)限必須大于等于父類的權(quán)限3. 方法覆蓋只能存在于子類和父類之間,只能是子類覆蓋父類方法4. 子類方法不能比父類方法拋出更多異常Overload重載方法:同一個(gè)方法,具有不同的功能重載方法的規(guī)則:1. 方法名稱必須相同2. 參數(shù)列表必須不同可變長(zhǎng)參數(shù):可變長(zhǎng)參數(shù)內(nèi)部類型就是一個(gè)一維數(shù)組,如果方法有多個(gè)參數(shù),可變長(zhǎng)參數(shù)
15、必須放到最后,可變長(zhǎng)參數(shù)就是一個(gè)特殊的重載覆蓋(重寫)重載方法名稱必須相同必須相同訪問(wèn)權(quán)限子類大于等于父類沒(méi)有要求返回值必須相同沒(méi)有要求參數(shù)列表必須相同必須不同覆蓋次數(shù)一次多次位置只能是子類覆蓋父類既可以重載本類的,也可以重載父類的拋出異常子類不能比父類拋出更多異常沒(méi)有要求作用改造父類的功能適合子類一個(gè)方法傳入不同的參數(shù)可以實(shí)現(xiàn)不同的功能this和 superthis訪問(wèn)的是當(dāng)前對(duì)象三種用法:1. this代表當(dāng)前對(duì)象2. this.Xxx 調(diào)用當(dāng)前對(duì)象的屬性和方法3. this() 調(diào)用本類的其他構(gòu)造器super訪問(wèn)的是父類的成員兩種用法:1. super.Xxx 調(diào)用父類的屬性和方法2.
16、super() 調(diào)用父類構(gòu)造器關(guān)于構(gòu)造方法的幾點(diǎn)說(shuō)明1. 如果類中沒(méi)有顯式聲明構(gòu)造器,會(huì)有一個(gè)默認(rèn)構(gòu)造器2. 構(gòu)造器調(diào)用語(yǔ)句必須是構(gòu)造方法的第一句3. 如果構(gòu)造器中沒(méi)有任何調(diào)用構(gòu)造器的語(yǔ)句,那么構(gòu)造器的第一行默認(rèn)就會(huì)調(diào)用父類無(wú)參構(gòu)造器 super()多態(tài):具體表現(xiàn)是一個(gè)子類的對(duì)象實(shí)例賦給一個(gè)父類類型的變量,這個(gè)對(duì)象就是多態(tài)對(duì)象多態(tài)性:1. 多態(tài)對(duì)象只能訪問(wèn)父類成員2. 如果子類覆蓋(override)了父類的方法,那么多態(tài)對(duì)象調(diào)用的是子類的方法多態(tài)的作用:讓傳參更加靈活,減少重載引用類型的類型轉(zhuǎn)換(轉(zhuǎn)換的都是編譯類型,運(yùn)行時(shí)類型根本轉(zhuǎn)換不了,new的是什么就是什么)自動(dòng)轉(zhuǎn)換:子類類型到父類類型
17、強(qiáng)制轉(zhuǎn)換:父類類型到子類類型無(wú)繼承關(guān)系的類型轉(zhuǎn)換是非法的注意:強(qiáng)制轉(zhuǎn)換能編譯通過(guò),未必能運(yùn)行成功,如果被轉(zhuǎn)換的運(yùn)行時(shí)類型是本類型或子類型的實(shí)例,轉(zhuǎn)換就會(huì)成功,如果被轉(zhuǎn)換的運(yùn)行時(shí)類型是父類型,轉(zhuǎn)換一定失敗instanceof運(yùn)算符:判斷一個(gè)對(duì)象引用變量是不是某一個(gè)類型的或者是這個(gè)類型的子類型的對(duì)象變量 instanceof 類型名稱判斷的是運(yùn)行時(shí)類型!toString():是Object類的方法,默認(rèn)返回的類的完整類型名稱哈希碼兩種情況會(huì)自動(dòng)隱式調(diào)用:1. print直接輸出對(duì)象2. 對(duì)象拼接字符串一般我們都覆蓋toString方法,返回所有屬性值的拼接字符串= 比較基本類型的值是否相等,比較引
18、用地址是否相等equals本身并沒(méi)有實(shí)現(xiàn)內(nèi)容比較的功能,默認(rèn)是用=比較,系統(tǒng)類中只有四個(gè)類實(shí)現(xiàn)了內(nèi)容比較,String Date File 所有的包裝類,其他的類都需要自己覆蓋equals方法實(shí)現(xiàn)內(nèi)容比較hashCode()原則:如果兩個(gè)對(duì)象equals為true,那么兩個(gè)對(duì)象的哈希碼必須相同,如果為false,哈希碼必須不同,這個(gè)規(guī)則只有用Set集合的時(shí)候才有意義運(yùn)行時(shí)實(shí)例Class對(duì)象:Class對(duì)象和類型是一對(duì)一的關(guān)系,一個(gè)類型只會(huì)產(chǎn)生一個(gè)Class對(duì)象,甚至是基本類型,都有Class對(duì)象,是在第一次使用這個(gè)類型之前被創(chuàng)建,這個(gè)對(duì)象包含了類的信息(屬性信息,方法信息,構(gòu)造器)獲得運(yùn)行時(shí)實(shí)
19、例的三種方式:1. 對(duì)象.getClass()2. 類型名.class3. Class.forName(完整類名)包裝類:8個(gè)包裝類對(duì)應(yīng)8個(gè)基本類型裝箱:基本類型轉(zhuǎn)換為引用類型拆箱:引用類型轉(zhuǎn)換為基本類型JDK1.5之后自動(dòng)裝箱拆箱static靜態(tài)修飾符:修飾屬性,稱為靜態(tài)屬性,方法,稱為靜態(tài)方法,也成為類屬性,類方法static靜態(tài)成員和對(duì)象實(shí)例無(wú)關(guān),屬于類本身,通過(guò) 類名.Xxx訪問(wèn)非靜態(tài)方法屬于對(duì)象實(shí)例的,需要通過(guò)對(duì)象.Xxx訪問(wèn)靜態(tài)方法中不能直接調(diào)用非靜態(tài)成員(屬性,方法),也不能使用this,super靜態(tài)初始化塊:static 在類的第一次使用之前執(zhí)行靜態(tài)導(dǎo)入某個(gè)類的靜態(tài)成員:im
20、port static 單例模式:一個(gè)類永遠(yuǎn)不會(huì)創(chuàng)建兩次對(duì)象高級(jí)類設(shè)計(jì)final終態(tài) final類:不能有子類,不能被繼承(防止父類功能被子類修改)final方法:不能被覆蓋(道理同上)final 變量:稱為常量,只能賦一次值,值不能被修改,全局變量如果是final的必須聲明同時(shí)賦初始值,常量全大寫,多個(gè)單詞用下劃線分隔 例如STU_IDabstract抽象:修飾類和方法,稱稱為抽象類和抽象方法抽象方法:不提供具體實(shí)現(xiàn),沒(méi)有方法體抽象類:1. 有抽象方法的一定是抽象類2. 抽象類不一定有抽象方法3. 抽象類不能被實(shí)例化(不能創(chuàng)建對(duì)象),但是可以有構(gòu)造器(子類調(diào)用嘛。)4. 抽象類可以繼承抽象類
21、或非抽象類,單繼承5. 抽象類和抽象方法不能加final以下修飾符不能和abstract一起使用:private static final接口的語(yǔ)法:public interface 接口名接口中的成員:屬性(必須公有靜態(tài)常量,默認(rèn)就是) 方法(必須是公有抽象方法,默認(rèn)就是) 沒(méi)有構(gòu)造器接口不能被實(shí)例化,接口可以被類多實(shí)現(xiàn),語(yǔ)法 implements 接口1,接口2,接口類型 變量 = 實(shí)現(xiàn)類的對(duì)象實(shí)例 =多態(tài)接口用途:1. 強(qiáng)制規(guī)范,寫一個(gè)功能之前,要寫接口,再寫實(shí)現(xiàn)2. 有利于設(shè)計(jì)人員和開發(fā)人員分工3. 強(qiáng)制約束必須實(shí)現(xiàn)哪些功能4. 讓多態(tài)更加靈活實(shí)現(xiàn)線接口和接口之間是多繼承的關(guān)系:ext
22、ends 接口1,接口2,抽象類接口聲明語(yǔ)法abstract classinterface屬性任意公有靜態(tài)常量方法可以有抽象的,也可以有非抽象的公有抽象構(gòu)造器有沒(méi)有創(chuàng)建對(duì)象不能不能和類之間關(guān)系單繼承多實(shí)現(xiàn)(類實(shí)現(xiàn)接口)和接口之間關(guān)系多實(shí)現(xiàn)多繼承多態(tài)和子類和實(shí)現(xiàn)類面向?qū)ο蟮乃姆N關(guān)系繼承(泛化):實(shí)現(xiàn):組合:一個(gè)對(duì)象是由其他對(duì)象組成的強(qiáng)聚合:表達(dá)組成的對(duì)象是必不可缺聚合:表達(dá)組成的對(duì)象可有可無(wú)關(guān)聯(lián):表達(dá)和數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)映射的依賴關(guān)系:一個(gè)類用到了另一個(gè)類的功能三種關(guān)系:Is a 繼承 實(shí)現(xiàn)Has a 組合Use a 依賴內(nèi)部類:一個(gè)類聲明在另一個(gè)類內(nèi)部,就是內(nèi)部類實(shí)例內(nèi)部類:聲明在方法外而且沒(méi)有st
23、atic的內(nèi)部類在其他類中創(chuàng)建實(shí)例內(nèi)部類對(duì)象 外部類對(duì)象.new 內(nèi)部類();A a = new A();A.B b = a.new B();如果內(nèi)部類屬性而后外部類屬性重名,必須用 外部類名.this.屬性 訪問(wèn)外部類的屬性實(shí)例內(nèi)部類可以直接訪問(wèn)外部類的成員,而不需要?jiǎng)?chuàng)建對(duì)象靜態(tài)內(nèi)部類:聲明在方法外而且static修飾的內(nèi)部類局部?jī)?nèi)部類:聲明再方法內(nèi)部的內(nèi)部類,能直接訪問(wèn)方法的final變量匿名類:沒(méi)有名字的內(nèi)部類枚舉:如果變量只有幾種固定取值的情況,可以用枚舉舉例:星期幾 月份基本聲明語(yǔ)法:public enum 枚舉名稱 枚舉常量1,枚舉常量2, 枚舉常量的數(shù)據(jù)類型就是枚舉本身的類型異常
24、處理在Java每一種異常情況,都是對(duì)應(yīng)一個(gè)異常類編譯檢查異常運(yùn)行時(shí)異常Exception異常代表可以處理的異常,處理之后程序繼續(xù)執(zhí)行Error錯(cuò)誤代表致命異常,不可處理的Throwable錯(cuò)誤和異常根類運(yùn)行時(shí)異常:只要是RuntimeException類及子類,都是運(yùn)行時(shí)異常,編譯不檢查,運(yùn)行時(shí)拋出異常編譯檢查異常:如果調(diào)用的方法本身是throws 編譯檢查異常,那么調(diào)用者要么加try catch,要么加throws拋出聲明,否則編譯錯(cuò)誤(因?yàn)閖ava認(rèn)為這些方法理論上可能會(huì)發(fā)生異常)Java對(duì)異常的默認(rèn)處理:根據(jù)異常的情況創(chuàng)建出對(duì)應(yīng)的異常類對(duì)象,拋出給虛擬機(jī),打印錯(cuò)誤堆棧消息(就是那行紅字)
25、,程序自動(dòng)終止異常類的常用方法:getMessage():返回異常錯(cuò)誤消息(比較簡(jiǎn)短)printStackTrace():輸出詳細(xì)的錯(cuò)誤堆棧消息(在catch塊最好加上這個(gè)方法,否則排錯(cuò)基本靠猜)捕獲異常的語(yǔ)法:可以用父類類型捕獲子類異常(多態(tài)嘛),但是子類必須放到父類上面,否則就是不可達(dá)代碼編譯錯(cuò)誤try 可能會(huì)發(fā)生異常的代碼 catch (異常類型 1 xx) 如果發(fā)生的是異常類型 1,異常的處理 catch (異常類型2 xx) 如果發(fā)生的是異常類型 2,異常的處理finally 無(wú)論是否發(fā)生異常都執(zhí)行的語(yǔ)句拋出聲明: 方法聲明 throws 異常1,異常2, 就是當(dāng)前方法不處理這個(gè)異常
26、(不加try catch),而是拋給調(diào)用者來(lái)處理子類的覆蓋方法不能比父類的被覆蓋方法拋出更多異常throw 異常類對(duì)象實(shí)例:產(chǎn)生某個(gè)異常并拋出自定義異常類:自己寫一個(gè)異常的子類,只要繼承任何一個(gè)現(xiàn)有的異常即可,一般都繼承Exception文件操作和IOFile類:映射一個(gè)文件或者一個(gè)文件夾(文件和目錄可以是抽象不存在的)java.util.Date類:存儲(chǔ)實(shí)際時(shí)間,精確到毫秒SimpleDateFormat類:主要就是把字符串和日期類型做轉(zhuǎn)換,雙向轉(zhuǎn)換Input輸入Output輸出數(shù)據(jù)流分為兩大類:字節(jié)流:操作單位是字節(jié) 0255 二進(jìn)制數(shù)據(jù)根類 InputStream OutputStrea
27、m字符流:操作單位是字符 065535 純文本數(shù)據(jù)根類 Reader Writer文件輸出流默認(rèn)都是自動(dòng)創(chuàng)建文件的(如果是windows系統(tǒng))Windows系統(tǒng)下的換行是rn Linux系統(tǒng)的換行n節(jié)點(diǎn)流:直接和數(shù)據(jù)交互的,例如FileInputStream FileReader FileOutputStream 等處理流:不直接操作數(shù)據(jù),而是通過(guò)節(jié)點(diǎn)流間接操作數(shù)據(jù)序列化:把一個(gè)對(duì)象的實(shí)例保存到另一個(gè)位置(比如說(shuō)文件)ObjectOutputStream反序列化:就是把一個(gè)位置中(比如說(shuō)文件)的對(duì)象讀取返回到j(luò)ava中 ObjectInputStream被序列化的對(duì)象必須實(shí)現(xiàn)Serializa
28、ble接口常用類Math類,常用方法:Math.floor:截?cái)嘈?shù),返回不大于本身的最大整數(shù)Math.round:四舍五入Math.ceil:進(jìn)位取整求任意兩整數(shù)之間的隨機(jī)整數(shù)(包括兩整數(shù)本身)公式:(int) (大值 小值 + 1) * Math.random() + 小值)String類的常用方法:length():字符串長(zhǎng)度charAt:返回指定下標(biāo)的字符substring:返回指定范圍的字符串(截取字符串)indexOf:查找字符串的位置,沒(méi)有返回-1lastIndexOf:反向搜索toLowerCase:變小寫toUpperCase:變大寫trim:去兩邊空白endsWith:判斷
29、是否以xx結(jié)束startsWith:判斷是否以xx開始compareTo:比較字符串大?。ò凑誹nicode碼),大返回正數(shù),小返回負(fù)數(shù),相等返回0replace:把字符串替換為其他字符串replaceAll:功能同上,支持正則表達(dá)式split:根據(jù)分隔符,分解字符串形成一個(gè)數(shù)組,如果分隔符本身就是正則表達(dá)式,那么必須用/轉(zhuǎn)義,比如 | .String類是不可變類,字符串一經(jīng)生成,永遠(yuǎn)不準(zhǔn)修改StringBuffer可變的字符串,線程安全的常用方法:append:追加字符串StringBuilder:功能同上,但是線程不安全的LinkedList類ArrayList類HashSet類List類Set接口Collection集合類根接口集合類型:特點(diǎn)是可變長(zhǎng)度,長(zhǎng)度會(huì)隨著內(nèi)容自動(dòng)擴(kuò)容Set接口的特點(diǎn):沒(méi)有元素順序,不允許存儲(chǔ)重復(fù)元素List接口的特點(diǎn):有元素順序,允許存儲(chǔ)重復(fù)元素ArrayList:內(nèi)部結(jié)構(gòu)是一個(gè)線性表,查詢快,增加,刪除慢LinkedList:內(nèi)部結(jié)構(gòu)是一個(gè)鏈表,查詢慢,增加,刪除快ArrayList和Vector:Vector是線程安全的,ArrayList線程不安全HashMap和Ha
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度礦山安全生產(chǎn)監(jiān)管與應(yīng)急響應(yīng)合伙協(xié)議
- 二零二五年度高新技術(shù)企業(yè)研發(fā)合作合同續(xù)約期限規(guī)定
- 二零二五年度衛(wèi)生院聘用合同模板(基層醫(yī)療機(jī)構(gòu))
- 二零二五年度演員網(wǎng)絡(luò)劇IP改編簽約協(xié)議
- 二零二五年度個(gè)人短期租房合同月付及房屋保險(xiǎn)保障協(xié)議
- 社交媒體在辦公場(chǎng)景的個(gè)性化營(yíng)銷策略
- 二零二五年度知識(shí)產(chǎn)權(quán)投資對(duì)賭協(xié)議
- 科技產(chǎn)品營(yíng)銷策略的跨文化傳播
- 2025至2030年中國(guó)真空成型吸塑機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 文化傳承園排澇工程項(xiàng)目可行性研究報(bào)告-園區(qū)排水安全保障能力顯著提升
- 河南省瓶裝液化石油氣管理辦法(試行)
- DB34T 4620-2023 疼痛科治療室建設(shè)規(guī)范
- 易制毒化學(xué)品識(shí)別與檢驗(yàn)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 紅茶市場(chǎng)洞察報(bào)告
- 外國(guó)來(lái)華留學(xué)生經(jīng)費(fèi)管理辦法
- 蝴蝶蘭栽培技術(shù)規(guī)程
- Unit 4 Time to celebrate 教學(xué)設(shè)計(jì)-2024-2025學(xué)年外研版英語(yǔ)七年級(jí)上冊(cè)
- 健康檔案模板
- 筋膜刀的臨床應(yīng)用
- DB32-T 4790-2024建筑施工特種作業(yè)人員安全操作技能考核標(biāo)準(zhǔn)
- 2022年安徽阜陽(yáng)太和縣人民醫(yī)院本科及以上學(xué)歷招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
評(píng)論
0/150
提交評(píng)論