国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《Head First Java》的思考總結(jié):第三篇

zhangrxiang / 2095人閱讀

摘要:一旦線程執(zhí)行線程會(huì)進(jìn)入可執(zhí)行狀態(tài),它會(huì)在可執(zhí)行與執(zhí)行中兩種狀態(tài)中來(lái)來(lái)去去,同時(shí)也有另外一種狀態(tài)暫時(shí)不可執(zhí)行又稱為被堵塞狀態(tài)。當(dāng)對(duì)象有一個(gè)或多個(gè)同步化的方法時(shí),線程只有在取得對(duì)象鎖的鑰匙時(shí)才能進(jìn)入同步化的方法。

前言:

今天要分享的是關(guān)于 《Head First Java》這本書(shū)的讀后感,這本書(shū)有點(diǎn)小厚差不多有七百頁(yè)左右,所以我花了幾乎整個(gè)國(guó)慶的時(shí)間去閱讀,學(xué)習(xí)。讀完之后發(fā)現(xiàn),受益頗多。正如書(shū)名所說(shuō)的,它是一本重視大腦的學(xué)習(xí)指南。無(wú)論你是Java開(kāi)發(fā)工程師,還是android開(kāi)發(fā)工程師,這本書(shū)都是良師益友。下面讓我們一起看看,我會(huì)以零碎的列表方式呈現(xiàn),并以通俗的方式講解那些你迷糊不清的細(xì)節(jié)?(細(xì)心的你恐怕已經(jīng)發(fā)現(xiàn)了,這個(gè)系列的文章的前言都是一毛一樣的,因?yàn)槲也淮_定你先點(diǎn)開(kāi)的是第幾篇,哈哈)

正文:

[1]將被序列化的對(duì)象寫(xiě)到文件中,然后就可以讓你的程序去文件中讀取序列化的對(duì)象并把它們展開(kāi)回到活生生的狀態(tài)。序列化的文件時(shí)很難讓一般人閱讀的,但他比純文本文件更容易讓程序恢復(fù)會(huì)原來(lái)的狀態(tài),也比較安全,因?yàn)橐话闳瞬粫?huì)知道如何動(dòng)手動(dòng)腳改數(shù)據(jù)。
[2] Stream這類串流需要兩兩連接才能做出有意義的事情,一個(gè)是低層的串流,一個(gè)高層的串流,這樣的設(shè)計(jì)是出于面向?qū)ο罂紤],一個(gè)類只做好一件事。同時(shí)通過(guò)組合不同的串流,又可以變化出很多花樣。
[3]序列化的對(duì)象保存了實(shí)例變量的值,因此之后可以在堆上帶回一模一樣的實(shí)例。比較叼的就是當(dāng)對(duì)象被序列化時(shí),被該對(duì)象引用的實(shí)例變量也會(huì)被序列化。且所有被引用的對(duì)象也會(huì)被序列化。。。。最棒的是,這些操作都是自動(dòng)進(jìn)行的!
[4]如果要讓類能夠被序列化,就實(shí)現(xiàn)SerializableSerializable接口又被稱為markertag類的標(biāo)記用接口,因?yàn)榇私涌诓](méi)有任何方法需要實(shí)現(xiàn)的。如果某類事可序列化的,則它的子類也自動(dòng)地可以序列化(接口的本意就是如此)。
[5]如果一個(gè)類中有引用到其他不可序列化的對(duì)象,那么這個(gè)類也是無(wú)法序列化的,切記!如果有變量不想被序列化的,則用transient來(lái)修飾變量即可。那些變量主數(shù)據(jù)類型值會(huì)變成默認(rèn)值,引用的變量會(huì)變成null
[6]如果有兩個(gè)對(duì)象都有引用實(shí)例變量指向相同的對(duì)象對(duì)怎么樣?例如兩個(gè)Cat都有相同的Owner對(duì)象?那Owner會(huì)被存儲(chǔ)兩次嗎?答案:序列化聰明得足以分辨兩個(gè)對(duì)象是否相同,在此情況下只有一個(gè)對(duì)象會(huì)被存儲(chǔ),其他引用會(huì)復(fù)原成指向改對(duì)象。
[7] FileInputStreamObjectInputStream組合使用的時(shí)候,如果os.close();的話FileInputStream會(huì)自動(dòng)跟著關(guān)掉!
[8]被序列化的對(duì)象在解序列化的時(shí)候,它的構(gòu)造函數(shù)是不會(huì)執(zhí)行的!切記!
[9]靜態(tài)變量,它們會(huì)被序列化嗎?答案:不會(huì)。要記得static代表“每個(gè)類一個(gè)”而不是“每個(gè)對(duì)象一個(gè)”。當(dāng)對(duì)象被還原時(shí),靜態(tài)變量會(huì)維持類中原本的樣子,而不是存儲(chǔ)時(shí)的樣子,自己測(cè)試哈。
[10]關(guān)于File有個(gè)很有用的功能就是它提供一種比使用字符串文件名來(lái)表示文件更安全的方式。
[11]緩沖區(qū)的奧妙之處就在于使用緩沖區(qū)比沒(méi)有使用緩沖區(qū)的效率更高。因?yàn)槊刻舜疟P(pán)操作都會(huì)比內(nèi)存操作要花費(fèi)跟多時(shí)間。通過(guò)BufferedWriterFileWriter的鏈接,BufferedWriter可以暫存一堆數(shù)據(jù),然后到滿的時(shí)候再實(shí)際寫(xiě)入磁盤(pán),這樣就可以減少對(duì)磁盤(pán)操作的次數(shù),從而提高效率。
[12]如果想要強(qiáng)制緩沖區(qū)立即寫(xiě)入,只要調(diào)用writer.flush()這個(gè)方法即可
[13] Stringsplit()可以把字符串拆開(kāi)成數(shù)組。
[14]每臺(tái)服務(wù)器上都有65536個(gè)端口,但是我們自己在寫(xiě)測(cè)試socket的時(shí)候,用的端口都要在1023之后,因?yàn)?b>0~1023都已經(jīng)被保留給已知的特定服務(wù)。
[15] Socket serverSocket = new Socket("127.0.0.1",5000)這是建立服務(wù)器的Socket連接寫(xiě)法。Socket sock = serverSocket.accept();當(dāng)用戶連上來(lái)的時(shí),此方法會(huì)返回一個(gè)Socket(在不同的端口上)以便與客戶端通信。SocketServerSocket的端口不相同,因此ServerSocket可以空出來(lái)等待其他的用戶。
[16]當(dāng)啟動(dòng)多線程的時(shí)候,我們會(huì)覺(jué)得同時(shí)在做好幾件事情,其實(shí)只有真正的多處理器系統(tǒng)能夠同時(shí)執(zhí)行好幾件事,所以其實(shí)多線程只是在執(zhí)行空間里面非常地快速來(lái)回交換執(zhí)行而已。
[17] Runnable threadJob = new MyRunnable();,該類就是你對(duì)線程要執(zhí)行的任務(wù)的定義,也就是說(shuō)此方法會(huì)在線程的執(zhí)行空間運(yùn)行。
[18]一旦線程執(zhí)行.start();線程會(huì)進(jìn)入可執(zhí)行狀態(tài),它會(huì)在可執(zhí)行與執(zhí)行中兩種狀態(tài)中來(lái)來(lái)去去,同時(shí)也有另外一種狀態(tài):暫時(shí)不可執(zhí)行(又稱為被堵塞狀態(tài))。
[19]當(dāng)多個(gè)線程同時(shí)操作同一個(gè)對(duì)象的時(shí)候,容易發(fā)生數(shù)據(jù)錯(cuò)誤的情況,解決方式就是同步化方法,synchronized。當(dāng)對(duì)象有一個(gè)或多個(gè)同步化的方法時(shí),線程只有在取得對(duì)象鎖的鑰匙時(shí)才能進(jìn)入同步化的方法。從而保護(hù)數(shù)據(jù)的安全。(不過(guò)代價(jià)就是損耗性能,需要自己權(quán)衡)同時(shí)注意死鎖的情況。
[20]每個(gè)Java對(duì)象都有一個(gè)鎖,每個(gè)鎖只有一把鑰匙。類也有個(gè)鎖,?
[21]高級(jí)java類設(shè)計(jì)中,泛型的使用是非常高明的,什么是泛型,只要你看到<>就是了,其實(shí)到處都是。以泛型的觀點(diǎn)來(lái)說(shuō),extend代表extendimplement。哈哈,不看不知道哈
[22]數(shù)組的類型是在運(yùn)行期間檢查的,但集合的類型檢查只會(huì)發(fā)生在編譯期間,在多態(tài)賦值的時(shí)候,集合可沒(méi)那么容易讓你過(guò)哈,?
[23]遠(yuǎn)程過(guò)程調(diào)用的設(shè)計(jì),要?jiǎng)?chuàng)建4種東西:服務(wù)器,客戶端,服務(wù)器輔助設(shè)施和客戶端輔助設(shè)施。其實(shí)真相就是兩個(gè)輔助設(shè)施兩者在負(fù)責(zé)通信,客戶端跟服務(wù)器只是把命令給他們,結(jié)果拿回來(lái)而已。

總結(jié):

大結(jié)局啦,?,其實(shí)這三篇文章是我看完之后,覺(jué)得有必要從七百多頁(yè)的書(shū)中提出去來(lái)的要點(diǎn),也希望對(duì)大家有幫助。我們可是攻城獅,fight!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64660.html

相關(guān)文章

  • Head First Java思考總結(jié):第一篇

    摘要:對(duì)象本身已知的事物被稱為實(shí)例變量俗稱屬性。對(duì)象可以執(zhí)行的動(dòng)作稱為方法。變量根據(jù)作用域分為全局變量,局部變量。對(duì)象有狀態(tài)和行為兩種屬性,狀態(tài)影響行為,行為影響狀態(tài)。 前言: 今天要分享的是關(guān)于《Head First Java》這本書(shū)的讀后感,這本書(shū)有點(diǎn)小厚差不多有七百頁(yè)左右,所以我花了幾乎整個(gè)國(guó)慶的時(shí)間去閱讀,學(xué)習(xí)。讀完之后發(fā)現(xiàn),受益頗多。正如書(shū)名所說(shuō)的,它是一本重視大腦的學(xué)習(xí)指南。無(wú)論...

    寵來(lái)也 評(píng)論0 收藏0
  • Head First Java思考總結(jié):第二篇

    摘要:局部變量和方法的參數(shù)都是被聲明在方法中,它們是暫時(shí)的,且生命周期只限于方法在放在棧上的這段期間也就是方法調(diào)用至執(zhí)行完畢為止。讓一個(gè)類不被實(shí)例化的方法有兩種一種是將類聲明稱抽象類,第二種是將其構(gòu)造函數(shù)標(biāo)記為私有的。 前言: 今天要分享的是關(guān)于 《Head First Java》這本書(shū)的讀后感,這本書(shū)有點(diǎn)小厚差不多有七百頁(yè)左右,所以我花了幾乎整個(gè)國(guó)慶的時(shí)間去閱讀,學(xué)習(xí)。讀完之后發(fā)現(xiàn),受益頗...

    jindong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<