欢迎来到天天文库
浏览记录
ID:452937
大小:50.50 KB
页数:7页
时间:2017-08-03
《Effective Java 2nd Edition【外文翻译】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、外文翻译原文EffectiveJava2ndEditionMaterialSource:AddisonWesleyAuthor:JoshuaBlochAvoidcreatingunnecessaryobjects:Itisoftenappropriatetoreuseasingleobjectinsteadofcreatinganewfunctionallyequivalentobjecteachtimeitisneeded.Reusecanbebothfasterandmorestylish.Anobjectc
2、analwaysbereusedifitisimmutable.Asanextremeexampleofwhatnottodo,considerthisstatement:Strings=newString("stringette");//DON'TDOTHIS!ThestatementcreatesanewStringinstanceeachtimeitisexecuted,andnoneofthoseobjectcreationsisnecessary.TheargumenttotheStringconstr
3、uctor("stringette")isitselfaStringinstance,functionallyidenticaltoalloftheobjectscreatedbytheconstructor.Ifthisusageoccursinalooporinafrequentlyinvokedmethod,millionsofStringinstancescanbecreatedneedlessly.Theimprovedversionissimplythefollowing:Strings="strin
4、gette";ThisversionusesasingleStringinstance,ratherthancreatinganewoneeachtimeitisexecuted.Furthermore,itisguaranteedthattheobjectwillbereusedbyanyothercoderunninginthesamevirtualmachinethathappenstocontainthesamestringliteral[JLS,3.10.5].Youcanoftenavoidcreat
5、ingunnecessaryobjectsbyusingstaticfactorymethodsinpreferencetoconstructorsonimmutableclassesthatprovideboth.Forexample,thestaticfactorymethodBoolean.valueOf(String)isalmostalwayspreferabletotheconstructorBoolean(String).Theconstructorcreatesanewobjecteachtime
6、it'scalled,whilethestaticfactorymethodisneverrequiredtodosoandwon'tinpractice.Eliminateobsoleteobjectreferences:Generallyspeaking,wheneveraclassmanagesitsownmemory,theprogrammershouldbealertformemoryleaks.Wheneveranelementisfreed,anyobjectreferencescontainedi
7、ntheelementshouldbenulledout.Anothercommonsourceofmemoryleaksiscaches.Onceyouputanobjectreferenceintoacache,it'seasytoforgetthatit'sthereandleaveitinthecachelongafteritbecomesirrelevant.Thereareseveralsolutionstothisproblem.Ifyou'reluckyenoughtoimplementacach
8、eforwhichanentryisrelevantexactlysolongastherearereferencestoitskeyoutsideofthecache,representthecacheasaWeakHashMap;entrieswillberemovedautomaticallyaftertheybecomeobsolete.RememberthatW
此文档下载收益归作者所有