国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

java筆記

2019-11-18 14:23:19
字體:
供稿:網(wǎng)友

  一、java中的char類型是16位,其范圍是0??65536,沒有負數(shù)的char。在java 中,char是int的一個子集。
二、ASCII字符集占用了Unicode字符集的前127個值
三、Java 的自動類型轉(zhuǎn)換:兩個條件(1、這2種類型是兼容的,2、目的類型數(shù)的范圍比原類型的大;)。

第六章

一、new 運算符是在運行期間為對象分配內(nèi)存的,即動態(tài)性;但內(nèi)存是有限的,因此new 有可能由于內(nèi)存不足而無法給一個對象分配內(nèi)存。此時就會出現(xiàn)異常。

二、類是一個邏輯構(gòu)造,對象有物理的真實性;

三、當(dāng)將一個對象引用賦值給另一個對象時,你并沒有創(chuàng)建對象的一個拷貝,而是僅僅對引用的一個拷貝。

四、構(gòu)造函數(shù)的任務(wù)就是初始化一個對象的內(nèi)部狀態(tài),以便使創(chuàng)建的實例變量能夠完全初始化,可以被對象馬上使用。當(dāng)new 創(chuàng)建對象時,每個對象被他的構(gòu)造函數(shù)指定的參數(shù)初始化。

第七章

一、方法重載:同一個類中的兩個或兩個以上的方法可以有同一個名字,只要他們的參數(shù)聲明不同即可。他是實現(xiàn)多態(tài)性的一種方法。
二、方法重載支持多態(tài)性,因為他是java 實現(xiàn)“一個接口,多個方法”范型的一種方式。重載的價值在于他答應(yīng)相關(guān)的方法可以使用同一個名字來訪問。
三、當(dāng)創(chuàng)建自己的類時,為了方便高效的構(gòu)造對象,必須為同一構(gòu)造函數(shù)提供多種形式。

四、總的來說,計算機語言給子程序傳遞參數(shù)的方法有兩種:1。按值傳遞(call-by-value);2、引用調(diào)用(call-by-reference)。

當(dāng)一個簡單類型傳遞給一個方法時,使用按值傳遞;對象傳遞則按引用傳遞。


五、 封裝將數(shù)據(jù)和處理數(shù)據(jù)的代碼連接起來。同時也提供另一個重要屬性:訪問控制(access control)。一個成員被訪問取決與修改他的聲明的訪問指示符(access specifier)。java的訪問指示符有public、PRivate、protected.protected僅用于繼續(xù)情況中。外部類對他的private成員變量進行訪問只能通過他的public 方法。在大多數(shù)實際應(yīng)用的類中,有必要僅僅答應(yīng)通過方法來對數(shù)據(jù)操作。


六 、static要害字可使一個類成員的使用完全獨立與該類的任何對象。即他能夠在他的類的任何對象創(chuàng)建之前被訪問,而不必引用任何對象。static 成員的最常見的例子是main()。因為在程序執(zhí)行時必須調(diào)用main()。static變量實質(zhì)就是全局變量。當(dāng)聲明一個對象時,并不產(chǎn)生static變量的拷貝,而是該類所有的實例變量共用同一個static變量。

聲明為static的方法有以下幾條限制:
1、他們僅能調(diào)用其他的static方法。2、他們只能訪問static數(shù)據(jù)。3、他們不能以任何方式引用this或super。
在一個static 方法中引用任何實例變量都是非法的。

八、一個被聲明為final的變量是不可修改的,這就意味著必須再聲明final變量時對他進行初始化。

九、java中的數(shù)組是作為對象來實現(xiàn)的。所有的數(shù)組都擁有l(wèi)ength實例變量。length僅反映了數(shù)組能夠包含的元素的個數(shù)。

一○、嵌套類:在另一個類中定義的類就是嵌套類(nested classes)。
若A嵌套B,則B可訪問A的所有成員,包括private成員;而A不可以 訪問B的任何成員。嵌套類在處理applet時非凡有幫助。


一一、String類:(字符串)
在java中所創(chuàng)建的字符串,包括字符串常量 都是string類型的一個對象。與其他類型對象一樣,string也可以組成數(shù)組。

一二、命令行參數(shù):
java中的命令行參數(shù)是作為字符串存儲在傳遞給main()的string數(shù)組中。

第八章 繼續(xù)(extends)

一、盡管子類中包括超類的所有成員,他不能訪問超類中被聲明為private的成員。一個被定義為private 的類成員為此類私有,他不能被該類外的所有代碼訪問,包括子類。

二、 繼續(xù)的本質(zhì): 一旦已創(chuàng)建了一個定義了對象一般屬性的超類,該超類可以被繼續(xù)以生成非凡用途的類。

三、超類變量可以引用子類對象:

是引用變量的類型??而不是引用對象的類型??決定了什么成員可以被訪問。即 當(dāng)一個子類對象的引用被賦值給一個超類變量時,只能訪問超類定義的對象的一部分。
四、super 的兩種通用形式:1、調(diào)用超類的構(gòu)造函數(shù);2、用來訪問被子類的成員隱藏的超類成員。 當(dāng)一個子類調(diào)用super(),他調(diào)用他的直接超類的構(gòu)造函數(shù)。這樣,super() 總是引用調(diào)用類直接的超類。還有,super()必須是子類構(gòu)造函數(shù)中的第一個執(zhí)行語句。 java支持多級類層次結(jié)構(gòu)。
繼續(xù)的部分價值:他答應(yīng)代碼重用。構(gòu)造函數(shù)以派生的順序被調(diào)用。

五、方法重載:(8、5的內(nèi)容)
在類層次結(jié)構(gòu)中,若子類中的一個方法與他超類中的方法有同樣的方法名和類型聲明,稱子類中的方法重載(override)超類中的方法。當(dāng)從子類中調(diào)用重載方法時,他總是引用子類定義的方法,而超類中的方法將被隱藏。方法覆蓋僅在兩個方法的名稱和類型聲明都相同時才發(fā)生。假如他們不同,那兩個方法就只是重載。

方法重載構(gòu)成java的一個最強大的概念基礎(chǔ):動態(tài)方法調(diào)度(dynamic method dispatch)。動態(tài)方法調(diào)度是一種在運行時而不是在編譯時調(diào)用重載方法的機制。 過程如下:當(dāng)一個重載方法通過超類引用被調(diào)用,java根據(jù)當(dāng)前被引用對象的類型來決定執(zhí)行哪個版本的方法。若引用的對象類型不同,就會調(diào)用一個重載方法的不同版本。即:是被引用對象的類型(而不是引用變量的類型)決定執(zhí)行哪個版本的重載方法。因此,若超類包含一個被子類重載的方法,那么當(dāng)通過超類引用變量引用不同對象類型時,就會執(zhí)行該方法的不同版本。
重載方法答應(yīng)java支持運行時的多態(tài)性。多態(tài)性是面向?qū)ο缶幊痰谋举|(zhì)。重載方法是java實現(xiàn)他的“一個接口,多個方法”的另一種方式。

六、使用抽象類:

當(dāng)創(chuàng)建自己的類庫時會發(fā)現(xiàn),超類中的方法沒有實際意義并不罕見。有兩種方法處理這種情況。1、僅報告一個錯誤信息;2、通過子類重載該方法使他對子類有意義。
任何含有抽象方法的類都必須聲明為抽象類。抽象類沒有對象,即一個抽象類不能通過new操作符直接實例化。而且,不能定義抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。所有抽象類的子類都必須執(zhí)行超類中的所有抽象方法或者他自己也聲明為abstract。


盡管不可能創(chuàng)建一個Figure類型的對象,但可以創(chuàng)建一個Figure類型的引用變量。變量figref聲明為Figure的一個引用,即他可以用來引用任何從Figure派生的對象。

七、Final要害字的三個用途:1、創(chuàng)建一個已命名常量的等價物;其他的兩個用法是應(yīng)用于繼續(xù)的。:2、使用final 防止繼續(xù) ; 3、防止方法重載。


在類之前加final可防止類被繼續(xù);聲明一個final類就含蓄的宣告他的所有方法都是final.



第九章

接口不定義任何實現(xiàn),盡管他與抽象類相似,接口有一個非凡的功能:類可以實現(xiàn)多個接口。相反,類只能繼續(xù)一個超類。

java源程序可以包含下面的四個內(nèi)部部分的任何一個:
1、單個接口聲明(可選) 2、任意數(shù)目的引入語句(可選)3、單個公共類聲明(必須)4、對包來說是私有的任意數(shù)目的類(可選)

一、包(package):包既是命名機制也是可見度控制機制。可在包內(nèi)定義類,且在包外的代碼不能訪問類。package語句定義了一個存儲類的名字空間。java用文件系統(tǒng)目錄來存儲包。目錄名必須和包名完全匹配。

類是java的最小的抽象單元。因為類和包的相互影響,java將類成員的可見度分為四個種類:
1、相同包中的子類;2、相同包中的非子類;3、不同包中的子類;4、既不在相同包又不在相同子類中的類。


若希望一個元素在當(dāng)前包外可見,但僅僅是元素所在類的子類直接可見,則把元素定義為protected.

一個類只有兩個控制級別:默認的或公共的。若一個類聲明為public,他可以被任何其他代碼訪問。若該類默認訪問控制符,他僅可以被相同包中的其他代碼訪問。 當(dāng)一個包被引用,僅僅是該包中聲明成public的項目可以在引入代碼中對非子類可用。

二、接口(interface ):用interface可以指定一個類必須做什么,而不是規(guī)定他如何去做。
1、接口的真正含義:接口和類處于不同的層次中,且與類層次無關(guān)的類實現(xiàn)相同的接口是可行的。
2、在接口中指定的方法沒有默認的實現(xiàn),每個包含接口的類必須實現(xiàn)所有的方法。
3、實現(xiàn)接口的方法必須聲明為public,而且,實現(xiàn)方法的類型必須嚴格與接口定義中指定的類型相匹配。
4、一個接口引用變量僅僅知道被他的接口定義聲明的方法。
5、可以把變量定義成使用接口的對象引用而不是類的類型。任何實現(xiàn)了所聲明接口的類的實例都可以被這樣的一個變量引用。當(dāng)通過這些引用調(diào)用方法時,再實現(xiàn)引用接口的實例的基礎(chǔ)上,方法被正確調(diào)用。 調(diào)用代碼在完全不知“調(diào)用者”的情況下可以通過接口來調(diào)度。

六、若一個類包含一個接口但是不完全實現(xiàn)接口定義的方法,那么該類必須定義為abstract型。并且任何繼續(xù)這個類的類也必須實現(xiàn)所有接口中定義的方法或者將自己定義為abstract類。

可使用接口來引入多個類的共享常量。接口還可以運用要害字extends被其他接口繼續(xù)。其語法與繼續(xù)一樣。當(dāng)一個類實現(xiàn)一個繼續(xù)了另一個接口的接口時,他必須實現(xiàn)接口繼續(xù)鏈表中定義的所有方法。


第十章 異常處理
異常是一種運行時錯誤。java異常是一種描述代碼段中發(fā)生的異常情況的對象。java異常處理通過5個要害字控制:try,catch,throw,throws ,finally.系統(tǒng)產(chǎn)生的異常被java運行時系統(tǒng)自動引發(fā)。手動引發(fā)一個異常,用要害字throw。任何被引發(fā)方法的異常都必須通過throws子句定義。任何方法返回前絕對執(zhí)行的代碼被放置在finally塊中。
所有異常類都是內(nèi)置類throwable的子類。

為防止和處理一個運行時錯誤,只需要把所要監(jiān)控的代碼放進一個try塊即可。進跟著try塊的,包括一個說明希望捕捉的錯誤類型的catch子句。當(dāng)使用多catch語句時,異常子類必須在他們?nèi)魏胃割愔笆褂谩?br />
引發(fā)(throw)有兩種獲得throwable對象的方法:1、在catch 子句中使用參數(shù);2、用new操作符創(chuàng)建。程序執(zhí)行在throw語句之后立即停止;后面的任何語句不被執(zhí)行。

所有的java內(nèi)置的運行時異常有兩種構(gòu)造函數(shù):1、沒有參數(shù);2、帶有一個字符串參數(shù)。當(dāng)用到第二種形式時,參數(shù)指定描述異常的字符串。

throws子句:列舉了一個方法可能引發(fā)的所有異常類型。這對于除Error或RuntimeException及他們子類以外類型的所有異常是必要的。一個方法可以引發(fā)的異常必須在throws子句中聲明。若不這樣做,將會導(dǎo)致編譯錯誤。 若一個方法可以導(dǎo)致一個異常但不處理他,他必須指定這種行為方法的調(diào)用者可以保護他們自己而不發(fā)生異常。作到這點可以在方法聲明中包含一個throws子句。


finally創(chuàng)建一個代碼塊。該代碼塊在一個try/catch塊完成之后另一個try/catch出現(xiàn)之前執(zhí)行。finally無論是否有異常引發(fā)都會執(zhí)行。
若finally塊與一個 try聯(lián)合使用,finally塊將在try結(jié)束之前執(zhí)行。

異常處理為控制具有很多動態(tài)運行特征的復(fù)雜程序提供了一個強大的機制。

java編程時,當(dāng)方法失敗時,引發(fā)一個異常;而不是返回一個錯誤代碼??這是處理失敗模式的一個更簡潔的方法。


第十一章 多線程

多任務(wù)處理的兩種類型:基于多進程的;基于多線程的。

在java程序中出現(xiàn)線程阻塞,進有一個線程暫停,其他線程繼續(xù)運行。

管程(monitor)??一種控制機制:一旦線程進入管程,所有線程必須等待直到該線程退出管程。
每個對象都擁有自己的隱式管程,當(dāng)對象的同步方法被調(diào)用時管程自動載入。



Thread 類封裝了線程的執(zhí)行。為創(chuàng)建一個新的線程,程序必須擴展Thread或?qū)崿F(xiàn)Runnable接口。 為實現(xiàn)一個Runnnable接口,一個類僅需要實現(xiàn)一個run()的簡單方法:public void run()

在run()中可以定義代碼來構(gòu)建新的線程。run()方法可以象主線程那樣調(diào)用其他方法,引用其他類,聲明變量。今有的不同是run()在程序中確立另一個并發(fā)的線程執(zhí)行入口。當(dāng)run()返回時,該線程結(jié)束。


在已經(jīng)創(chuàng)建了實現(xiàn)Runnable接口的類以后,需要在類內(nèi)部實例化一個Thread類的對象。建立新的線程后,他并不運行直到調(diào)用了他的start()方法,該方法在Thread類中定義。本質(zhì)上,start()執(zhí)行的是一個對run()的調(diào)用。

運用join()方法可確保主線程最后結(jié)束。


線程同步:同步的要害是管程(semaphore)的概念。他是一個互斥鎖定的對象(互斥體)。在給定的時間,僅有一個線程可以獲得管程。當(dāng)一個線程需要鎖定,他必須進入管程。 進入某一對象的管程,就是調(diào)用被synchronized要害子修飾的方法。為了退出管程,并放棄對對象的控制權(quán)給其他等待的線程,擁有管程的線程僅需從同步方法中返回。

任何時候在多線程情況下,有一個方法或多個方法操縱對象的內(nèi)部狀態(tài),都必須用synchronized要害字來防止出現(xiàn)競爭。

注重:一旦線程進入實例的同步方法,沒有其他線程可以進入相同實例的同步方法。然而,該實例的其他不同步方法卻仍然可以被調(diào)用。

線程間的通訊:java包含了通過wait(),notify()和notifyAll()方法實現(xiàn)的一個進程間通訊機制。這些方法在對象中用final方法實現(xiàn),所以所有的類都含有他們。且這三個方法僅在synchronized方法中才能被調(diào)用。

需要避免的多任務(wù)處理有關(guān)的非凡錯誤類型是死鎖(deadlock)。


一旦線程被終止,他不能被resume()恢復(fù)繼續(xù)運行。




第十二章


java程序通過流來完成輸入輸出。流通過java的輸入輸出系統(tǒng)與物理設(shè)備連接。

219。。。。。。待續(xù)。。。。。。

上一篇:Java伴侶

下一篇:JavaRMI應(yīng)用

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海宁市| 伊金霍洛旗| 东辽县| 郴州市| 岑巩县| 郓城县| 瑞金市| 南平市| 长乐市| 英山县| 荃湾区| 红河县| 平乐县| 图们市| 修文县| 洛南县| 轮台县| 右玉县| 洛川县| 弋阳县| 襄樊市| 阜康市| 宁安市| 曲松县| 天峨县| 伊春市| 亳州市| 纳雍县| 天峻县| 垦利县| 嘉鱼县| 泉州市| 民权县| 东阳市| 庆元县| 突泉县| 同德县| 宁波市| 班戈县| 尉氏县| 咸阳市|