ITEM 90: CONSIDER SERIALIZATION PROXIES INSTEAD OF SERIALIZED INSTANCES??正如在iten 85 和 i...
ITEM 90: CONSIDER SERIALIZATION PROXIES INSTEAD OF SERIALIZED INSTANCES??正如在iten 85 和 i...
ITEM 89: FOR INSTANCE CONTROL, PREFER ENUM TYPES TOREADRESOLVE??item 3 描述了單例模式,并給出了下面的單...
ITEM 88: WRITE READOBJECT METHODS DEFENSIVELY??item 50 包含一個(gè)具有可變私有日期字段的不可變?nèi)掌诜秶悺_@個(gè)類通過(guò)在它的...
ITEM 87: CONSIDER USING A CUSTOM SERIALIZED FORM??當(dāng)您在時(shí)間壓力下編寫類時(shí)后雷,通常應(yīng)該將精力集中在設(shè)計(jì)最佳API上苏携。有時(shí)竭讳,這意...
ITEM 86: IMPLEMENT SERIALIZABLE WITH GREAT CAUTION??允許序列化類的實(shí)例就像在其聲明中添加單詞 implements Ser...
ITEM 85: PREFER ALTERNATIVES TO JAVA SERIALIZATION??1997年將序列化添加到 Java 中時(shí)娇掏,人們知道它有一定的風(fēng)險(xiǎn)桶雀。這種...
ITEM 84: DON’T DEPEND ON THE THREAD SCHEDULER??當(dāng)許多線程是可運(yùn)行的時(shí)辕狰,線程調(diào)度程序決定哪些線程可以運(yùn)行以及運(yùn)行多長(zhǎng)時(shí)間改备。任何合...
ITEM 83: USE LAZY INITIALIZATION JUDICIOUSLY??延遲初始化是將字段的初始化延遲到需要它的值時(shí)。如果不需要該值蔓倍,則不會(huì)初始化該字段悬钳。...
ITEM 82: DOCUMENT THREAD SAFETY??當(dāng)類的方法被并發(fā)使用時(shí)盐捷,類的行為是它與客戶端的契約的一個(gè)重要部分。如果您沒(méi)有記錄類的這方面行為默勾,它的用戶將被...
ITEM 81: PREFER CONCURRENCY UTILITIES TO WAIT AND NOTIFY??這本書的第一版專門介紹了如何正確使用 wait 和 not...
ITEM 80: PREFER EXECUTORS, TASKS, AND STREAMS TO THREADS??這本書的第一版包含一個(gè)簡(jiǎn)單工作隊(duì)列的代碼[Bloch01碉渡,...
ITEM 79: AVOID EXCESSIVE SYNCHRONIZATION??item 78 警告了同步不足的危險(xiǎn),這一項(xiàng)涉及相反的問(wèn)題:根據(jù)不同的情況灾测,過(guò)度的同步可能...
ITEM 78: SYNCHRONIZE ACCESS TO SHARED MUTABLE DATA??synchronized 關(guān)鍵字確保了一次只能有一個(gè)線程執(zhí)行一個(gè)方法或...
ITEM 77: DON’T IGNORE EXCEPTIONS??雖然這個(gè)建議看起來(lái)很明顯爆价,但它經(jīng)常被違背,因此需要重復(fù)媳搪。當(dāng)API的設(shè)計(jì)者聲明一個(gè)拋出異常的方法時(shí)铭段,他們?cè)噲D...
ITEM 76: STRIVE FOR FAILURE ATOMICITY??即使在一個(gè)對(duì)象在執(zhí)行操作的過(guò)程中發(fā)生了故障,拋出異常之后秦爆,通常也希望該對(duì)象仍然處于定義良好的可用...
ITEM 75: INCLUDE FAILURE-CAPTURE INFORMATION IN DETAIL MESSAGES??當(dāng)程序由于未捕獲的異常而失敗時(shí)序愚,系統(tǒng)自動(dòng)打印...
ITEM 74: DOCUMENT ALL EXCEPTIONS THROWN BY EACH METHOD??對(duì)方法拋出的異常的描述是該方法文檔的重要部分。因此等限,花時(shí)間仔細(xì)...
ITEM 73: THROW EXCEPTIONS APPROPRIATE TO THE ABSTRACTION??當(dāng)一個(gè)方法拋出一個(gè)與它執(zhí)行的任務(wù)沒(méi)有明顯連接的異常時(shí)爸吮,這是...
ITEM 72: FAVOR THE USE OF STANDARD EXCEPTIONS??出色的程序員與經(jīng)驗(yàn)不足的程序員之間的一個(gè)區(qū)別是,專家竭盡可能的實(shí)現(xiàn)高度代碼重用望门。...
ITEM 71: AVOID UNNECESSARY USE OF CHECKED EXCEPTIONS??許多Java程序員不喜歡檢查異常形娇,但如果使用得當(dāng),它們可以改進(jìn) A...