java基礎(chǔ)知識(shí)

面向?qū)ο蟮奶卣?/p>

面向?qū)ο缶幊陶Z(yǔ)言有封裝、繼承、抽象、多態(tài)4個(gè)主要的特征。

1)封裝:封裝是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ),封裝的目標(biāo)就是要實(shí)現(xiàn)軟件部件的“高內(nèi)聚、低耦合”,防止程序相互依賴而帶來(lái)的變動(dòng)影響。在面向?qū)ο蟮木幊陶Z(yǔ)言中,對(duì)象是封裝的基本單位。面向?qū)ο蟮姆庋b就是把描述一個(gè)對(duì)象的屬性和行為的代碼封裝到一個(gè)“模塊”中,即一個(gè)類中。只要把變量和訪問(wèn)這個(gè)變量的方法放在一起,將一個(gè)類中的成員變量全部定義為私有的,只有這個(gè)類的方法可以訪問(wèn),這就基本上實(shí)現(xiàn)了對(duì)象的封裝。

2)抽象:抽象就是找出一些事物的相似和共性之處,然后將這些事物歸為一個(gè)類,這個(gè)類只考慮這些事物的相似和共性之處,并且會(huì)忽略與當(dāng)前主題和目標(biāo)無(wú)關(guān)的哪些部分,將注意力集中在與當(dāng)前目標(biāo)有關(guān)的方面。

3)繼承:繼承是子類自動(dòng)共享父類數(shù)據(jù)和方法的機(jī)制,這是類之間的一種關(guān)系,提高了軟件的重用性和可擴(kuò)展性。

4)多態(tài):多態(tài)是指程序中定義的引用變量所指向的具體類型和通過(guò)該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行時(shí)才確定,即一個(gè)引用變量到底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法,必須在程序運(yùn)行期間才能決定。因?yàn)樵诔绦蜻\(yùn)行時(shí)才能確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變量綁定到各種不同的類實(shí)現(xiàn)上,從而導(dǎo)致該引用調(diào)用的具體方法隨之改變,即不修改程序代碼就可以改變程序運(yùn)行時(shí)所綁定的具體代碼,讓程序可以選擇多個(gè)運(yùn)行狀態(tài),這就是多態(tài)性。方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),、重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。

Integer和int的區(qū)別

1)int是java提供的8中原始數(shù)據(jù)類型之一,java為每個(gè)呀un是數(shù)據(jù)類型提供了封裝類,Integer是java為int提供的封裝類(封裝類=數(shù)據(jù)+操作)。

2)int的默認(rèn)值為0,而Integer的默認(rèn)值為null,即Integer可以區(qū)分出為賦值和值為0的區(qū)別,int無(wú)法表達(dá)出為賦值的情況。例如:想要表達(dá)出沒(méi)有參加考試和考試成績(jī)?yōu)?的區(qū)別,只能使用Integer。在JSP中Integer的默認(rèn)值為null,所以用EL表達(dá)式在文本框中顯示時(shí),值為空表字符串,而int默認(rèn)值為0,所以用EL表達(dá)式在文本框中顯示時(shí),結(jié)果為0,所以,int不適合作為WEB層的表單數(shù)據(jù)的類型。

3)Integer提供了一系列與int相關(guān)的操作方法。

“==”和equals方法的區(qū)別

1)“==”操作符是用來(lái)比較連個(gè)變量的值是否相等,也就是用來(lái)比較變量所對(duì)應(yīng)的內(nèi)存中所存儲(chǔ)的數(shù)值是否相同,要比較兩個(gè)基本類型的數(shù)據(jù)或兩個(gè)引用變量是否相等,只能用==操作符。

2)equals方法是用來(lái)比較兩個(gè)獨(dú)立對(duì)象的內(nèi)容是否相等。

&與&&的區(qū)別

1)&和&&都可以用作邏輯與的運(yùn)算符,表示邏輯與(and),當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為true時(shí),整個(gè)運(yùn)算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false。

2)&&還具有短路的功能,即如果第一個(gè)表達(dá)式為false,則不再計(jì)算第二個(gè)表達(dá)式,例如,對(duì)于if(str!=null&&!str.equals(“”))表達(dá)式,當(dāng)str為null時(shí),后面的表達(dá)式不會(huì)執(zhí)行,所以不會(huì)出現(xiàn)NullPointerException如果將&&改為&,則會(huì)拋出NullPointerException異常。If(x==33&++y>0)y會(huì)增長(zhǎng),If(x==33&&++y>0)不會(huì)增長(zhǎng)

3)&還可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是boolean類型時(shí),&表示按位與操作,我們通常使用0x0f來(lái)與一個(gè)整數(shù)進(jìn)行&運(yùn)算,來(lái)獲取該整數(shù)的最低4個(gè)bit位,例如,0x31&0x0f的結(jié)果為0x01。

String s="a"+"b"+"c"+"d";共創(chuàng)建了多少個(gè)對(duì)象?

只創(chuàng)建了一個(gè)String對(duì)象。

Java單例模式

概念:

java中單例模式是一種常見(jiàn)的設(shè)計(jì)模式,單例模式分三種:懶漢模式單例、餓漢模式單例、登記模式的那里三種。

單例模式有一下特點(diǎn):
  1、單例類只能有一個(gè)實(shí)例。
  2、單例類必須自己自己創(chuàng)建自己的唯一實(shí)例。
  3、單例類必須給所有其他對(duì)象提供這一實(shí)例。

單例模式確保某個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容