成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

zhangrxiang / 2114人閱讀

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

前言:

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

正文:

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

總結(jié):

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64660.html

相關(guān)文章

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

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

    寵來也 評(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》這本書的讀后感,這本書有點(diǎn)小厚差不多有七百頁左右,所以我花了幾乎整個(gè)國慶的時(shí)間去閱讀,學(xué)習(xí)。讀完之后發(fā)現(xiàn),受益頗...

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

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

0條評(píng)論

閱讀需要支付1元查看
<