java復習筆記期末考試復習_第1頁
java復習筆記期末考試復習_第2頁
java復習筆記期末考試復習_第3頁
java復習筆記期末考試復習_第4頁
java復習筆記期末考試復習_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

l.-JavaSEJavaEEJavaME指什么?

JavaSE=JavaStandardEdition

JavaEE=JavaEnterpriseEdition

JavaME=JavaMobileEdition

SE主要用于桌面程序控制臺開發(fā)(JFC)

EE企業(yè)級開發(fā)。SP,EJ3)

ME嵌入式開發(fā)(手機,小家電)

2.java優(yōu)點?

Java語言在安全性、平臺無關(guān)性、支持多線程、內(nèi)存

管理等許多方面具有卓越灼優(yōu)點。

3.基本數(shù)據(jù)類型的種類和長度

一個字節(jié)等于8位

基本型別大小最小值最大值

boolean—--—??——

char16-bitUnicode0Unicode2Al6-1

byte8-bit-128+127

short16-bit-2A15+275-1

int32-brt-2A31+2A31-1

long64-bit-2A63+2A63-1

float32-bitIEEE754IEEE754

double64-bitIEEE754IEEE754

void

4.強制轉(zhuǎn)換

在Java中由于繼承和向上轉(zhuǎn)型,子類可以非常自然地轉(zhuǎn)換成父類,但是父類轉(zhuǎn)換成子

類則需要強制轉(zhuǎn)換。因為子類擁有比父類更多的屬性、更強的功能,所以父類轉(zhuǎn)換為子類需

要強制。那么,是不是只要是父類轉(zhuǎn)換為子類就會成功呢?其實不然,他們之間的強制類型

轉(zhuǎn)換是有條件的。

當我們用一個類型的構(gòu)造器構(gòu)造出一個對象時,這人對象的類型就已經(jīng)確定的,也就說

它的本質(zhì)是不會再發(fā)生變化了。在Java中我們可以通過繼承、向上轉(zhuǎn)型的關(guān)系使用父類類

型來引用它,這個時候我們是使用功能較弱的類型引用功能較強的對象,這是可行的。但是

將功能較弱的類型強制轉(zhuǎn)功能較強的對象時,就不一定可以行了。

基本數(shù)據(jù)類型之間的強制類型轉(zhuǎn)換:

java規(guī)范強烈的不建議布爾型和整型或者浮點型的進行轉(zhuǎn)化,很容易出錯

5.關(guān)于static

sialic方法屬于整個類,它不能操縱和處理屬于某個對象的成員變量,只能處理屬于整個類

的成員變量,即static方法只能處理本類中的static變量或調(diào)用static方法。

6.調(diào)用權(quán)限

public是公共方法,在你的這個項目里面你所有的類都能訪問這個方法,不加的話

就是默認的default這個是只能在你當前包里才能調(diào)用這個方法

1.private:Java語言中對訪問權(quán)限限制的最窄的修飾符,一般稱之為“私有的”。被其

修飾的屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。

2.default:即不加任何訪問修飾符,通常稱為“默認訪問權(quán)限"或者”包訪問權(quán)限”。

該模式下,只允許在司一個包中進行訪問。

3.protected:介于public和private之間的一種訪問修飾符,一般稱之為“保護訪問

權(quán)限”。被其修飾的屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的

包中也可以訪問。

4.public:Java語言中訪問限制最寬的修飾符,一般稱之為“公共的"。被其修飾的

類、屬性以及方法不僅可以跨類訪問,而且允許跨包訪問

7.數(shù)據(jù)初始化

不管程序有沒有顯示為初始化,Java虛擬機都會先自動給它初始化為默認值。

對于數(shù)組:

1、整數(shù)類型(byte、short.int.long)的基本類型變量的默認值為0。

2、單精度浮點型(float)的基本類型變量的默認值為O.Of。

3、雙精度浮點型(double)的基本類型變量的默認值為O.Od。

4、字符型(char)的基本類型變量的默認為7u0000-0

5、布爾性的基本類型變量的默認值為false0

6、引用類型的變量是默認值為nulL

7、數(shù)組引用類型的變量的默認值為nulL當數(shù)組變量的實例后,如果沒有沒有顯示的

為每個元素賦值,Java就會把該數(shù)組的所有元素初始化為其相應類型的默認值。

注意:對于單個數(shù)據(jù),如果不進行初始化不能對其進行操作,編譯時報錯

8.數(shù)組遍歷的三種方法

l.for循環(huán)

2.for-each語句遍歷,for(datatypex:arrayname)

3.迭代器Iterator遍歷Listlist=newArrayList();

Iteratoriterator=list.iterator();

while(iterator.hasNext()){

inti=lnteger.parselnt(iterator.next().toString());

System.out.println(i);

)

9.方法重載和重寫

區(qū)別重載重寫(徵寫)

英文OverloadingOveriding

定義方法名稱相同,參數(shù)的類型或個方法名稱、參數(shù)類型、返回值類型

數(shù)不同全部相同

對權(quán)限沒有要求被重寫的方法不能擁有更嚴格的權(quán)

范圍發(fā)生在中發(fā)生在繼承類中

方法重載所謂方法重載是指在一個類中,多個方法的方法名相同,但是參數(shù)列表不同。

參數(shù)列表不同指的是參數(shù)個數(shù)、參數(shù)類型或者參數(shù)的順序不同。

1.在使用重載時只能通過不同的參數(shù)列表,必須具有不同的參數(shù)列表。例如,不同的參

類型,不同的參數(shù)個數(shù),不同的參數(shù)順序。

2.不能通過訪問權(quán)限、返回類型、拋出的異常進行重載。

3.方法的異常類型和數(shù)目不會對重載造成影響。..

4.可以有不同的返回類型,只要參數(shù)列表不同就可以了。

5.可以有不同的訪問修飾符。

方法重寫:當子類需要修改父類的一些方法進行擴展,增大功能,程序設計者常常把這

樣的一種操作方法稱為重寫,也叫稱為覆寫或覆蓋。所謂方法的重寫是指子類中的方法與父

類中繼承的方法有完全相同的返回值類型、方法名、參數(shù)個數(shù)以及參數(shù)類型。注意,重寫方

法時,可以增大父類中的方法權(quán)限,但是不能縮小父類的方法權(quán)限。當父類方法為private

子類不能將其重寫。

super?關(guān)鍵字可以從二類訪問父類中的內(nèi)容,如果要訪問被重寫過的方法,使用"super.

方法名(參數(shù)列表)"的形式調(diào)用。

10.異常處理

(1)Java把異常當作對象來處理,并定義一個基類java.Iang.Throwable作為所有異常

的超類。在JavaAPI中已經(jīng)定義了許多異常類,這些異常類分為兩大類,錯誤Error和異常

ExceptionoError和Exception的區(qū)別:Error通常是災難性的致命的錯誤,是程序無法控制

和處理的,當出現(xiàn)這些異常時,Java虛擬機(JVM)一般會選擇終止線程;Exception通常情

況下是可以被程序處理的,并且在程序中應該盡可能的去處理這些異常。

(2)層次結(jié)構(gòu)

(3)處理方法

Try-catch方法

try塊:用于捕獲異常。其后可接零個或多個catch塊,如果沒有catch塊,見必須

跟一個finally塊。

catch塊:用于處理try捕獲到的異常。

finally塊:無論是否捕獲或處理異常,finally塊里的語句都會被執(zhí)行。當在try塊

或catch塊中遇到return語句時,finally語句塊將在方法返回之前被執(zhí)行。

編寫多重catch語句塊注意順序問題:先小后大,即先子類后父類。

throws方法聲明拋出異常,只是拋出異常,并沒有去處理它

(4)自定義異常

?創(chuàng)建自定義異常類。

?在方法中通過throw關(guān)鍵字拋出異常對象。

?如果在當前拋出異常的方法中處理異常,可以使用try-catch語句捕獲并處理;否

則在方法的聲明處通過throws關(guān)鍵字指明要拋出給方法調(diào)用者的異常,繼續(xù)進行下

一步操作。

?在出現(xiàn)異常方法的調(diào)用者中捕獲并處理異常。

classMyExceptionextendsException{

privateintdetail;

MyException(inta){

detai1=a;

pub1icStringtoStringO{

return^MyExceptiai[*+detail+*]*:

)

)

publicclassTestMyException{

staticvoidcompute(inta)throwsMyException{

System,out.println(*Calledcompute(*+a+")”);

if(a>10){

thrownewMyException(a):

)

System,out.printInt^Normalexit!*);

)

publicstaticvoidmain(String[]args){

try(

computed);

compute(20);

)catch(MyExceptionme){

System,out.println(*Caught*?me);

)

)

)

11.類的繼承

繼承的限制

1.java只能顯示單繼承,即一個類只能有一個父類

2.不允許多重繼承(多重繼承指的是一個類可以I可時從多于一個的父類那里繼承行為和特

征,Java為了保證數(shù)據(jù)安全,它只允許單繼承。子類只能繼承一個父類,也就是說只能存在

單一繼承,但是卻可以實現(xiàn)多個接口,間接實現(xiàn)了多重集成)

3.繼承只能繼承非私有的屬性和方法

4.構(gòu)造方法不能被繼承

構(gòu)造方法

如果子類需要繼承父類的含參構(gòu)造函數(shù)則需要使用super命令(如果父類包含多個含

參構(gòu)造函數(shù)則依據(jù)參數(shù)使用super命令)

如果父類建立了構(gòu)造函數(shù)且都含有參數(shù),則子類必須使用super命令

12.Object類

Object類存儲在java.lang包中,是所有java類(Object類除外)的終極父類。當

然,數(shù)組也繼承了Object類。然而,接口是不繼承Object類的。一般來說,我們所

建立的類都會有如下方法:

?protectedObjectclone()

?booleanequals(Objectobj)

?protectedvoidfinalize()

?Class<>getClass()

?inthashCode()

?voidnotify()

?voidnotifyAII()

?StringtoString()

?voidwait()

?voidwait(longtimeout)

?voidwait(longtimeout,intnanos)

這是因為所有其他java類都繼承了Object類。

13.抽象類

用關(guān)鍵字abstract修飾的類就是抽象類,它是所有子類的公共屬性(數(shù)據(jù))和行為方法的

集合,抽象類沒有具體對象,是處于組織概念的層次關(guān)系而存在的類。

用關(guān)鍵字abstract修飾的方法就是抽象方法(沒有抽象變量),抽象方法只有方法頭,后

面跟一個分號(;),沒有方法體,抽象方法的方法體可在其子類中根據(jù)子類的具體情況來實

現(xiàn),抽象方法只存在抽象類或接口中。

14.finals

聲明為final的類不能是父類,即final不再派生子類,final可以用來修飾變量和方法。

final類是處在類的最底層的類,如果沒必要再派生子類,通常用final關(guān)鍵字來修飾,

表明它是最終類,被final修飾的類通常是有固定作用,完成一定標準功能的類,例如java

庫中的數(shù)學類Math等。

abstract和final不能同時使用,關(guān)鍵字abstract不能修飾實例變量,也不能與private、

static、final等同時修飾一個成員方法,并且abstract類必須在abstract類中。關(guān)鍵字static

修飾的方法只能修飾static成員變量,同時static修飾的成員變量和方法不能this引用

15.接口

接口(Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合。接口通常

以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

如果一個類只由抽象方法和全局常量組成,那么這種情況下不會將其定義為一個抽象類。

只會定義為一個接口,所以接口嚴格的來講屬于一個特殊的類,而這個類里面只有抽象方法

和全局常量,就連構(gòu)造方法也沒有。

由于接口里面存在抽象方法,所以接口對象不能直接使用關(guān)鍵字new進行實例化。接

口的使用原則如下:

(1)接口可以多繼承,如interfaceCextendsA,B{...}//使用的是extends

(2)接口必須要有子類,但此時一個子類可以使用implements關(guān)鍵字實現(xiàn)多個接口;

(3)接口的子類(如果不是抽象類),那么必須要覆寫凄口中的全部抽象方法;

(4)接口的對象可以利用子類對象的向上轉(zhuǎn)型進行實例化。

注意:,接口中的訪問權(quán)限只有一種:public,即:定義接口方法和全局常量的時候就算

沒有寫上public,那么最終的訪問權(quán)限也是public,注意不是default。若子類中沒用public

修飾,則訪問權(quán)限變嚴格了,給子類分配的是更低的訪問權(quán)限。所以,在定義接口的時候強

烈建議在抽象方法前加上public0

參數(shù)抽象類接口

接口完全是抽象的。它根本

默認的方法實現(xiàn)它可以有默認的方法實現(xiàn)

不詼方卻勺實現(xiàn)

子類使用extends關(guān)鍵字來繼承抽象子類使用關(guān)鍵字

類。如果子類不是抽象類的話,它需implements來實現(xiàn)接口。

實現(xiàn)

要提例由象類中所有聲明的方法的實它需要提供接口中所有聲明

現(xiàn)。的方;去的實現(xiàn)

構(gòu)造器抽象類可以有構(gòu)造器接口不能有構(gòu)造器

除了你不能實例化抽象類之外,它和

與正常Java類的區(qū)別接口是完全不同E勺類型

普通Java類沒有任何區(qū)別

接口方法默認修飾符是

抽象方法可以有public、protected

訪問修飾符public。你不可以使用其它

和defaul盛些修福5

修飾符。

抽象方法可以有main方法并且我們可接口沒有main方法,因此我

main方法

儺行它們不能國亍它。

抽象方法可以繼承一個類和實現(xiàn)多個接口只可1溜承一個或多個

多繼承

接口其它接口

接口是稍微有點慢的,因為

它比接口速度要快它需喇司去尋切類中實

現(xiàn)的方法。

如果你往抽象類中添力嗡的方法,你如果你往接口中添加方法,

添加新方法可以給它提供默認的實現(xiàn)。因此你不那么你必須改變實現(xiàn)該接口

需要改變你現(xiàn)在的代碼。幅

15.塑型

塑型(type-casting)又稱為類型轉(zhuǎn)換方式。

將對象暫時當成更一般的對象來對待,并不改變其類型只能被塑型為父類類型。

當一個類對象被塑型為其父類后,它提供的方法會減少。

方法的查找一總是在變量聲明時所屬的類中進行查找。

16.多態(tài)

多態(tài)的定義:指允許不同類的對象對同一消息做出響應。即同一消息可以根據(jù)發(fā)送對象

的不同而采用多種不同的行為方式。(發(fā)送消息就是函數(shù)調(diào)用)。

多態(tài)存在的三個必要條件

一、要有繼承;

二、要有重寫;

三、父類引用指向子類對象。

多態(tài)性有兩種:

1)編譯時多態(tài)性

對于多個同名方法,如果在編譯時能夠確定執(zhí)行同名方法中的哪一個,則稱為編譯時多態(tài)

性.

2)運行時多態(tài)性

如果在編譯時不能確定,只能在運行時才能確定執(zhí)行多個同名方法中的哪一個,則稱為運

行時多態(tài)性

具有繼承關(guān)系的多態(tài)調(diào)用

在繼承鏈中對象方法的調(diào)用存在一個優(yōu)先級:this.show(O)xsuper.show(O)x

this.show((super)0)ssuper.show((super)O)。

17.虛方法調(diào)用

Java虛方法你可以理解為java里所有被overriding的方法都是virtual的,所有重寫

的方法都是override的。

虛方法和抽象方法并不是同一個概念。

18.1/0流

Java中的流,可以從不同的角度進行分類。按照數(shù):輸入流和輸出流。按照處理數(shù)據(jù)

單位不同可以分為:字節(jié)流和字符流。按照實現(xiàn)功能不同可以分為:節(jié)點流和處理流。

輸出流:從程序輸出到文件

輸入流:從文件輸入到程序

字節(jié)流:一次讀入或讀出是8位二進制。

字符流:一次讀入或讀出是16位二進制。

?Jdk提供的流繼承了四大類:Inputstream(字節(jié)輸入流),Outputstream(字節(jié)輸出流),

Reader(字符輸入流),Writer(字符輸出流).

常用的類和方法:

Filewriterwriter=newFileWriter(fileName);

writer.close();

FileWriterwriter=newFileWriter(filename,true);〃追加重復內(nèi)容

BufferWriterout=newBufferWriter(newFileWriter(fileName));〃緩沖器流,高效

BufferReaderin二newBufferReader(newFileWriter(lleName));

DataOutputStreamout=newDataOutputStream(newFileOutputStream((fileName)));//

DatalnputStreamout=newDatalnputStream(newFilelnputStream((fileName)));//-iS

還可以嵌套一個BufferedlnputStream,提高效率

對象序列化

寫對象:ObjectOulputStreamofsl=newObjectOutputStream(new

FileOutputStream(ofs));

從文件中讀對象:Objectinputstreamifsl=newObjectlnputStream(new

FilelnputStream(ifs));

迭代遍歷:lterator<Student>i=students.values(;.iterator();

while(i.hasNext())

(

ofsl.wrteObject(i.next());

)

19.集合

Collection是最基本的集合接口List接口和Set接口的父接口,一個Collection代

表一組Object,即Collection的元素(Elements)o

Set接口同樣是Collection接口的一個子接口,它表示數(shù)學意義上的集合概念,Set

中不包含重復的元素,即Set中不存兩個這樣的元素el和e2,使得el.equals(e2)為

true。

Map:key-value的鍵值對,key不允許重復,value可以

1、嚴格來說Map并不是一個集合,而是兩個集合之間的映射關(guān)系。

2、這兩個集合沒每一條數(shù)據(jù)通過映射關(guān)系,我們可以看成是一條數(shù)據(jù)。即

Entry(key,value)oMcp可以看成是由多個Entry組成。

3、因為Map集合即沒有實現(xiàn)于Collection接口,也沒有實現(xiàn)Iterable接口,所

以不能對Map集合進行for-each遍歷。

接口實現(xiàn)歷史集合類

SetHashSet

TreeSet

ListArrayListVector

LinkedListStack

MapHashMapHashtable

TreeMapProperties

20.多線程

兩種實現(xiàn)方式:

新建一個繼承Thread類的線程類,其中有一個重寫的run方法

新建一個實現(xiàn)

溫馨提示

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

評論

0/150

提交評論