Java基礎(chǔ)知識(shí)的總結(jié)

一荆陆、基礎(chǔ)知識(shí):

1、JVM集侯、JRE和JDK的區(qū)別:

JVM(Java Virtual Machine):java虛擬機(jī)被啼,用于保證java的跨平臺(tái)的特性。
              java語(yǔ)言是跨平臺(tái)棠枉,jvm不是跨平臺(tái)的浓体。
JRE(Java Runtime Environment):java的運(yùn)行環(huán)境,包括jvm+java的核心類庫(kù)。    
JDK(Java Development Kit):java的開(kāi)發(fā)工具,包括jre+開(kāi)發(fā)工具

2辈讶、環(huán)境變量path和classpath的作用是什么命浴?

(1)path是配置Windows可執(zhí)行文件的搜索路徑,即擴(kuò)展名為.exe的程序文件所在的目錄贱除,
   用于指定DOS窗口命令的路徑生闲。
(2)Classpath是配置class文件所在的目錄,用于指定類搜索路徑勘伺,JVM就是通過(guò)它來(lái)尋找該類的class類文件的砌左。

3盹愚、變量有什么用坏挠?為什么要定義變量遭商?什么時(shí)候用屯阀?

答:變量的作用:用來(lái)存儲(chǔ)數(shù)據(jù)。
    為什么要定義變量:用來(lái)不斷的存放同一類型的常量轴术,并可以重復(fù)使用

4难衰、&和&&的區(qū)別?

答:(1)&&會(huì)出現(xiàn)短路,如果可以通過(guò)第一個(gè)表達(dá)式判斷出整個(gè)表達(dá)式的結(jié)果逗栽,則不繼續(xù)后面表達(dá)式的運(yùn)算盖袭;
     只能操作boolean類型數(shù)據(jù);
    (2)&不會(huì)出現(xiàn)短路彼宠,將整個(gè)表達(dá)式都運(yùn)算鳄虱。既可以操作boolean數(shù)據(jù)還可以操作數(shù)。

5凭峡、標(biāo)示符命名規(guī)則:

由數(shù)字(0-9)拙已,大小寫(xiě)英文字母,以及_和$組成摧冀。
不能以數(shù)字開(kāi)頭倍踪。
不能使用關(guān)鍵字來(lái)自定義命名。

6索昂、數(shù)據(jù)類型:

(1)基本數(shù)據(jù)類型(4類8種):
    整數(shù)類型:byte建车、short、int椒惨、long
    浮點(diǎn)數(shù)類型:float缤至、double
    字符類型:char
    布爾類型:boolean(ture false)
(2)引用數(shù)據(jù)類型:
    類
    接口
    數(shù)組

7、類型轉(zhuǎn)換

精度從高到低  double  float  long  int  short(char)  byte 
(1)自動(dòng)類型轉(zhuǎn)換  將一個(gè)低精度---?高精度 
(2)強(qiáng)制類型轉(zhuǎn)換  將一個(gè)高精度---?低精度(精度會(huì)下降)

8框产、java語(yǔ)言的三種技術(shù)架構(gòu)

J2EE:企業(yè)版
是為開(kāi)發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案凄杯。
該技術(shù)體系中包含的技術(shù)如 Servlet错洁、Jsp等秉宿,主要針對(duì)于Web應(yīng)用程序開(kāi)發(fā)。
J2SE:標(biāo)準(zhǔn)版
是為開(kāi)發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案屯碴。
該技術(shù)體系是其他兩者的基礎(chǔ)描睦,可以完成一些桌面應(yīng)用程序的開(kāi)發(fā)。
比如Java版的掃雷导而。
J2ME:小型版
是為開(kāi)發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)備提供的解決方案忱叭。
該技術(shù)體系主要應(yīng)用于小型電子消費(fèi)類產(chǎn)品,如手機(jī)中的應(yīng)用程序等今艺。

9韵丑、java的跨平臺(tái)性:

通過(guò)Java語(yǔ)言編寫(xiě)的應(yīng)用程序在不同的系統(tǒng)平臺(tái)上都可以運(yùn)行。
跨平臺(tái)的原因:
只要在需要運(yùn)行java應(yīng)用程序的操作系統(tǒng)上虚缎,先安裝一個(gè)Java虛擬機(jī)(JVM Java Virtual Machine)即可撵彻。
由JVM來(lái)負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行。

10、有符號(hào)數(shù)據(jù)的表示法(次重點(diǎn))

原碼陌僵,反碼(原碼取反)轴合,補(bǔ)碼(反碼+1)。

11碗短、函數(shù)

定義:函數(shù)就是定義在類中的具有特定功能的一段獨(dú)立小程序受葛。        
特點(diǎn):
    定義函數(shù)可以將功能代碼進(jìn)行封裝
    便于對(duì)該功能進(jìn)行復(fù)用
    函數(shù)只有被調(diào)用才會(huì)被執(zhí)行
    函數(shù)的出現(xiàn)提高了代碼的復(fù)用性
    對(duì)于函數(shù)沒(méi)有具體返回值的情況,返回值類型用關(guān)鍵字void表示偎谁,
    那么該函數(shù)中的return語(yǔ)句如果在最后一行可以省略不寫(xiě)总滩。
函數(shù)的應(yīng)用兩個(gè)明確:
    明確要定義的功能最后的結(jié)果是什么?
    明確在定義該功能的過(guò)程中巡雨,是否需要未知內(nèi)容參與運(yùn)算

12咳秉、重載:

概念:在同一個(gè)類中,允許存在一個(gè)以上的同名函數(shù)鸯隅,只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可澜建。    
特點(diǎn):與返回值類型無(wú)關(guān),只看參數(shù)列表(參數(shù)類型以及參數(shù)個(gè)數(shù))蝌以。 
好處:方便于閱讀炕舵,優(yōu)化了程序設(shè)計(jì)。   

13跟畅、數(shù)組:

概念:同一種數(shù)據(jù)類型的集合咽筋。  
好處:可以自動(dòng)給數(shù)組中的元素從0開(kāi)始編號(hào),方便操作這些元素徊件。

14奸攻、內(nèi)存結(jié)構(gòu):

棧內(nèi)存:用于存儲(chǔ)局部變量,當(dāng)數(shù)據(jù)使用完虱痕,所占空間會(huì)自動(dòng)釋放睹耐。
堆內(nèi)存:數(shù)組和對(duì)象,通過(guò)new建立的實(shí)例都存放在堆內(nèi)存中部翘。
方法區(qū):靜態(tài)成員硝训、構(gòu)造函數(shù)、常量池新思、線程池
本地方法區(qū):window系統(tǒng)占用
寄存器:

二窖梁、面向?qū)ο?/h2>

1、面向?qū)ο笏枷耄?/h3>
(1)概述:面向?qū)ο笫窍鄬?duì)于面向過(guò)程而言的夹囚,面向過(guò)程強(qiáng)調(diào)的是功能纵刘,面向?qū)ο髲?qiáng)調(diào)的是將功能封裝進(jìn)對(duì)象,
     強(qiáng)調(diào)具備功能的對(duì)象荸哟;
(2)思想特點(diǎn):
     A:是符合人們思考習(xí)慣的一種思想假哎;
     B:將復(fù)雜的事情簡(jiǎn)單化了蛔翅;
     C:將程序員從執(zhí)行者變成了指揮者;

     比如我要達(dá)到某種結(jié)果位谋,我就尋找能幫我達(dá)到該結(jié)果的功能的對(duì)象山析,如我要洗衣服我就買洗衣機(jī),
     至于怎么洗我不管掏父。
(3)特征:
    封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié)笋轨,僅對(duì)外提供公共訪問(wèn)方式
    繼承: 多個(gè)類中存在相同屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類中赊淑,那么多個(gè)類無(wú)需再定義
          這些屬性和行為爵政,只要繼承那個(gè)類即可。
    多態(tài): 一個(gè)對(duì)象在程序不同運(yùn)行時(shí)刻代表的多種狀態(tài)陶缺,父類或者接口的引用指向子類對(duì)象

2钾挟、類和對(duì)象:

類:對(duì)現(xiàn)實(shí)世界中某類事物的描述,是抽象的,概念上的定義饱岸。
對(duì)象:事物具體存在的個(gè)體掺出。

3:成員變量和局部變量的區(qū)別(重點(diǎn))

(1)作用域
    成員變量:針對(duì)整個(gè)類有效。
    局部變量:只在某個(gè)范圍內(nèi)有效苫费。(一般指的就是方法,語(yǔ)句體內(nèi))
(2)存儲(chǔ)位置
    成員變量:隨著對(duì)象的創(chuàng)建而存在汤锨,隨著對(duì)象的消失而消失,存儲(chǔ)在堆內(nèi)存中百框。
    局部變量:在方法被調(diào)用闲礼,或者語(yǔ)句被執(zhí)行的時(shí)候存在,存儲(chǔ)在棧內(nèi)存中铐维。
          當(dāng)方法調(diào)用完柬泽,或者語(yǔ)句結(jié)束后,就自動(dòng)釋放嫁蛇。
(3)初始值
    成員變量:有默認(rèn)初始值锨并。
    局部變量:沒(méi)有默認(rèn)初始值,使用前必須賦值棠众。

4琳疏、匿名對(duì)象

(1)匿名對(duì)象就是沒(méi)有名字的對(duì)象有决。是對(duì)象的一種簡(jiǎn)寫(xiě)形式闸拿。
(2)應(yīng)用場(chǎng)景
    A:只調(diào)用一次類中的方法。
    B:可以作為實(shí)際參數(shù)在方法傳遞中使用

5书幕、封裝:

指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié)新荤,僅對(duì)外提供公共訪問(wèn)方式;比如電腦機(jī)箱台汇、筆記本等
好處:
    將變化隔離苛骨;
    方便使用篱瞎;
    提高復(fù)用性;
    提高安全性

6痒芝、關(guān)鍵字private:封裝在代碼中的體現(xiàn)

(1)私有的意思俐筋,權(quán)限修飾符
(2)用來(lái)修飾成員變量和成員函數(shù)
(3)用private修飾的成員只在本類中有效
(4)私有是封裝的一種體現(xiàn)

7、構(gòu)造方法:

(1)特點(diǎn):
    方法名與類名相同
    沒(méi)有返回類型
    沒(méi)有返回值
(2)作用:構(gòu)造函數(shù)是用于創(chuàng)建對(duì)象严衬,并對(duì)其進(jìn)行初始化賦值澄者,對(duì)象一建立就自動(dòng)調(diào)用相對(duì)應(yīng)的構(gòu)造函數(shù),
(3)構(gòu)造方法的注意事項(xiàng):
    A:如果一個(gè)自定義類沒(méi)有構(gòu)造方法请琳,系統(tǒng)會(huì)默認(rèn)給出一個(gè)無(wú)參構(gòu)造方法粱挡。
    B:如果一個(gè)自定義類提供了構(gòu)造方法,那么俄精,系統(tǒng)將不再給出無(wú)參構(gòu)造方法询筏。
      這個(gè)時(shí)候,你可以不使用無(wú)參構(gòu)造方法竖慧。
      如果你想使用嫌套,那么,就必須手動(dòng)給出無(wú)參構(gòu)造方法圾旨。

    建議:一般情況下灌危,我們的自定義類都要手動(dòng)給出無(wú)參構(gòu)造方法。
(4)構(gòu)造方法和成員方法的區(qū)別
    A:格式區(qū)別
        構(gòu)造方法和類名相同碳胳,并且沒(méi)有返回類型勇蝙,也沒(méi)有返回值。
        普通成員方法可以任意起名挨约,必須有返回類型味混,可以沒(méi)有返回值。
    B:作用區(qū)別
        構(gòu)造方法用于創(chuàng)建對(duì)象诫惭,并進(jìn)行初始化值翁锡。
        普通成員方法是用于完成特定功能的。
    C:調(diào)用區(qū)別
        構(gòu)造方法是在創(chuàng)建對(duì)象時(shí)被調(diào)用的夕土,一個(gè)對(duì)象建立馆衔,只調(diào)用一次相應(yīng)構(gòu)造函數(shù)
        普通成員方法是由創(chuàng)建好的對(duì)象調(diào)用,可以調(diào)用多次

8怨绣、構(gòu)造代碼塊:

(1)作用:給對(duì)象進(jìn)行初始化角溃,對(duì)象一建立就執(zhí)行,而且優(yōu)先于構(gòu)造函數(shù)執(zhí)行
(2)構(gòu)造代碼塊和構(gòu)造函數(shù)的區(qū)別:
    構(gòu)造代碼塊是給所有不同對(duì)象的共性進(jìn)行統(tǒng)一初始化
    構(gòu)造函數(shù)是給對(duì)應(yīng)的對(duì)象進(jìn)行初始化

9篮撑、this關(guān)鍵字

(1)this關(guān)鍵字代表本類對(duì)象的一個(gè)引用减细,誰(shuí)調(diào)用this所在的方法,this就代表誰(shuí)  
(2)this的使用場(chǎng)景
    A:用于區(qū)分同名成員變量和局部變量赢笨;
    B:在定義函數(shù)時(shí)未蝌,該函數(shù)內(nèi)部要用到調(diào)用該函數(shù)的對(duì)象時(shí)驮吱,因?yàn)榇藭r(shí)對(duì)象還沒(méi)建立,故this代表此對(duì)象
    B:構(gòu)造函數(shù)間調(diào)用
        **這個(gè)時(shí)候萧吠,this(參數(shù))必須作為第一條語(yǔ)句存在左冬。

10、Person p = new Person();在內(nèi)存中做了哪些事情纸型。

(1)將Person.class文件加載進(jìn)內(nèi)存中又碌。
(2)如果p定義在主方法中,那么绊袋,就會(huì)在棻显龋空間開(kāi)辟一個(gè)變量空間p。
(3)在堆內(nèi)存給對(duì)象分配空間癌别。
(4)對(duì)對(duì)象中的成員進(jìn)行默認(rèn)初始化皂岔。
(5)對(duì)對(duì)象中的成員進(jìn)行顯示初始化。
(6)調(diào)用構(gòu)造代碼塊對(duì)對(duì)象進(jìn)行初始化展姐。(如果沒(méi)有就不執(zhí)行)
(7)調(diào)用構(gòu)造方法對(duì)對(duì)象進(jìn)行初始化躁垛。對(duì)象初始化完畢。
(8)將對(duì)象的內(nèi)存地址賦值給p變量圾笨,讓p變量指向該對(duì)象教馆。

11、static關(guān)鍵字:

(1)靜態(tài)的意思擂达,用來(lái)修飾成員變量和成員函數(shù)
(2)靜態(tài)的特點(diǎn):
    隨著類的加載而加載
    優(yōu)先于對(duì)象存在
    對(duì)所有對(duì)象共享
    可以被類名直接調(diào)用
(3)靜態(tài)的注意事項(xiàng)
    A:靜態(tài)方法只能訪問(wèn)靜態(tài)成員
        為什么:因?yàn)殪o態(tài)的內(nèi)容是隨著類的加載而加載土铺,它是先進(jìn)內(nèi)存的。
    B:靜態(tài)方法中不能使用this,super關(guān)鍵字
    C:主方法是靜態(tài)的
        public static void main(String[] args)
        public:公共的意思板鬓,是最大權(quán)限修飾符悲敷。
        static:由于jvm調(diào)用main方法的時(shí)候,沒(méi)有創(chuàng)建對(duì)象俭令。
               只能通過(guò)類名調(diào)用后德。所以,main必須用static修飾抄腔。
        void:由于main方法是被jvm調(diào)用瓢湃,不需要返回值。用void修飾赫蛇。
        main:main是主要的意思绵患,所以jvm采用了這個(gè)名字。是程序的入口棍掐。

        String[]:字符串?dāng)?shù)組
        args:數(shù)組名

        在運(yùn)行的時(shí)候藏雏,通過(guò)java命令給args數(shù)組賦值。
        格式:java MainTest hello world itcast
(4)靜態(tài)變量和成員變量的區(qū)別
    A:調(diào)用方式
        靜態(tài)變量也稱為類變量作煌,可以直接通過(guò)類名調(diào)用掘殴。也可以通過(guò)對(duì)象名調(diào)用。
        這個(gè)變量屬于類粟誓。
        成員變量也稱為實(shí)例變量奏寨,只能通過(guò)對(duì)象名調(diào)用。這個(gè)變量屬于對(duì)象鹰服。
    B:存儲(chǔ)位置
        靜態(tài)變量存儲(chǔ)在方法區(qū)長(zhǎng)中的靜態(tài)區(qū)病瞳。
        成員變量存儲(chǔ)在堆內(nèi)存。
    C:生命周期
        靜態(tài)變量隨著類的加載而存在悲酷,隨著類的消失而消失套菜。生命周期長(zhǎng)。
        成員變量隨著對(duì)象的創(chuàng)建而存在设易,隨著對(duì)象的消失而消失逗柴。
    D:與對(duì)象的相關(guān)性
        靜態(tài)變量是所有對(duì)象共享的數(shù)據(jù)。
        成員變量是每個(gè)對(duì)象所特有的數(shù)據(jù)顿肺。
(5)靜態(tài)的優(yōu)點(diǎn)和弊端
    優(yōu)點(diǎn):
    對(duì)對(duì)象的共享數(shù)據(jù)進(jìn)行單獨(dú)空間的存儲(chǔ)戏溺,節(jié)省內(nèi)存,沒(méi)有必要每個(gè)對(duì)象都存儲(chǔ)一份
    可直接被類名調(diào)用
    弊端:
    生命周期過(guò)長(zhǎng)屠尊,隨著類的消失而消失
    訪問(wèn)出現(xiàn)權(quán)限旷祸,即靜態(tài)雖好但只能訪問(wèn)靜態(tài)
(6)什么使用使用靜態(tài)呢?
    A:當(dāng)所有對(duì)象共享某個(gè)數(shù)據(jù)的時(shí)候讼昆,就把這個(gè)成員變量定義為靜態(tài)修飾的托享。
    B:當(dāng)某個(gè)方法沒(méi)有訪問(wèn)該類中的非靜態(tài)成員,就可以把這個(gè)方法定義為靜態(tài)修飾浸赫。

    靜態(tài)的生命周期比較長(zhǎng)嫌吠,所以一般不推薦使用。
(7)靜態(tài)代碼塊
    A:它只執(zhí)行一次掺炭,它比main還先執(zhí)行辫诅。
    B:執(zhí)行順序
        靜態(tài)代碼塊--構(gòu)造代碼塊--構(gòu)造方法

12、制作API(次重點(diǎn))

API(全拼):Application Program Interface 應(yīng)用程序編程接口涧狮。
(1)類中的內(nèi)容需要用文檔注釋炕矮。
(2)使用JDK\bin目錄下的javadoc工具。
    格式:javadoc -d 目錄 -author -version ArrayTool.java

13者冤、單例設(shè)計(jì)模式:

(1)設(shè)計(jì)模式:
    解決某類問(wèn)題行之有效的方法肤视,是一種思想,是規(guī)律的總結(jié)
(2)用來(lái)保證某個(gè)類在內(nèi)存中只有一個(gè)對(duì)象
(3)保證唯一性的思想及步驟
    **為了避免其他程序建立該類對(duì)象涉枫,先禁止其他程序建立該類對(duì)象邢滑,即將構(gòu)造函數(shù)私有化
    **為了其他程序訪問(wèn)到該類對(duì)象,須在本類中創(chuàng)建一個(gè)該類私有對(duì)象
    **為了方便其他程序訪問(wèn)到該類對(duì)象愿汰,可對(duì)外提供一個(gè)公共訪問(wèn)方式

比如API中的Runtime類就是單例設(shè)計(jì)模式困后。

(4)單例設(shè)計(jì)模式的兩種方式
    A:餓漢式 當(dāng)類加載的時(shí)候乐纸,就創(chuàng)建對(duì)象。    
    class Student
    {
        private Student(){}
        
        private static final Student s = new Student();
        
        public static Student getInstance()
        {
            return s;
        }
    }
    B:懶漢式 當(dāng)使用的使用摇予,才去創(chuàng)建對(duì)象汽绢。
    class Student
    {
        private Student(){}

        private static final Student s = null;
        
        public static Student getInstance()
        {
            if(s==null) 
            {
                //線程1就進(jìn)來(lái)了,線程2就進(jìn)來(lái)了侧戴。
                s = new Student();
            }
            return s;
        }
    }
餓漢式和懶漢式的區(qū)別:
    **
    餓漢式是類一加載進(jìn)內(nèi)存就創(chuàng)建好了對(duì)象宁昭;
    懶漢式則是類才加載進(jìn)內(nèi)存的時(shí)候,對(duì)象還沒(méi)有存在酗宋,只有調(diào)用了getInstance()方法時(shí)积仗,
    對(duì)象才開(kāi)始創(chuàng)建。
    **
    懶漢式是延遲加載蜕猫,如果多個(gè)線程同時(shí)操作懶漢式時(shí)就有可能出現(xiàn)線程安全問(wèn)題寂曹,解決線程安全問(wèn)題
    可以加同步來(lái)解決。但是加了同步之后丹锹,每一次都要比較鎖稀颁,效率就變慢了,
    所以可以加雙重判斷來(lái)提高程序效率楣黍。
    注:開(kāi)發(fā)常用餓漢式匾灶,因?yàn)轲I漢式簡(jiǎn)單安全。懶漢式多線程的時(shí)候容易發(fā)生問(wèn)題

14租漂、Math類的使用(重點(diǎn))

(1)數(shù)學(xué)操作類:該類沒(méi)有構(gòu)造函數(shù)阶女,方法均為靜態(tài)的   
(2)掌握內(nèi)容
    A:成員變量
        **E:比任何其他值都更接近e(即自然對(duì)數(shù)的底數(shù))的double值。
        **PI:比任何其他值都更接近pi(即圓的周長(zhǎng)與直徑之比)的double值哩治。
    B:成員方法
        **static double abs(double a) 
            返回 double 值的絕對(duì)值秃踩。返回絕對(duì)值
        **static double ceil(double a) 
            返回最小的(最接近負(fù)無(wú)窮大)double 值,該值大于等于參數(shù)业筏,并等于某個(gè)整數(shù)憔杨。 
        **static double floor(double a) 
            返回最大的(最接近正無(wú)窮大)double 值,該值小于等于參數(shù)蒜胖,并等于某個(gè)整數(shù)消别。 
        **max:返回兩個(gè)值中較大的那個(gè)
        **min:返回兩個(gè)值中較小的那個(gè)
        **static long round(double a) 返回最接近參數(shù)的 long。
          static int round(float a) 返回最接近參數(shù)的 int台谢。 
        **static double random() 
            返回帶正號(hào)的 double 值寻狂,該值大于等于 0.0 且小于 1.0。 
        **static double pow(double a, double b) 
            返回第一個(gè)參數(shù)的第二個(gè)參數(shù)次冪的值朋沮。 
        **static double sqrt(double a) 
             返回正確舍入的 double 值的正平方根蛇券。 

15、Random類的使用(重點(diǎn))

(1)產(chǎn)生隨機(jī)數(shù)的類
(2)掌握內(nèi)容
    A:構(gòu)造方法
        **Random() 創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。 
        **Random(long seed) 使用單個(gè) long 種子創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器纠亚。
    B:成員方法
        **int nextInt() 返回下一個(gè)偽隨機(jī)數(shù)塘慕,它是此隨機(jī)數(shù)生成器的序列中均勻分布的 int 值。 
        **int nextInt(int n) 返回一個(gè)偽隨機(jī)數(shù)菜枷,它是取自此隨機(jī)數(shù)生成器序列的苍糠、
        在 0(包括)和指定值(不包括)之間均勻分布的 int 值叁丧。

16啤誊、Scanner類的使用

(1)可以獲取從鍵盤(pán)的輸入數(shù)據(jù)
(2)掌握內(nèi)容
    構(gòu)造方法:
        Scanner(InputStream source) 構(gòu)造一個(gè)新的 Scanner,它生成的值是從指定的輸入流掃描的拥娄。
        如:Scanner sc = new Scanner(System.in);
    方法摘要
        sc.nextInt();獲取整型數(shù)據(jù)
        sc.nextLine();獲取字符串?dāng)?shù)據(jù)

17蚊锹、繼承(重點(diǎn))

(1)把很多類的相同特征和行為進(jìn)行抽取,用一個(gè)類來(lái)描述稚瘾。讓多個(gè)類和這個(gè)類產(chǎn)生一個(gè)關(guān)系牡昆。
   這樣的話,多個(gè)類就可以省略很多代碼摊欠。這個(gè)關(guān)系就是繼承丢烘。java中用extends關(guān)鍵字表示。
(2)繼承的體系結(jié)構(gòu)
    A:多個(gè)具體的對(duì)象些椒,不斷的向上抽取共享的內(nèi)容播瞳,最終形成了一個(gè)體系。這個(gè)體系叫做繼承體系免糕。
    B:繼承體系的學(xué)習(xí)和使用原則
        **學(xué)習(xí)頂層的內(nèi)容赢乓。因?yàn)樗钦麄€(gè)體系的共性內(nèi)容。
        **創(chuàng)建子類使用石窑。也就是使用底層的具體對(duì)象牌芋。
(3)繼承的特點(diǎn):
    A:java中只能單繼承,沒(méi)有多繼承松逊。
    B:java可以有多重(層)繼承躺屁。
(4)繼承的好處:
    繼承的出現(xiàn)提高了代碼的復(fù)用性。
    繼承的出現(xiàn)讓類與類之間產(chǎn)生了關(guān)系经宏,提供了多態(tài)的前提犀暑。
(5)子父類中的成員關(guān)系
    A:成員變量
        在子類方法中使用一個(gè)變量時(shí):
        首先,在方法的局部變量中找這個(gè)變量烛恤,有則使用母怜。
        否則,在本類中找成員變量缚柏,有則使用苹熏。
        否則,在父類中找成員變量,有則使用轨域。
        否則袱耽,報(bào)錯(cuò)。
    B:成員方法
        用子類對(duì)象使用一個(gè)方法時(shí)干发。
        首先朱巨,在子類中找這個(gè)方法,有則使用枉长。
        否則冀续,在父類中找這個(gè)方法,有則使用必峰。
        否則洪唐,報(bào)錯(cuò)。

    重寫(xiě)和重載的區(qū)別吼蚁?
        重載:在同一類中凭需。方法名相同,參數(shù)列表不同肝匆。重載可以改變返回類型粒蜈。
        重寫(xiě):在不同類中(子父類中)。
              方法聲明相同(返回類型旗国,方法名枯怖,參數(shù)列表均相同)。
    重寫(xiě)需要注意:
        **子類方法的訪問(wèn)權(quán)限要大于等于父類方法的訪問(wèn)權(quán)限粗仓。
        **靜態(tài)只能重寫(xiě)靜態(tài)嫁怀。但是這種情況一般不會(huì)出現(xiàn)。

    構(gòu)造方法
        **子類的實(shí)例化過(guò)程
            ***子類創(chuàng)建對(duì)象時(shí)借浊,會(huì)先去創(chuàng)建父類的對(duì)象塘淑。
                默認(rèn)是去調(diào)用父類的無(wú)參構(gòu)造方法。
            ***子類構(gòu)造方法中蚂斤,第一行默認(rèn)是super()
            ***為什么子類中第一行會(huì)默認(rèn)有super()
                因?yàn)樗^承父類的成員使用存捺,使用前這些成員必須初始化,
                而他們是父類的成員曙蒸,所以捌治,必須通過(guò)父類進(jìn)行初始化。
                所以纽窟,會(huì)先創(chuàng)建一個(gè)父類的對(duì)象肖油。
        **當(dāng)父類沒(méi)有無(wú)參構(gòu)造方法時(shí)
            必須使用this或者super調(diào)用其他的構(gòu)造方法。
(6)this和super的區(qū)別
    this:代表本類對(duì)象的引用臂港。
    super:代表父類的存儲(chǔ)空間森枪。

18视搏、final關(guān)鍵字(重點(diǎn))

(1)最終的意思,可以用于修飾類县袱,方法浑娜,變量。
(2)final修飾的類不能被繼承式散。
   final修飾的方法不能被重寫(xiě)筋遭。
   final修飾的變量是一個(gè)常量。只能被賦值一次暴拄。
   內(nèi)部類只能訪問(wèn)被final修飾的局部變量漓滔。

19、抽象類(重點(diǎn))

(1)多個(gè)類有相同的方法聲明揍移,但是方法體不一樣次和。這個(gè)時(shí)候反肋,我們考慮把方法聲明進(jìn)行抽取那伐。
   讓子類繼承后,自己去實(shí)現(xiàn)方法體石蔗。沒(méi)有方法體的方法罕邀,我們需要用抽象標(biāo)志下。
   抽象的關(guān)鍵字是:abstract养距。
(2)抽象類:
    該方法稱為抽象方法诉探,包含抽象方法的類就是抽象類。
(3)抽象類的特點(diǎn):
    A:抽象類和抽象方法都要用abstract進(jìn)行修飾
    B:抽象類不能被實(shí)例化
    C:抽象類中不一定有抽象方法棍厌,但是肾胯,有抽象方法的類一定是抽象類。
(4)抽象類中數(shù)據(jù)的特點(diǎn)
    A:成員變量
        抽象類中可以有變量耘纱,也可以有常量敬肚。
    B:成員方法
        抽象類中可以有抽象方法,也可以有非抽象方法束析。
    C:構(gòu)造方法
        抽象類是一個(gè)類艳馒,所以,它有構(gòu)造方法员寇。
        雖然本身不能實(shí)例化弄慰。但是可以給子類實(shí)例化使用。
(5)抽象類中的問(wèn)題
    A:抽象類中是否有構(gòu)造方法蝶锋?能不能被實(shí)例化陆爽?如果不能,為什么有構(gòu)造方法扳缕?
      抽象類有構(gòu)造方法慌闭。
          抽象類不能被實(shí)例化恶守。
      抽象類中的構(gòu)造方法供子類實(shí)例化調(diào)用。
    B:抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存贡必?
      **private:
        私有內(nèi)容子類繼承不到兔港,所以,不能重寫(xiě)仔拟。
        但是abstract修飾的方法衫樊,要求被重寫(xiě)。兩者沖突利花。
          **final
        final修飾的方法不能被重寫(xiě)科侈。
        而abstract修飾的方法,要求被重寫(xiě)炒事。兩者沖突臀栈。          
      **static
        假如一個(gè)抽象方法能通過(guò)static修飾,那么這個(gè)方法挠乳,就可以直接通過(guò)類名調(diào)用权薯。
        而抽象方法是沒(méi)有方法體的,這樣的調(diào)用無(wú)意義睡扬。所以盟蚣,不能用static修飾。
    C:抽象類中可不可以沒(méi)有抽象方法卖怜?如果可以屎开,這樣的類有什么用嗎?
      抽象類可以沒(méi)有抽象方法马靠。
      抽象類中沒(méi)有抽象方法的作用奄抽,只是為了不讓別的類建立該抽象類對(duì)象。這個(gè)在awt中有體現(xiàn)甩鳄。

20逞度、接口interface

(1)當(dāng)一個(gè)類中的方法都是抽象的時(shí)候,java提供了另一種表示方式娩贷,叫接口第晰。
   用interface關(guān)鍵字表示。類與接口關(guān)系用implements表示彬祖。
(2)接口的成員特點(diǎn)
    A:成員變量
        是常量茁瘦,默認(rèn)修飾 public static final    
    B:成員方法
        都是抽象的,默認(rèn)修飾 public abstract  
(3)關(guān)系
    A:類與類的關(guān)系
        是繼承關(guān)系储笑。類與類只能單繼承甜熔,可以多重繼承。
    B:類和接口的關(guān)系
        是實(shí)現(xiàn)關(guān)系突倍。類可以多實(shí)現(xiàn)接口腔稀。
        類在繼承一個(gè)類的同時(shí)盆昙,可以實(shí)現(xiàn)多個(gè)接口。
    C:接口和接口的關(guān)系
        是繼承關(guān)系焊虏。接口可以多繼承接口淡喜。
(4)接口的特點(diǎn)
    A:是對(duì)外暴露的規(guī)則
    B:是功能的擴(kuò)展
    C:接口的出現(xiàn)降低耦合性。
        耦合(類與類之間的關(guān)系)
        內(nèi)聚(類完成功能的能力)
        編程規(guī)范:低耦合诵闭,高內(nèi)聚炼团。
    D:接口可以多實(shí)現(xiàn)。如:CPU和主板疏尿、筆記本的USB插口瘟芝、插座
(5)接口和抽象類的區(qū)別
    A:抽象類只能被單繼承
       接口可以多實(shí)現(xiàn),接口的出現(xiàn)避免了多繼承的局限性。
    B:抽象類中的數(shù)據(jù)特點(diǎn):
            成員變量:可以是變量褥琐,也可以是常量
            成員方法:可以是抽象方法锌俱,也可以是非抽象方法
            構(gòu)造方法:有構(gòu)造方法
       接口中的數(shù)據(jù)特點(diǎn):
            成員變量:是常量。默認(rèn)修飾 public static final
            成員方法:都是抽象方法敌呈。都有默認(rèn)修飾 public abstract
            構(gòu)造方法:沒(méi)有構(gòu)造方法
    C:抽象類中定義的是繼承體系中的共性功能贸宏。
       接口中定義的是繼承體系中的擴(kuò)展功能。
    D:抽象類被繼承是"is a"關(guān)系:xx是yy的一種
       接口被實(shí)現(xiàn)是"like a"關(guān)系:xx像yy的一種

21驱富、多態(tài):

(1)同一個(gè)對(duì)象锚赤,在程序不同時(shí)刻的多種運(yùn)行狀態(tài)。舉例:動(dòng)物褐鸥,狗是狗,狗是動(dòng)物赐稽。水(氣態(tài)叫榕,液態(tài),固態(tài))
(2)多態(tài)前提
    A:存在著繼承或者實(shí)現(xiàn)關(guān)系
    B:有方法的重寫(xiě)
    C:父類(接口)引用指向子類(實(shí)現(xiàn))對(duì)象
(3)多態(tài)的好處和弊端:
    好處:多態(tài)的存在提高了程序的擴(kuò)展性和后期可維護(hù)性
    弊端:雖然可以預(yù)先使用姊舵,但是只能訪問(wèn)父類中已有的功能晰绎,運(yùn)行的是后期子類的功能內(nèi)容。
          不能預(yù)先使用子類中定義的特有功能括丁。
(4)多態(tài)中對(duì)象調(diào)用成員的特點(diǎn)
    Fu f = new Zi();
    
    A:成員變量
        編譯看左邊荞下,運(yùn)行看左邊
    B:成員方法 
        編譯看左邊,運(yùn)行看右邊
    C:靜態(tài)方法
        編譯看左邊史飞,運(yùn)行看左邊
(5)多態(tài)的思想
    指揮同一批對(duì)象做事情尖昏。舉例:帶兵打仗,下課等构资。

22抽诉、instanceof關(guān)鍵字

    A:用于判斷某個(gè)對(duì)象是否是某種類型。
    B:格式
        對(duì)象名 instanceof 子類(實(shí)現(xiàn))名

23吐绵、Object類:

(1)是所有類的根類迹淌,超類河绽。
   java中提供的類以及我們自定義的類都直接或者間接的繼承自O(shè)bject類。
(2)Object類中的方法
    A:void finalize() 
      當(dāng)垃圾回收器確定不存在對(duì)該對(duì)象的更多引用時(shí)唉窃,由對(duì)象的垃圾回收器調(diào)用此方法耙饰。
    B:Class getClass()
      獲取對(duì)象的字節(jié)碼文件的描述類,后面再講反射的時(shí)候還會(huì)在說(shuō)這個(gè)類纹份。
      String name = s.getClass().getName();
    C:int hashCode()
      獲取對(duì)象的哈希值榔幸。其實(shí)就是對(duì)象的內(nèi)存地址值十進(jìn)制表示
    D:String toString()
      返回對(duì)象的字符串表示。
      表示格式:
      getClass().getName()+"@"+Integer.toHexString(hashCode());

      一般我們輸出對(duì)象名的時(shí)候矮嫉,其實(shí)底層調(diào)用的就是該對(duì)象的toString()方法削咆。
      這種返回沒(méi)有意義,所以蠢笋,我們會(huì)重寫(xiě)這個(gè)方法拨齐,顯示類的成員變量信息。
    E:boolean equals(Object obj)
      用于比較兩個(gè)對(duì)象的地址值是否相同昨寞。
      我們獲取對(duì)象后瞻惋,比較它的地址值意義不大。所以也會(huì)對(duì)這個(gè)方法進(jìn)行重寫(xiě)援岩。
      重寫(xiě)要完成什么功能歼狼,是根據(jù)需求定的。
(3)==和equals的用法:
    A:==怎么用享怀?
        **可以用于比較基本數(shù)據(jù)類型羽峰,比較的就是基本數(shù)據(jù)類型的值是否相等。
        **可以用于比較引用數(shù)據(jù)類型添瓷,比較的是對(duì)象的地址值是否相等梅屉。
    B:equals怎么用?
        equals只能用于比較引用數(shù)據(jù)類型的鳞贷。
        **Object提供的equals是用于比較對(duì)象地址值是否相同坯汤。
        **自定義類中,如果重寫(xiě)了equals方法搀愧,那么就是按照你自己的需求來(lái)比較的惰聂。

24、package關(guān)鍵字

(1)包:其實(shí)就是文件夾咱筛。用于區(qū)分不同包下相同的類名搓幌。
(2)好處:
    A:對(duì)類文件進(jìn)行分類管理。
    B:給類提供了多層命名空間
        aaa.Demo
        bbb.Demo
    C:寫(xiě)在程序文件的第一行眷蚓。
    D:包也是一種封裝形式鼻种。

25、import關(guān)鍵字

(1)導(dǎo)入包的關(guān)鍵字
(2)格式:
    import 包名;
(3)注意:
    A:一個(gè)程序文件中只有一個(gè)package沙热,可以有多個(gè)import叉钥。
    B:用來(lái)導(dǎo)包中的類罢缸,不導(dǎo)入包中的包。
    C:通常寫(xiě)import  mypack.Demo投队,明確自己使用的類枫疆。  
(4)關(guān)鍵字的順序
    類,包敷鸦,導(dǎo)包這些關(guān)鍵的順序息楔。
    包 -- >  到包 -- > 類

26、不同修飾符可以修飾哪些內(nèi)容

        本類中 同一個(gè)包中 不同包中的子類中 不同包中
private     OK  
默認(rèn)      OK  Ok      
protected   OK  Ok      OK
public      OK  Ok      OK          Ok

        類   構(gòu)造方法    成員變量    成員方法        
private         OK      OK      OK
默認(rèn)      Ok  Ok      Ok      OK
protected       OK      OK      Ok
public          Ok  Ok      OK      OK
static                  OK      Ok
final       Ok          OK      OK
abstract    Ok                  OK

一般格式:
    成員變量:
    權(quán)限修飾符+static/final+數(shù)據(jù)類型+成員變量名
    public static final int NUM = 10;
    
    成員方法:
    權(quán)限修飾符+static/final/abstract+返回類型+方法名

27扒披、內(nèi)部類(次重點(diǎn))

(1)把一個(gè)類定義在某個(gè)類中的值依,這個(gè)類就被稱為內(nèi)部類,內(nèi)置類碟案,嵌套類愿险。
(2)訪問(wèn)特點(diǎn):
    A:內(nèi)部類可以直接訪問(wèn)外部類中的成員,因?yàn)閮?nèi)部類持有外部類的引用价说,
      格式為:外部類名.this
    B:外部類要想訪問(wèn)內(nèi)部類的成員辆亏,必須創(chuàng)建對(duì)象訪問(wèn)。
(3)內(nèi)部類的訪問(wèn)格式:
    A:當(dāng)內(nèi)部類定義在外部類的成員位置鳖目,而且非私有扮叨,則可以在其他外部類中直接建立內(nèi)部類對(duì)象
      格式:外部類名.內(nèi)部類名  變量名 = new 外部類對(duì)象.內(nèi)部類對(duì)象
        如:Outer.Inner in = new Outer().new Inner()
    B:當(dāng)內(nèi)部類在外部類成員位置,且被static修飾時(shí)
        **外部其他類可直接訪問(wèn)靜態(tài)內(nèi)部類的非靜態(tài)成員
          格式:new 外部類名.內(nèi)部類名().內(nèi)部類成員
          如:new Outer.Inner().function();
        **外部其他類可直接訪問(wèn)靜態(tài)內(nèi)部類的靜態(tài)成員
          格式:new 外部類名.內(nèi)部類名.內(nèi)部類成員
          如:new Outer.Inner.function();
(4)什么使用時(shí)候內(nèi)部類呢领迈?
    假如有A類和B類彻磁,A類想直接訪問(wèn)B類的成員,B類訪問(wèn)A類成員的時(shí)候惦费,
    需要?jiǎng)?chuàng)建A類對(duì)象進(jìn)行訪問(wèn)兵迅,這個(gè)時(shí)候,就可以把A類定義為B類的內(nèi)部類薪贫。
(5)內(nèi)部類的位置
    A:成員位置
        **可以被private修飾(Body,Heart)
        **可以被static修飾刻恭。(它訪問(wèn)的外部類的成員必須是靜態(tài)的)    
    B:局部位置
        **可以直接訪問(wèn)外部類中的成員瞧省,因?yàn)檫€持有外部類的持用
        也可以直接訪問(wèn)局部成員,但是局部成員要用final修飾鳍贾。      
    注意:局部?jī)?nèi)部類不能用private和static修飾     
(6)通過(guò)class文件我們就可以區(qū)分是否帶有內(nèi)部類鞍匾,以及內(nèi)部類的位置
    Outer$Inner:成員內(nèi)部類
    Outer$1Inner:局部?jī)?nèi)部類

28浦徊、匿名內(nèi)部類(局部?jī)?nèi)部類的簡(jiǎn)寫(xiě)) (重點(diǎn))

    (1)前提:繼承一個(gè)類或者實(shí)現(xiàn)一個(gè)接口
    (注意不要弄混匿名內(nèi)部類的前提和多態(tài)的前提)
    (2)格式:
        new 父類名或者接口名()
        {
            重寫(xiě)父類方法或者實(shí)現(xiàn)接口中的方法则拷。
            也可以自定義其他方法弊琴。
        };
    (3)什么時(shí)候定義匿名內(nèi)部類篇亭?
        匿名內(nèi)部類只是為了簡(jiǎn)化書(shū)寫(xiě)突那,匿名內(nèi)部類有局限,通常定義匿名內(nèi)部類時(shí)秃诵,該類方法不超過(guò)3個(gè)
    (4)匿名內(nèi)部類的好處和弊端:
        好處:簡(jiǎn)化代碼書(shū)寫(xiě)
        弊端:
            不能直接調(diào)用自己的特有方法
            不能執(zhí)行強(qiáng)轉(zhuǎn)換動(dòng)作
            如果該類里面方法較多肥矢,不允許使用匿名內(nèi)部類

29、模板設(shè)計(jì)模式:

在定義功能時(shí)符糊,功能的一部分是確定的凫海,有一部分是不確定的,而且確定的部分在使用不確定的部分男娄,
可將不確定的部分暴露出去行贪,由該類的子類去完成。
如:求一段程序的運(yùn)行時(shí)間例子模闲。

30建瘫、異常

(1)程序運(yùn)行過(guò)程中的不正常現(xiàn)象就叫異常尸折。
(2)導(dǎo)致程序運(yùn)行不正常的現(xiàn)象有很多啰脚,所以,就有很多的異常對(duì)象翁授。
   而這些異常對(duì)象存在著共性的內(nèi)容拣播,所以,可以不斷的進(jìn)行抽取收擦。最終形成了異常的體系結(jié)構(gòu)贮配。
   異常體系的根類是:Throwable
   Throwable:
    |--Error:重大的問(wèn)題,我們處理不了塞赂。也不需要編寫(xiě)代碼處理泪勒。比如說(shuō)內(nèi)存溢出。
    |--Exception:一般性的錯(cuò)誤宴猾,是需要我們編寫(xiě)代碼進(jìn)行處理的圆存。
        |--RuntimeException:運(yùn)行時(shí)異常,這個(gè)我們也不需要處理仇哆。
                            其實(shí)就是為了讓他在運(yùn)行時(shí)出問(wèn)題沦辙,然后我們回來(lái)修改代碼。
(3)異常的分類        
    異常有兩種:
    編譯時(shí)被檢測(cè)異常:
        該異常在編譯時(shí)讹剔,如果沒(méi)有處理(沒(méi)有拋也沒(méi)有try)油讯,編譯失敗。
        該異常被標(biāo)識(shí)延欠,代表這可以被處理陌兑。
    運(yùn)行時(shí)異常(編譯時(shí)不檢測(cè))
        在編譯時(shí),不需要處理由捎,編譯器不檢查兔综。
        該異常的發(fā)生,建議不處理,讓程序停止软驰。需要對(duì)代碼進(jìn)行修正涧窒。
(4)異常體系的特點(diǎn):
    異常體系中的所有類及其子類對(duì)象都具備可拋性。也就是說(shuō)可以被throw和throws關(guān)鍵字所操作碌宴。
(5)main方法是如何處理異常的杀狡。
    A:在main里面編寫(xiě)代碼進(jìn)行處理
    B:交給jvm自己進(jìn)行處理。采用的是jvm的默認(rèn)處理方式贰镣。
      其實(shí)就是相當(dāng)于調(diào)用了異常對(duì)象的printStackTrace()方法呜象。
(6)Throwable類的學(xué)習(xí)
    getMessage():獲取異常信息,返回字符串碑隆。
    toString():獲取異常類名和異常信息恭陡,返回字符串。
    printStackTrace():獲取異常類名和異常信息上煤,以及異常出現(xiàn)在程序中的位置休玩。返回值void。
(7)異常的處理·
    A:try...catch...finally
    基本格式:
        try
        {
            可能出現(xiàn)異常的代碼
        }
        catch(異常對(duì)象)
        {   
            異常處理代碼
        }
        finally
        {
            釋放資源
        }
    
    變形格式:
        try...catch
        try...catch...catch...
        try...catch...catch...finally
    **多個(gè)異常同時(shí)被捕獲的時(shí)候劫狠,記住一個(gè)原則:
        先逮小的拴疤,再逮大的。
    **finally:永遠(yuǎn)被執(zhí)行独泞,除非退出jvm呐矾。System.exit(0);
        面試題2個(gè)。
        ***:final,finally,finalize區(qū)別懦砂。
           final是最終的意思蜒犯。它可以用于修飾類,成員變量荞膘,成員方法罚随。
           它修飾的類不能被繼承,它修飾的變量時(shí)常量羽资,它修飾的方法不能被重寫(xiě)淘菩。

           finally:是異常處理里面的關(guān)鍵字。
           它其中的代碼永遠(yuǎn)被執(zhí)行屠升。特殊情況:在執(zhí)行它之前jvm退出瞄勾。System.exit(0);

           finalize:是Object類中的一個(gè)方法。
           它是于垃圾回收器調(diào)用的方式弥激。

        ***:假如catch中有return語(yǔ)句, finally里中的代碼會(huì)執(zhí)行嗎愿阐?
           是在return前微服,還是在return后呢?
           會(huì)缨历,在return前執(zhí)行finally里面的代碼以蕴。
(8)Exception和RuntimeException的區(qū)別
    A:Exception:一般性的錯(cuò)誤糙麦,是需要我們編寫(xiě)代碼進(jìn)行處理的。  
    B:RuntimeException:運(yùn)行時(shí)異常丛肮,這個(gè)我們也不需要處理赡磅。
                   其實(shí)就是為了讓他在運(yùn)行時(shí)出問(wèn)題,然后我們回來(lái)修改代碼宝与。
        在用throws拋出一個(gè)的時(shí)候焚廊,如果這個(gè)異常是屬于RuntimeException的體系的時(shí)候,
        我們?cè)谡{(diào)用的地方可以不用處理习劫。(RuntimeException和RuntimeException的子類)
        
        在用throws拋出一個(gè)的時(shí)候咆瘟,如果這個(gè)異常是屬于Exception的體系的時(shí)候,
        我們?cè)谡{(diào)用的地方必須進(jìn)行處理或者繼續(xù)拋出诽里。
(9)自定義異常
    定義類繼承Exception或者RuntimeException
    1,為了讓該自定義類具備可拋性袒餐。
    2,讓該類具備操作異常的共性方法谤狡。
    class MyExcepiton extends Exception
    {
        MyExcepiton(){}

        MyExcepiton(String message)
        {
            super(message);
        }
    }

    class MyException extends RuntimeException
    {
        MyExcepiton(){}

        MyExcepiton(String message)
        {
            super(message);
        }
    }
(10)throws和throw的區(qū)別
    A:有throws的時(shí)候可以沒(méi)有throw灸眼。
       有throw的時(shí)候,如果throw拋的異常是Exception體系墓懂,那么必須有throws在方法上聲明焰宣。
    B:throws用于方法的聲明上,其后跟的是異常類名拒贱,后面可以跟多個(gè)異常類宛徊,之間用逗號(hào)隔開(kāi)
       throw用于方法體中,其后跟的是一個(gè)異常對(duì)象名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逻澳,一起剝皮案震驚了整個(gè)濱河市闸天,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斜做,老刑警劉巖苞氮,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瓤逼,居然都是意外死亡笼吟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)霸旗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贷帮,“玉大人,你說(shuō)我怎么就攤上這事诱告∧焓啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锄禽。 經(jīng)常有香客問(wèn)我潜必,道長(zhǎng),這世上最難降的妖魔是什么沃但? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任磁滚,我火速辦了婚禮,結(jié)果婚禮上宵晚,老公的妹妹穿的比我還像新娘垂攘。我一直安慰自己,他們只是感情好坝疼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布搜贤。 她就那樣靜靜地躺著,像睡著了一般钝凶。 火紅的嫁衣襯著肌膚如雪仪芒。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天耕陷,我揣著相機(jī)與錄音掂名,去河邊找鬼。 笑死哟沫,一個(gè)胖子當(dāng)著我的面吹牛饺蔑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗜诀,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼猾警,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了隆敢?” 一聲冷哼從身側(cè)響起发皿,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拂蝎,沒(méi)想到半個(gè)月后穴墅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡温自,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年玄货,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悼泌。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡松捉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馆里,到底是詐尸還是另有隱情惩坑,我是刑警寧澤掉盅,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站以舒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏慢哈。R本人自食惡果不足惜蔓钟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卵贱。 院中可真熱鬧滥沫,春花似錦、人聲如沸键俱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)编振。三九已至缀辩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間踪央,已是汗流浹背臀玄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畅蹂,地道東北人健无。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像液斜,于是被迫代替她去往敵國(guó)和親累贤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容