版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、FindBugsBugDescriptionsThisdocumentliststhestandardbugpatternsreportedbyversion0.8.5.SummaryEC:Calltoequals()comparingdifferent15AinterfacetypesCorrectness調用 Equal 方法去比較不同的接口類型EC:Calltoequals()comparingdifferent16AtypesCorrectness調用 Equal 方法去比較不同的數(shù)據(jù)類型ES:ComparisonofStringobjectsusing=17Ao二使用=或者!=去比較
2、字符串或對象IJU:TestCaseimplementssetUpbutdoesntNP:Nullpointerdereferenceinmethod 方法中存在空指針Nm:Classdefinesequal();shoulditbeC:中定了 equal 方法,但是沒有重寫序號等級DescriptionCategory14AEC:Calltoequals()withnullargument 調用 Equal 方法的參數(shù)為空Correctness29Bcallsuper.setUp()測試實例實現(xiàn)了 setUpsuper.setUp()()但沒有調用CorrectnessCorrectness
3、36ACorrectnessNP:Nullpointerdereferenceinmethodon37Aexceptionpath方法中存在某異常路徑中的空指針NP:Possiblenullpointerdereferencein38Amethod方法中存在可能在運行時出現(xiàn)的空指針異常NP:Possiblenullpointerdereferenceinmethodonexceptionpath39方法中存在可能在某些異常路徑下出現(xiàn)的空指針異常CorrectnessCorrectnessCorrectness41Correctnessjava.lang.Object 中 equal 方法,這也
4、有可能是有意這么做的42Nm:Confusingmethodnames一些方法名只有大小寫的區(qū)別,容易混繞43Nm:Confusingmethodname方法名和其超類的類名相同m:Classdefineshashcode();shoulditbehashCode()?44類中定義了hashCode()方法,但是沒有重寫ava.lang.Object中的hashCode()方法, 這也有可能是有意這么做的Nm:Classdefinestostring();shoulditbetoString()?45類中定義了tostring()方法,但是沒有重寫java.lang.Object中的tostr
5、ing()方法,這也有可能是有意這么做的46Nm:Veryconfusingmethodnames一些方法名只有大小寫的區(qū)別,特別容易混繞47ODR:Methodmayfailtoclosedatabaseresource方法可能沒有關閉數(shù)據(jù)源48ODR:Methodmayfailtoclosedatabaseresourceonexception49方法在異常時可能無法關閉數(shù)據(jù)源OS:Methodmayfailtoclosestream 方法可能沒有關閉流50OS:Methodmayfailtoclosestreamonexception53方法在異常時可能無法關閉流RCN:Redundan
6、tcomparisiontonullofpreviouslycheckedvalue預測值的幾個比較的值中有 null 值54CRCN:Redundantcomparisontonull幾個比較的值中有 null 值57RV:Methodignoresreturnvalue方法忽略了返回值59SI:Staticinitializerforclasscreatesinstancebeforeallstaticfinalfieldsassigned類的靜態(tài)初始化器實例化一個該類對象要在所有的常量屬性定義之前CorrectnessCorrectnessCorrectnessCorrectnessCo
7、rrectnessCorrectnessCorrectnessCorrectnessCorrectnessCorrectnessCorrectnessCorrectnessCorrectness72CUwF:Unwritten 巾 eld永遠不會寫到的字段,所有讀取將返回默認值83MS:Fieldisntfinalbutshouldbe字段應該為常量的卻不是常量Maliciouscodevulnerability86A88A92CIS2:Inconsistentsynchronization類中字段訪問不同步ML:Methodsynchronizesonanupdatedfield 方法從一個
8、可變字段對象的引用中同步。這是不太可能有用的,因為不同的線程可以在不同的對象上同步。Ru:Invokesrunonathread(didyoumeantostartitinstead?)當一個類繼承Runnable接口時候,還去調用 run 方法,實際上只需要調用 Start 方法就可以啟動新的線程,MultithreadedcorrectnessMultithreadedcorrectnessMultithreadedcorrectness93CSC:ConstructorinvokesThread.start()構造函數(shù)調用 Thread.start()Multithreadedcorre
9、ctness102103Dm:MethodinvokesdubiousnewString(String)constructor;justusetheargument方法中調用 String 的構造函數(shù)來新建一個字符用,直接使用其參數(shù)即可Dm:MethodinvokesdubiousString.equals();useString.length()=0instead方法中調用了不確定的 String.equals(),使用String.length()=0 來代替104Dm:MethodinvokestoString()methodonaString;justusetheString方法中用一
10、個字符用去調用方法 toString(),用String 就可以了105Dm:MethodinvokesdubiousnewString()constructor;justuse方法中新建一個空字符串用 newString()。直接用就可以了FI:Emptyfinalizershouldbedeleted106空 finalizer以刪除()方法是沒有用的,所以應該予PerformancePerformancePerformancePerformancePerformance114115C116CUPM:Privatemethodisnevercalled 這個私有方法從來沒有被調用到UrF:
11、Unreadfield讀不到的字段,應該從類中刪除UuF:UnusedfieldPerformancePerformancePerformance讀不到的字段,應該從類中刪除DescriptionsAM:CreatesanemptyjarfileentryThecodecallsputNextEntry(),immediatelyfollowedbyacalltocioseEntry().ThisresultsinanemptyJarFileentry.ThecontentsoftheentryshouldbewrittentotheJarFilebetweenthecallstoputNex
12、tEntry()andcloseEntry().AM:CreatesanemptyzipfileentryThecodecallsputNextEntry(),immediatelyfollowedbyacalltocloseEntry().ThisresultsinanemptyZipFileentry.ThecontentsoftheentryshouldbewrittentotheZipFilebetweenthecallstoputNextEntry()andcloseEntry().BIT:IncompatiblebitmasksThismethodcomparesanexpress
13、ionoftheform(a&C)toD,whichwillalwayscompareunequalduetothespecificvaluesofconstantsCandD.Thismayindicatealogicerrorortypo.BIT:IncompatiblebitmasksThismethodcomparesanexpressionoftheform(a&0)to0,whichwillalwayscompareequal.Thismayindicatealogicerrorortypo.BIT:IncompatiblebitmasksThismethodcom
14、paresanexpressionoftheform(a|C)toD.whichwillalwayscompareunequalduetothespecificvaluesofconstantsCandD.Thismayindicatealogicerrorortypo.Typically,thisbugoccursbecausethecodewantstoperformamembershiptestinabitset,butusesthebitwiseORoperator(|)insteadofbitwiseAND(&).BOA:Classoverridesamethodimplem
15、entedinsuperclassAdapterwronglyThismethodoverridesamethodfoundinaparentclass,wherethatclassisanAdapterthatimplementsalistenerdefinedinthejava.awt.eventorjavax.swing.eventpackage.Asaresult,thismethodwillnotgetcalledwhentheeventoccurs.BRSA:Methodattemptstoaccessaresultsetfieldwithindex0AcalltogetXXXor
16、updateXXXmethodsofaresultsetwasmadewherethefieldindexis0.AsResultSetfieldsstartatindex1,thisisalwaysamistake.CN:ClassimplementsCloneablebutdoesnotdefineoruseclonemethodClassimplementsCloneablebutdoesnotdefineorusetheclonemethod.CN:clonemethoddoesnotcallsuper.clone()Thisclassdefinesaclone()methodthat
17、doesnotcallsuper.clone(),andisnotfinal.Ifthisclass(A)isextendedbyasubclass(B),andthesubclassBcallssuper.clone(),thenitislikelythatBsclone()methodwillreturnanobjectoftypeAwhichviolatesthestandardcontractforclone().Ifallclone()methodscallsuper.clone(),thentheyareguaranteedtouseObject.clone(),whichalwa
18、ysreturnsanobjectofthecorrecttype.Co:CovariantcompareTo()methoddefinedThisclassdefinesacovariantversionofcompareTo().TocorrectlyoverridethecompareTo()methodintheComparableinterface,theparameterofcompareTo()musthavetypejava.lang.Object.DE:MethodmightdropexceptionThismethodmightdropanexception.Ingener
19、al,exceptionsshouldbehandledorreportedinsomeway,ortheyshouldbethrownoutofthemethod.DE:MethodmightignoreexceptionThismethodmightignoreanexception.Ingeneral,exceptionsshouldbehandledorreportedinsomeway,ortheyshouldbethrownoutofthemethod.Dm:MethodinvokesSystem.exit(.)InvokingSystem.exitshutsdowntheenti
20、reJavavirtualmachine.Thisshouldonlybeendonewhenitisappropriate.Suchcallsmakeithardorimpossibleforyourcodetobeinvokedbyothercode.ConsiderthrowingaRuntimeExceptioninstead.EC:Calltoequals()withnullargumentThismethodcallsequals(Object),passinganullvalueastheargument.Accordingtothecontractoftheequals()me
21、thod,thiscallshouldalwaysreturnfalse.EC:Calltoequals()comparingdifferentinterfacetypesThismethodcallsequals(Object)ontworeferencesofunrelatedinterfacetypes(neitherisasubtypeoftheother).Accordingtothecontractofequals(),objectsofdifferentclassesshouldalwayscompareasunequal.Notethatitispossiblethatthep
22、rogramcontainsclassesthatimplementbothinterfaces,sothecomparisonmaybevalid.However,itisworthinspectingclosely.EC:Calltoequals()comparingdifferenttypesThismethodcallsequals(Object)ontworeferencesofdifferenttypes.Accordingtothecontractofequals(),objectsofdifferentclassesshouldalwayscompareasunequal;th
23、erefore,itislikelythattheresultofthiscomparisionwillalwaysbefalseatruntime.ES:ComparisonofStringobjectsusing=or!=Thiscodecomparesjava.lang.Stringobjectsforreferenceequalityusingthe=or!=operators.Unlessbothstringsareeitherconstantsinasourcefile,orhavebeeninternedusingtheSern()method,thesames
24、tringvaluemayberepresentedbytwodifferentStringobjects.Considerusingtheequals(Object)methodinstead.Eq:Covariantequals()methoddefinedThisclassdefinesacovariantversionofequals().Tocorrectlyoverridetheequals。methodinjava.lang.Object,theparameterofequals。musthavetypejava.lang.ObjectEq:Covariantequals()me
25、thoddefined,Object.equals(Object)inheritedThisclassdefinesacovariantversionoftheequals。method,butcallsthenormalequals(Object)methoddefinedinthebasejava.lang.Objectclass.Theclassshouldprobablydefineanon-covariantversionofequals().(I.e.,amethodwiththesignaturebooleanequals(java.lang.Object).FI:Explici
26、tinvocationoffinalizerThismethodcontainsanexplicitinvocationofthefinalize。methodonanobject.Becausefinalizermethodsaresupposedtobeexecutedonce,andonlybytheVM,thisisabadidea.FI:FinalizerdoesnotcallsuperclassfinalizerThisfinalize()methoddoesnotmakeacalltoitssuperclasssfinalize()method.So,anyfinalizerac
27、tionsdefinedforthesuperclasswillnotbeperformed.Addacalltosuper.finalize().FI:FinalizernullifiessuperclassfinalizerThisemptyfinalize。methodexplicitlynegatestheeffectofanyfinalizerdefinedbyitssuperclass.Anyfinalizeractionsdefinedforthesuperclasswillnotbeperformed.Unlessthisisintended,deletethismethod.
28、HE:Classdefinesequals()butnothashCode()Thisclassoverridesequals(Object),butdoesnotoverridehashCode().Therefore,theclassmayviolatetheinvariantthatequalobjectsmusthaveequalhashcodes.HE:Classdefinesequals()andusesObject.hashCode()Thisclassoverridesequals(Object),butdoesnotoverridehashCode(),andinherits
29、theimplementationofhashCode()fromjava.lang.Object(whichreturnstheidentityhashcode,anarbitraryvalueassignedtotheobjectbytheVM).Therefore,theclassisverylikelytoviolatetheinvariantthatequalobjectsmusthaveequalhashcodes.IfyoudontwanttodefineahashCodemethod,and/ordontbelievetheobjectwilleverbeputintoaHas
30、hMap/Hashtable,definethehashCode()methodtothrowUnsupportedOperationExceptionHE:ClassdefineshashCode()butnotequals()ThisclassdefinesahashCode()methodbutnotanequals。method.Therefore,theclassmayviolatetheinvariantthatequalobjectsmusthaveequalhashcodes.HE:ClassdefineshashCode()andusesObject.equals()This
31、classdefinesahashCode()methodbutinheritsitsequals()methodfromjava.lang.Object(whichdefinesequalitybycomparingobjectreferences).Althoughthiswillprobablysatisfythecontractthatequalobjectsmusthaveequalhashcodes,itisprobablynotwhatwasintendedbyoverridingthehashCode()method.(OverridinghashCode()impliesth
32、attheobjectsidentityisbasedoncriteriamorecomplicatedthansimplereferenceequality.)HE:Classinheritsequals()andusesObject.hashCode()Thisclassinheritsequals(Object)fromanabstractsuperclass,andhashCode()fromfromjava.lang.Object(whichreturnstheidentityhashcode,anarbitraryvalueassignedtotheobjectbytheVM).T
33、herefore,theclassisverylikelytoviolatetheinvariantthatequalobjectsmusthaveequalhashcodes.IfyoudontwanttodefineahashCodemethod,and/ordontbelievetheobjectwilleverbeputintoaHashMap/Hashtable,definethehashCode()methodtothrowUnsupportedOperationExceptionIC:InitializationcircularityAcircularitywasdetected
34、inthestaticinitializersofthetwoclassesreferencedbythebuginstance.Manykindsofunexpectedbehaviormayarisefromsuchcircularity.IJU:TestCaseimplementssetUpbutdoesntcallsuper.setUp()ClassisaJUnitTestCaseandimplementsthesetUpmethod.ThesetUpmethodshouldcallsuper.setUp(),butdoesnt.IMSE:DubiouscatchingofIllega
35、lMonitorStateExceptionIllegalMonitorStateExceptionisgenerallyonlythrownincaseofadesignflawinyourcode(callingwaitornotifyonanobjectyoudonotholdalockon).It:Iteratornext()methodcantthrowNoSuchElementexceptionThisclassimplementsthejava.util.Iteratorinterface.However,itsnext()methodisnotcapableofthrowing
36、java.util.NoSuchElementException.Thenext()methodshouldbechangedsoitthrowsNoSuchElementExceptionifiscalledwhentherearenomoreelementstoreturn.MF:ClassdefinesfieldthatobscuresasuperclassfieldThisclassdefinesafieldwiththesamenameasavisibleinstancefieldinasuperclass.Thisisconfusing,andmayindicateanerrori
37、fmethodsupdateoraccessoneofthefieldswhentheywantedtheother.MF:MethoddefinesavariablethatobscuresafieldThismethoddefinesalocalvariablewiththesamenameasafieldinthisclassorasuperclass.Thismaycausethemethodtoreadanuninitializedvaluefromthefield,leavethefielduninitialized,orboth.MWN:Mismatchednotify()Thi
38、smethodcallsObject.notify()orObject.notifyAll()withoutobviouslyholdingalockontheobject.Callingnotify()ornotifyAll()withoutalockheldwillresultinanIllegalMonitorStateExceptionbeingthrown.MWN:Mismatchedwait()ThismethodcallsObject.wait()withoutobviouslyholdingalockontheobject.Callingwait()withoutalockhe
39、ldwillresultinanIllegalMonitorStateExceptionbeingthrown.NP:NullpointerdereferenceinmethodAnullpointerisdereferencedhere.ThiswillleadtoaNullPointerExceptionwhenthecodeisexecuted.NP:NullpointerdereferenceinmethodonexceptionpathApointerwhichisnullonanexceptionpathisdereferencedhere.ThiswillleadtoaNullP
40、ointerExceptionwhenthecodeisexecuted.NotethatbecauseFindBugscurrentlydoesnotpruneinfeasibleexceptionpaths,thismaybeafalsewarning.AlsonotethatFindBugsconsidersthedefaultcaseofaswitchstatementtobeanexceptionpath,sincethedefaultcaseisofteninfeasible.NP:PossiblenullpointerdereferenceinmethodAreferenceva
41、luedereferencedheremightbenullatruntime.ThismayleadtoaNullPointerExceptionwhenthecodeisexecuted.NP:PossiblenullpointerdereferenceinmethodonexceptionpathAreferencevaluewhichisnullonsomeexceptioncontrolpathisdereferencedhere.ThismayleadtoaNullPointerExceptionwhenthecodeisexecuted.NotethatbecauseFindBu
42、gscurrentlydoesnotpruneinfeasibleexceptionpaths,thismaybeafalsewarning.AlsonotethatFindBugsconsidersthedefaultcaseofaswitchstatementtobeanexceptionpath,sincethedefaultcaseisofteninfeasible.NS:Questionableuseofnon-short-circuitlogicThiscodeseemstobeusingnon-short-circuitlogic(e.g.,&or|)ratherthan
43、short-circuitlogic(&or|).Non-short-circuitlogiccausesbothsidesoftheexpressiontobeevaluatedevenwhentheresultcanbeinferredfromknowingtheleft-handside.Thiscanbelessefficientandcanresultinerrorsiftheleft-handsideguardscaseswhenevaluatingtheright-handsidecangenerateanerror.Nm:Classdefinesequal();shou
44、lditbeequals。?Thisclassdefinesamethodequal(Object).Thismethoddoesnotoverridetheequals(Object)methodinjava.lang.Object,whichisprobablywhatwasintended.Nm:ConfusingmethodnamesThereferencedmethodshavenamesthatdifferonlybycapitalization.Nm:ConfusingmethodnameThismethodhasthesamenameasthesuperclassofthecl
45、assitisdefinedin.Nm:Classdefineshashcode();shoulditbehashCode()?Thisclassdefinesamethodcalledhashcode().ThismethoddoesnotoverridethehashCode()methodinjava.lang.Object,whichisprobablywhatwasintended.Nm:Classdefinestostring();shoulditbetoString()?Thisclassdefinesamethodcalledtostring().Thismethoddoesn
46、otoverridethetoString()methodinjava.lang.Object,whichisprobablywhatwasintended.Nm:VeryconfusingmethodnamesThereferencedmethodshavenamesthatdifferonlybycapitalization.ODR:MethodmayfailtoclosedatabaseresourceThemethodcreatesadatabaseresource(suchasadatabaseconnectionorrowset),doesnotassignittoanyfield
47、s,passittoothermethods,orreturnit,anddoesnotappeartoclosetheobjectonallpathsoutofthemethod.Failuretoclosedatabaseresourcesonallpathsoutofamethodmayresultinpoorperformance,andcouldcausetheapplicationtohaveproblemscommunicatingwiththedatabase.ODR:MethodmayfailtoclosedatabaseresourceonexceptionThemetho
48、dcreatesadatabaseresource(suchasadatabaseconnectionorrowset),doesnotassignittoanyfields,passittoothermethods,orreturnit,anddoesnotappeartoclosetheobjectonallexceptionpathsoutofthemethod.Failuretoclosedatabaseresourcesonallpathsoutofamethodmayresultinpoorperformance,andcouldcausetheapplicationtohavep
49、roblemscommunicatingwiththedatabase.OS:MethodmayfailtoclosestreamThemethodcreatesanIOstreamobject,doesnotassignittoanyfields,passittoothermethods,orreturnit,anddoesnotappeartoclosethestreamonallpathsoutofthemethod.Thismayresultinafiledescriptorleak.Itisgenerallyagoodideatouseafinallyblocktoensuretha
50、tstreamsareclosed.OS:MethodmayfailtoclosestreamonexceptionThemethodcreatesanIOstreamobject,doesnotassignittoanyfields,passittoothermethods,orreturnit,anddoesnotappeartocloseitonallpossibleexceptionpathsoutofthemethod.Thismayresultinafiledescriptorleak.Itisgenerallyagoodideatouseafinallyblocktoensure
51、thatstreamsareclosed.PZLA:ConsiderreturningazerolengtharrayratherthannullItisoftenabetterdesigntoreturnalengthzeroarrayratherthananullreferencetoindicatethattherearenoresults(i.e.,anemptylistofresults).Thisway,noexplicitcheckfornullisneededbyclientsofthemethod.Ontheotherhand,usingnulltoindicatethere
52、isnoanswertothisquestion,thenitisprobablyappropriate.Forexample,File.listFiles()returnsanemptylistifgivenadirectorycontainingnofiles,andreturnsnullifthefileisnotadirectory.RC:SuspiciousreferencecomparisonThismethodcomparestworeferencevaluesusingthe=or!=operator,wherethecorrectwaytocompareinstancesof
53、thistypeisgenerallywiththeequals()method.Examplesofclasseswhichshouldgenerallynotbecomparedbyreferencearejava.lang.Integer,java.lang.Float,etc.RCN:RedundantcomparisiontonullofpreviouslycheckedvalueThismethodcontainsaredundantcomparisonofareferencevaluetonull.Twotypesofredundantcomparisonarereported:
54、,BothvaluescomparedaredefinitelynullOnevalueisdefinitelynullandtheotherisdefinitelynotnullThisparticularwarninggenerallyindicatesthatavalueknownnottobenullwascheckedagainstnull.Whilethecheckisnotnecessary,itmaysimplybeacaseofdefensiveprogramming.RCN:RedundantcomparisontonullThismethodcontainsaredund
55、antcomparisonofareferencevaluetonull.Twotypesofredundantcomparisonarereported:BothvaluescomparedaredefinitelynullOnevalueisdefinitelynullandtheotherisdefinitelynotnullThisparticularwarningrepresentstwospecifickindsofredundantcomparisions:1. Avaluewasdereferenced,andlaterexplicitlycomparedtonull:this
56、oftenindicatesanerrorinthemethod2. Aliteralnullvaluewasexplicitlycomparedtonull:thismayindicatethatthemethodwasmodifiedwithoutcompleteunderstandingoftheinvariantsofthemethodRR:MethodignoresresultsofInputStream.read()Thismethodignoresthereturnvalueofoneofthevariantsofjava.io.InputStream.read()whichca
57、nreturnmultiplebytes.Ifthereturnvalueisnotchecked,thecallerwillnotbeabletocorrectlyhandlethecasewherefewerbyteswerereadthanthecallerrequested.Thisisaparticularlyinsidiouskindofbug,becauseinmanyprograms,readsfrominputstreamsusuallydoreadthefullamountofdatarequested,causingtheprogramtofailonlysporadic
58、ally.RR:MethodignoresresultsofInputStream.skip()Thismethodignoresthereturnvalueofjava.io.InputStream.skip()whichcanskipmultiplebytes.Ifthereturnvalueisnotchecked,thecallerwillnotbeabletocorrectlyhandlethecasewherefewerbyteswereskippedthanthecallerrequested.Thisisaparticularlyinsidiouskindofbug,becau
59、seinmanyprograms,skipsfrominputstreamsusuallydoskipthefullamountofdatarequested,causingtheprogramtofailonlysporadically.WithBufferedstreams,however,skip()willonlyskipdatainthebuffer,andwillroutinelyfailtoskiptherequestednumberofbytes.RV:MethodignoresreturnvalueThereturnvalueofthismethodshouldbecheck
60、ed.SA:SelfassignmentoffieldThismethodcontainsaselfassignmentofafield;x;publicvoidfoo()x=x;)Suchassignmentsareuseless,andmayindicatealogicerrorortypo.SI:StaticinitializerforclasscreatesinstancebeforeallstaticfinalfieldsassignedTheclasssstaticinitializercreatesaninstanceoftheclassbeforeallofthestaticfinalfieldsa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024頂級擔保協(xié)議協(xié)議樣例
- 2024年魚類購銷專項協(xié)議范本
- 2024年光伏技術合作協(xié)議樣本
- 2024年行政賠償協(xié)議模板
- 2024年度企業(yè)設備采購內部控制協(xié)議
- 2024環(huán)保型進戶門交易協(xié)議書
- 2024重要會議場所租賃協(xié)議
- 2024年裝修工程承包協(xié)議明細
- 2024專業(yè)司機陪同車輛租賃服務協(xié)議
- 2024年度商業(yè)大廈建設簡易協(xié)議協(xié)議
- 從局部到整體:5G系統(tǒng)觀-概要版-vivo通信研究院
- GB/T 22844-2009配套床上用品
- GB/T 14683-2017硅酮和改性硅酮建筑密封膠
- 無人機校企合作協(xié)議
- GB 16809-2008防火窗
- 《百團大戰(zhàn)》歷史課件
- 八年級上冊道德及法治非選擇題專項訓練
- 2023年徐州市國盛控股集團有限公司招聘筆試題庫及答案解析
- 機械課程設計~二級減速器設計教程
- 國家開放大學《傳感器與測試技術》實驗參考答案
- 工程造價司法鑒定實施方案
評論
0/150
提交評論