java面試寶典2015版1、一個.源文件中是否可以包括多個不是類有什么限制_第1頁
java面試寶典2015版1、一個.源文件中是否可以包括多個不是類有什么限制_第2頁
java面試寶典2015版1、一個.源文件中是否可以包括多個不是類有什么限制_第3頁
java面試寶典2015版1、一個.源文件中是否可以包括多個不是類有什么限制_第4頁
java面試寶典2015版1、一個.源文件中是否可以包括多個不是類有什么限制_第5頁
已閱讀5頁,還剩162頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

一.Java基礎(chǔ)部 2、Java有沒有 5、switchbytelongString上?.6、shorts1=1;s1=s1+1;有什么錯?shorts1=1;s1+=1;有什么錯 7、char型變量中能不能存貯一個中文漢字?為什么 10、使用final關(guān)鍵字修飾一個變量時,是不能變,還是的對象不能變 13、是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用 14、Integer與int的區(qū) 18、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?219、構(gòu)造器Constructor是否可被override?. (concreteclass)?main方法 23、java中實現(xiàn)多態(tài)的機制是什么 class和interface有什么區(qū)別 的method是否可同時是static,是否可同時是native,是否可同時是 estedClass和InnerClass的不同 28、AnonymousInnerClass(內(nèi)部類)是否可以extends(繼承)其它類,是否可以口 30、String是最基本的數(shù)據(jù)類型嗎 31、Strings="o";s=s+"world!";這兩行代碼執(zhí)行后,原始的String對象中的內(nèi)容到 32、是否可以繼承String類 33、Strings=newString("xyz");創(chuàng)建了幾個StringObject?二者之間有什么區(qū)別?234、String和StringBuffer的區(qū)別 38、tryreturntryfinally{}code會不會被執(zhí)return前還是后 42、error和exception有什么區(qū)別 43、Java中的異常處理機制的簡單原理和應(yīng)用 try塊中可以拋出異常嗎 46、java中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字修飾同步方法stop()和用 47、sleep()和wait()有什么區(qū)別 52、當(dāng)一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的 55、設(shè)計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減少1。寫出程 序 60、HashMap和Hashtable的區(qū) 61、List和Map區(qū)別 62、List,Set,Map是否繼承自Collection接口 63、List、Map、Set三個接口,存取元素時,各有什么特點 66、Collection和Collections的區(qū)別 67、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用== 69、兩個對象值相同(x.equals(y)==true)hashcode,這句話對不對?compareTocompareTo方法,還是拋異常 72、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他 74javajavaSerializable275、描述一下JVM加載class文件的原理機制 76、heap和stack有什么區(qū)別 77、GC是什么?為什么要有 收 81、java中會存在內(nèi)存泄漏嗎,請簡單描述 83.Java代碼查 二.算法與編 1a.txtb.txtc.txta.txt文件中的單詞用回車符分隔,b.txt文件中用回車或空格進行分 2、編寫一個程序,將d:\java 下的所有.java文件到d:\jad 的擴展名從.java改 串,但要保證漢字不被截取半個,如“ABC”,4,應(yīng)該截取“AB”,輸入“ABC漢DEF”,6,應(yīng)該輸出“ABC”,而不是“ABC+漢的半個” 5、說明生活中遇到的二叉樹,用java實現(xiàn)二叉 7、寫一個Singleton出來 (¥101)->( 三.html&JavaScript&ajax部 判斷第二個日期比第一個日期 tablen條記錄,每3行換一次顏色,即1,2,3用紅色字體,4,5,6用綠色字體 3、HTML的form提交之前如何驗證數(shù)值文本框的內(nèi)容全部為數(shù)字?否則的話提示用戶并 4、請寫出用于校驗HTML文本框中輸入的內(nèi)容全部為數(shù)字的javascript代 5、說說你用過那些ajax技術(shù)和框架,說說它們的區(qū) 四.Javaweb部 2、HTTP請求的GET與POST方式的區(qū) 4、說一說Servlet的生命周期 5、Servlet的基本架 8、Request對象的主要方法 9、forward和redirect的區(qū) 10、request.getAttribute()和request.getParameter()有何區(qū)別 jsp有哪些內(nèi)置對象?作用分別是什么?分別有什么方法 jsp有哪些動作?作用分別是什么 13、JSP的常用指 14.JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別 17、JSP和Servlet有哪些相同點和不同點,他們之間的聯(lián)系是什么 18、MVC的各個部分都有那些技術(shù)來實現(xiàn)?如何實現(xiàn) 19webiso8859-1等,如何輸串 20.現(xiàn)在輸入n個數(shù)字,以逗號,分開;然后可選擇升或者降序排序;按提交鍵就在另一 五.數(shù)據(jù)庫部 6、union和unionall有什么不同 分頁語 用一條SQL語句查詢出每門課都大于80分的學(xué)生所有部門之間的比賽組 統(tǒng)計每年每月的信 顯示文章標(biāo)題,發(fā)帖人、最后回復(fù)時 刪除除了id號不同,其他都相同的學(xué)生冗余信 航空網(wǎng)的幾個航班查詢題 查出比經(jīng)理薪水還高的員工信息 決 220.xxx公司的sql面 21、Jdbc驅(qū)動程序的三種方 22、用JDBC如何調(diào)用過 23、JDBC中的PreparedStatement相比Statement的好 24.寫一個用jdbc連接并oracle數(shù)據(jù)的程序代 27、用JDBC查詢學(xué)生成績單,把主要代碼寫出來(考試概率極大 30、為什么要用ORM?和JDBC有何不一樣 六.XML部 1、xml有哪些解析技術(shù)?區(qū)別是什么 2、你在項目中用到了xml技術(shù)的哪些方面?如何實現(xiàn)的 3、用jdom解析xml文件時如何解決中文問題?如何解析 4、編程用JAVA解析XML的方 5、XMLXML2七.流行的框架與新技 1、談?wù)勀銓truts的理解 2、談?wù)勀銓ibernate的理解 3、AOP的作用 4、你對Spring的理解 5、談?wù)凷truts中的Actionservlet 6、Struts1.MVC模式,結(jié)構(gòu)清晰,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實現(xiàn).7、STRUTS的應(yīng)用(如STRUTS架構(gòu) 9、hibernateupdate()saveOrUpdate()的區(qū)別,sessionload()get()的區(qū)別。10HibernateJDBC的優(yōu)缺點?onetomany配置文件 12、寫Hibernate的一對多和多對一雙向關(guān)聯(lián)的orm配置 9、hibernate的inverse屬性的作用 13、在DAO中如何體現(xiàn)DAO設(shè)計模式 14、spring+Hibernate中委托方案怎么配置 15、spring+Hibernate中委托方案怎么配置 hibernate進行多表查詢每個表中各取幾個字段,也就是說查詢出來的結(jié)果集沒有一個決 介紹一下Hibernate的二級緩 18、Spring的依賴注入是什么意思?Beanmessage屬性,字符串類型,"o"的XML配置文件該怎寫 19、Jdo是什么 20、什么是spring的IOC 21、STRUTS的工作流程 22、spring與EJB的區(qū)別 八.軟件工程與設(shè)計模 1、UML方 2、j2ee常用的設(shè)計模式?說明工廠模式 九.j2ee部 1、BS與CS的聯(lián)系與區(qū)別 2、應(yīng)用服務(wù)器與WEBSERVER的區(qū)別 4、J2EE是什么 5、J2EE是技術(shù)還是是框架?什么是 6、請對以下在J2EE中常用的名詞進行解釋(或簡單描述 7、如何給weblogic指定大小的內(nèi)存 8、如何設(shè)定的weblogic的熱啟動模式(開發(fā)模式)與產(chǎn)品發(fā)布模式 ,10weblogic管理制臺中對一個應(yīng)用域(或者說是一個,中

)jmsejb11、說說weblogic中一個的缺省 結(jié)構(gòu)?比如要將一個簡單的oWorld.jsp 下,然的在瀏覽器上就可打入http://主機:端//oword.jsp就可以看到運行結(jié)果了?又比如這其中用到了一個自己寫的javaBean該如何辦 12、在weblogic中發(fā)布ejb需涉及到哪些配置文 13、如何在weblogic中進行ssl配置與客戶端的認(rèn)證配置或說說j2ee(標(biāo)準(zhǔn))進行ssl的配 14、如何查看在weblogic中已經(jīng)發(fā)布的 十.EBJ部 1、EJBSessionBeanEntityBeanStatefulBean和StaessBean的別 2、簡要講一下EJB的7個Transaction 3、EJB與JAVABEAN的區(qū)別 25、EJB容器提供的服 6、EJB的激活機 7、EJB的幾種類 8、端調(diào)用EJB對象的幾個基本步 十一.webservice部 1、WEBSERVICE。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAPUDDI,WSDL解釋 2、CORBA是什么?用途是什么 4、LINUX下線程,GDI類的解釋 十二.其 面試題 javajava答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得1Java基礎(chǔ)法,線程的語法,集合的語法,io的語法,虛擬機方面的語法。1、一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制publicpublic2、Java有沒有javajava3、說說&和&&的區(qū)別(andtruetruefalsefalse。&&false,則不再計算第二個表達(dá)式,例如,if(strnull&&!str.equals(“”))strnullNullPointerException如果將&&改為&NullPointerException異常。If(x==33&++y>0)y會增長,If(x==33&&++y>0)不會增長&還可以用作位運算符,當(dāng)&boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數(shù)進行&運算,來獲取該整數(shù)的最低4bit位,例如,0x31&0x0f的結(jié)果為0x01。明自己理解透徹深入、實際經(jīng)驗豐富。f4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)Java中,要想跳出多重循環(huán),可以在外面的循環(huán)語句前定義一個標(biāo)號,然后在里層循break語句,即可跳出外層循環(huán)。例如,for(int for(intj=0;j<10;j++) System.out.println(“i=”+i+“,j=”+j);if(j==5)breakok;}}intarr[][]booleanfound=for(inti=0;i<arr.length&&!found;i++) for(intj=0;j<arr[i].length;j++){System.out.println(“i=”+i+“,j=”+j); ==5){found=true;}}}5、switch語句能否作用在byte上,能否作用在long上,能否作用在上intInteger包裝類型,由于,byte,short,charint,所以,這些類型以及這些類型的包裝類型也是可以的。顯然,longString類型都不符合switch的語定,并且不能被隱式轉(zhuǎn)換成int類型,所以,它們不能作用于swtich語句6、shorts11s1s11;有什么錯shorts11s11;有什么錯shorts11s1s11;s1+1shorts1shorts11s11;+=java語言規(guī)定的運算符,java編譯器會對它進行特7、char型變量中能不能存貯一個中文漢字?為什么char型變量是用來Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,char型變量中當(dāng)然可以漢字啦。不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這個char型變量中就不能這個特殊漢字。補充說明:unicode編碼占用兩個字節(jié),所以,char類型的變量也是占用兩個字節(jié)。8、用最有效率的方法算出2乘以8等於幾2<<n位,就相當(dāng)于乘以了2n次方,那么,一個數(shù)乘以8只要將其左移3cpu直接支持的,效率最高,所以,2乘以8等於幾的最效率的方法是39、請設(shè)計一個一百億的計算byte類型的整數(shù)為例,它用1,表示的最大數(shù)值范圍為-128到。在內(nèi)存中對應(yīng)的二進制數(shù)據(jù)為,如果兩個-1Java運算時的類型提升,運算后會產(chǎn)生進位,二進制結(jié)果為 ,由于進位后超過了byte類型的空間,所以進位部分被舍棄,即最終的結(jié) 的二進制數(shù)據(jù) ,如果兩個-128相加,不考慮Java運算時的類型提升,運算會產(chǎn)生進位,二進制結(jié)果為, ,由于進位后超過了te類型的空間,所以進位部分被舍棄,即最終的結(jié)果為 ,也就是,這樣的結(jié)果顯然不是我們期望的,這說明計算機中的算術(shù)運算是會發(fā)生越界情況的,兩個數(shù)值的運算結(jié)果過計算機中的該類型的數(shù)值范圍。由于Jva中涉及表達(dá)式運算時的類型自動提升,我們無法用te類型做演示這種問題和現(xiàn)象的實驗,大家可以用下面一個使用整數(shù)做實驗的例子序體驗一下:inta=Integer.MAX_VALUE;intb=Integer.MAX_VALUE;intsum=a+b;longint的正數(shù)范圍為2的31次方,表示的最大數(shù)值約等于()()()publicclassintsign;byte[]val;publicBiginteger(Stringval){sign=;val=}publicBigIntegeradd(BigInteger }publicBigIntegersubtract(BigIntegerother)}publicBigIntegermultiply(BigInteger}publicBigIntegerdivide(BigInteger}}備注:要想寫出這個類的完整代碼,是非常復(fù)雜的,如果有的話,可以參看jdk中自java.math.BigInteger類的源碼。面試的人也知道誰都不可能在短時間內(nèi)寫出這個類10、使用final關(guān)鍵字修飾一個變量時,是不能變,還是的對象不能使用final關(guān)鍵字修飾一個變量時,是指變量不能變,變量所指向的對象中的內(nèi)容finalStringBuffera=newa=newa.append("有人在定義方法的參數(shù)時,可能想采用如下形式來方法內(nèi)部修改傳進來的參數(shù)對象publicvoid StringBuffer}11、"=="和equals方法究竟有什么區(qū)別塊內(nèi)存(堆內(nèi)存ObjetobjnewObject();obj是一個內(nèi)存,newObject()是另一個內(nèi)存,此時,變量obj所對應(yīng)的內(nèi)存中的數(shù)值就是對象占用equals方法是用于比較兩個獨立對象的內(nèi)容是否相同,就好比去比較兩個人的長相是否相Stringa=newString("foo");Stringb=newnewa/b個不同的對象,它們的首地址是不同的,即a和b中的數(shù)值是不相同的,所以,表達(dá)式a==b將返回false,而這兩個對象中的內(nèi)容是相同的,所以,表達(dá)式a.equals(b)將返回在實際開發(fā)中,我們經(jīng)常要比較傳遞進行來的字符串內(nèi)容是否等,例如,String…;input.equals(“quit”),許多人稍不注意就使用==進行比較了,這是錯誤的,隨便從網(wǎng)equals方法。如果一個類沒有自己定義equals方法,那么它將繼承Object類的equals方法,Object類equals方法的實現(xiàn)代碼如下:booleanequals(Objecto){returnthis==o;}equalsequals方法(Object類繼承equals和使用==false。如果equals方法,由你自己寫代碼來決定在什么情況即可認(rèn)為兩個對象的內(nèi)容是相同的。staticstaticVar就會加1;但是,每創(chuàng)建一個實例對象,就會分instanceVarinstanceVarinstanceVar的值都只自加publicclasspublicstaticintstaticVar=0;publicintinstanceVar=0;publicVariantTest(){System.out.println(“staticVar=”+staticVar+}}13、是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用staticstatic方法的調(diào)用。14、Integerint的區(qū)intjava提供的8種原始數(shù)據(jù)類型之一。Java為每個原始類型提供了封裝類,Integer是javaint提供的封裝類。int的默認(rèn)值為0IntegernullInteger可以區(qū)分出未賦值和值為0的區(qū)別,int則無法表達(dá)出未賦值的情況,例如,要想表達(dá)出沒有參加考試和考試成績?yōu)?IntegerJSP開發(fā)中,Integernull,elint默認(rèn)的默認(rèn)值為0el表達(dá)式在文本框中顯示時,結(jié)果為0,所以,intweb層的表單數(shù)據(jù)的類型。HibernateOIDIntegerHibernate就可以根據(jù)其值是否nullOIDinthbm映射unsaved-value屬性為0。另外,IntegerInteger15、Math.round(11.5)等於多少?Math.round(-11.5)等於多少Math類中提供了三個與取整有關(guān)的方法:ceil、floor、round,這些方法的作用與它們的英文名稱的含義相對應(yīng),例如,ceil的英文意義是天花板,該方法就表示向上取整,round方法,它表示“四舍五入”Math.floor(x+0.5),即將原來的數(shù)字加上0.5后再16、下面的代碼有什么不妥之處 x=return returnx==1;就可以17、請說出作用域public,private,protected,以及不寫時的區(qū) 當(dāng)前類同一package子孫類其他package √√××√×××18、OverloadOverride的區(qū)別。Overloaded的方法是否可以改變返回值Overload是重載的意思,OverrideOverload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數(shù)列表各不Override表示子類中的方法可以與父類中的某個方法的名稱和參數(shù)完全相同,通過子private類型,那么,子類則不存在覆蓋的限制,相當(dāng)Overloaded的方法是否可以改變返回值的類型這個問題,要看你倒底想問什么呢?Overloaded的方法的參數(shù)列表不一樣,它們的返回者類型當(dāng)map.remove(key)remove方法有返回值,但是我們通方法,僅僅是返回類型不同,java就無法確定編程者倒底是想調(diào)用哪個方法了,因為它無override可以翻譯為覆蓋,從字面就可以知道,它是覆蓋了一個方法并且對其重寫,以求、被覆蓋的方法不能為overload對我們來說可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入?yún)?shù)來區(qū)分這些方法,然后再調(diào)用時,VM就會根據(jù)不同的fun(int,int)19、構(gòu)造Constructor是否可被ConstructorOverrideOverload、接口是否可繼承接口抽象類是否可實現(xiàn)(ile)接口抽象類是否可繼承具體類(concrete?抽象類中是否可以有靜態(tài)的n方法?main方法。java語言的設(shè)計者,你是否會提供這樣的支持,如果不提供的話,有什么理由嗎?如果你只有記住抽象類與普通類的唯一區(qū)別就是不能創(chuàng)建實例對象和允許有21、寫clone()方法時,通常都有一行代碼,是什么clone有缺省行為,super.clone();因為首先要把父類中的成員到位,然后才是自22、面向?qū)ο蟮奶卣饔心男┓矫嫦驅(qū)ο蟮木幊陶Z言有,嗎等4個主要的特征封裝的最基本單位,面向?qū)ο蟮姆庋b比傳統(tǒng)語言的封裝更為清晰、更為有力。面向?qū)ο蟮姆庋b就是把描述一個對象的屬性和行為的代碼封裝在一個“模塊”中,也就是一個類中,屬性用變量定義,行為用方法進行定義,方法可以直接同一個對象中的屬性。通常情況下,只要記住讓變量和這個變量的方法放在一起,將一個類中的成員變量全部定義私有的,只有這個類自己的方法才可以到這些成員變量,這就基本上實現(xiàn)對象的封的數(shù)據(jù)放在同一個類中。例如,人要在黑板上畫圓,這一共涉及三個對象:人、黑板、圓,畫圓的方法要分配給哪個對象呢?由于畫圓需要使用到圓心和半徑,圓心和半徑顯然是圓的屬性,如果將它們在類中定義成了私有的成員變量,那么,畫圓的方法必須分配給圓,它才能到圓心和半徑這兩個屬性,人以后只是調(diào)用圓的畫圓方法、表示給圓發(fā)給消息而已,畫圓這個方法不應(yīng)該分配在人這個對象上,這就是面向?qū)ο蟮姆庋b性,即將對象封裝成一個高度自治和相對封閉的,對象狀態(tài)(屬性)由這個對象自己的行為(方法)來和改變。一個便于理解的例子就是,將火車剎住了,剎車的動作是分配給,還是分配給火車,顯然,應(yīng)該分配給火車,因為自身是不可能有那么大的力氣將一個火車給停下來的,只有火車自己才能完成這一動作,火車需要調(diào)用內(nèi)部的離合器和剎車片等多個器件協(xié)作才能完成剎車這個動作,剎車的過程只是給火車發(fā)了一個消息,通知火車要執(zhí)行剎車動作而已。那就是抽象。抽象包括行為抽象和狀態(tài)抽象兩個方面。例如,定義一個類,如Stringname;intage;}UserDao是一個接口,它定義變量userDao指向的實例對象由daofactory.getDao()在執(zhí)行的時候返回,有時UserJdbcDaoUserHibernateDao這個實現(xiàn),這userDao指向的具體類實現(xiàn),從而導(dǎo)致userDao.insertUser()UserJdbcDaoinsertUserUserHibernateDaoinsertUser方法:UserDaouserDao=daofactory.getDao();23、java中實現(xiàn)多態(tài)的機制是什么 class和interface有什么區(qū)別 修飾符的class即為抽象類, class類中的方法不必是抽象的。class類中定義抽象方法必須在具體(Concrete)口中的方法定義默認(rèn)為public 類型,接口中的成員變量類型默認(rèn)為publicstaticeclipse下不報錯,但應(yīng)該也不行但接口中的抽象方法只能是public類型的,并且默認(rèn)即為public publicstaticfinalpublicstaticfinalServlet類都要用相同的方式進行權(quán)限判斷、記錄訪Servlet都繼承這個抽象基類,在抽象基類的service方法中完成權(quán)限判斷、記錄日志和處理異常的代碼,在 classBaseServletextendspublicfinalvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOExcetion,ServletException 記 日}catch(Excetpion }}} voiddoService(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOExcetion,ServletException;}publicclassMyServlet1{protectedvoiddoService(HttpServletRequestrequest,HttpServletResponseresponse){本Servlet}} 的method是否可同時是static,是否可同時是native,是否可同時是synchronized?methodstaticstatic與子native 混用。例如,F(xiàn)ileOutput類要硬件打交道,底層的實現(xiàn)用的是操作系統(tǒng)相關(guān)的api實現(xiàn),例如,在windows用c語言實現(xiàn)的,所以,查看jdk的源代碼,可以發(fā)現(xiàn)FileOutputStream的open方法的定義如下:privatenativevoidopen(Stringname)throwsjavacjavaccc語言函數(shù)。由于我cjavacjava對接上,javac函數(shù)相對應(yīng)的方法,java中對應(yīng)的方法不需要寫具體的代碼,但需要面native。關(guān)于synchronized與 中,從來沒見到過這種情況,并且我覺得synchronized應(yīng)該是作用在一個具體的方法上才有意義。而且,方法上的synchronized同步所使用的同步鎖對象是this,而抽象方法上無法確定this是什么。26、什么是內(nèi)部類?StaticNestedClassInnerClass的不同,publicclass{intout_x =0;publicvoidmethod(){Inner1inner1=newpublicclass //{public{out_x=}}Inner2inner2=new}publicclass {}}在方法體外面定義的內(nèi)部類的類型可以是public,protecte,默認(rèn)的,private等4種類Outerouter=newOuter.Inner1inner1=outer.new樣,但這種內(nèi)部類的前面可以使用final或 局部變量,但是,該局部變量前必須加final修飾符。eclipse寫代碼試試,根據(jù)開發(fā)工具提示的各類錯誤信息就可以馬publicclass{publicvoid{new}

new

publicvoid}}staticStaticNestedClass,它不再具有內(nèi)部類的特性,所有,從狹義上講,它不是內(nèi)部類。StaticNestedClass與普通類在運行時的行為和功能上沒有什么區(qū)別,只是在編程時的語法上有一public、protected、默認(rèn)的、private等多種類型,而普通類只能定義成public和默認(rèn)的這兩種類型。在外面StaticNestedClass類的名稱為“外部類名.內(nèi)部類名”StaticNestedClass,InnerOuterStaticNestedClass,那么可以使用如下語句創(chuàng)Inner類:Outer.Innerinner=staticNestedClass不依賴于外部類的實例對象,所以,staticNestedClass能外部類的非static成員變量(不能直接,需要創(chuàng)建外部類實例才能非靜態(tài)變量)。當(dāng)在外部類中StaticNestedClass時,可以直接使用StaticNestedClass的名字,而不需要加上外部類的名字了,在StaticNestedClass中也可以直接外部類的static的StaticNestedClassstatic關(guān)鍵StaticNestedClass與普通方法中的內(nèi)部類的應(yīng)用方式很相似,它除了可以直接外部類中的static的成員變量,還可以靜態(tài)方法中的局部變量,但是,final修飾符。27、內(nèi)部類可以它的包含類的成員嗎?有沒有什么限制如果你把靜態(tài)嵌套類當(dāng)作內(nèi)部類的一種特例,那在這種情況下不可以外部類的普通員變量,而只能外部類中的靜態(tài)成員,例如,下面的代碼class{staticintstaticclass{void{}}}28、AnonymousInnerClass(內(nèi)部類)是否可以extends(繼承)其它類,是否可implements(實現(xiàn))interface(接口)?可以繼承其他類或?qū)崿F(xiàn)其他接口。不僅是可以,而是必須publicstaticvoidmain(String[]args)new}publicvoidtest(){}}qq群有個網(wǎng)友正好問過這個問題,我覺得挺有趣,就getClass()ObjectfinaltestgetClass().getName()getClass()方Test。30、String是最基本的數(shù)據(jù)類型嗎java.lang.Stringfinal類型的,因此不可以繼承這個類、不能修改這個類。為了提高效StringBuffer類31、Strings="o";s=s+"world!";這兩行代碼執(zhí)行后,原始的對象中的內(nèi)容到底變了沒有String被設(shè)計成不可變(immutable)類,所以它的所有對象都是不可變對象。在這段代碼中,s原先指向一個String對象,內(nèi)容是"o",然后我們對s進行了+操作,s所指向的那個對象是否發(fā)生了改變呢?答案是沒有。這時,s不指向原來那個對象了,而指向了另一個String對象,內(nèi)容為"oworld!",原來那個對象還存在于內(nèi)存之中,只是s這個變量不再指向它了。String來代表字符串的話會引起很大的內(nèi)存開銷。因StringString對StringBuffer類,它允許修改,而不是每個不同的字符串同時,我們還可以知道,如果要使用內(nèi)容相同的字符串,不必每次都new一個String。例如我們要在構(gòu)造器中對一個名叫s的String變量進行初始化,把它設(shè)置為初始值,應(yīng)publicclassDemo{privateStrings;publicDemos="Initial}}s=newString("InitialStringString對象來表示就可以Strings都指向同一上面的結(jié)論還基于這樣一個事實:對于字符串常量,如果內(nèi)容相同,Java認(rèn)為它們代表同一個String對象。而用關(guān)鍵字new調(diào)用構(gòu)造器,總是會創(chuàng)建一個新的對象,無論內(nèi)容是否StringString,很多Java標(biāo)準(zhǔn)類庫中的類都是不可變的。在開發(fā)一個系統(tǒng)的時候,我們有時候也需要設(shè)計不可每個不同的狀態(tài)都要一個對象來代表,可能會造能上的問題。所以Java標(biāo)準(zhǔn)類庫還提供了一個可變版本,即StringBuffer。32、是否可以繼承String類Stringfinal33、StringsnewString("xyz");創(chuàng)建了幾個StringObject?二者之間有什多少遍,都是緩沖區(qū)中的那一個。NewString每寫一遍,就創(chuàng)建一個新的對象,它一句那個常量”xyz”String對象。如果以前就用過’xyz’,這句代表就34、StringStringBuffer的區(qū)StringStringBuffer類StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。另外,Stringequals方法,newString(“abc”).equals(newString(“abc”)true,StringBufferequals方法,所以,newStringBuffer(“abc”).equals(newStringBuffer(“abc”)false。StringBuffersbf=newStringBuffer();for(inti=0;i<100;i++){}StringBuffer對象,而下面的代碼效率很低,因Stringstr=newString();for(inti=0;i<100;i++){str=str+}StringBuilderStringBuffer的區(qū)別。StringequalshashCodeStringBufferequals方法和hashCode方法,所以,將StringBuffer對象進Java集合類中時會出現(xiàn)問題。jdkapi 用正則表達(dá)式,代碼大概為:Stringresult= 用StingTokenizer,代碼為:StringTokenizer tokener=String[]result=newString[tokener.countTokens()];Inti=0;36、數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法length()length的屬性。Stringlength()37、下面這條語句一共創(chuàng)建了多少個對象:StringStrings1="a";Strings2=s1+"b";Strings3aSystem.out.println(s2=="ab");System.out.println(s3==第一條語句打印的結(jié)果為false,第二條語句打印的結(jié)果為true,這說明javac編譯可以對String對象。寫如下兩行代碼,Strings="a"+"b"+"c"+"d";System.out.println(s=="abcd");{}會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后也許你的答案是在return之前,但往更細(xì)地說,我的答案是在return中間執(zhí)行,請看下面*@paramargsaddbyzxx,Dec9,publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstub}staticint{intx={}{}}}139、下面的程序代碼輸出的結(jié)果是多少public {public main(String{smallTt =newsmallT(); b= }public {{}{}}}

return1return2現(xiàn),tryreturnfinallyreturn語句先執(zhí)行,finally語句后執(zhí)行,所以,返回的結(jié)果是2。Return并不是讓函數(shù)馬上返回,而return語句執(zhí)行后,將把返回結(jié)果放置進函數(shù)棧中,此時函數(shù)并不是馬上返回,它要執(zhí)finally語句后才真正開始返回。*@paramargsaddbyzxx,Dec9,publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstub}int{{}

return{return}}int{return}int{return}}結(jié)論:finallyreturnbreak40、final,finallyfinalize的區(qū)別final用于屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。內(nèi)部類要局部變量,局部變量必須定義成final類型,例如,一段代碼……finallyfinalize是Object類的一個方法,在收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供收集時的其他資源回收,例如關(guān)閉文件等。JVM不保證此方法總41、運行時異常與一般異常有何異同能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須拋出可能發(fā)生的非運error表示恢復(fù)不是不可能但很的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如43、Java中的異常處理機制的簡單原理和應(yīng)用異常是指java程序運行時(非編譯)所發(fā)生的情況或錯誤,與現(xiàn)實生活中的很個對象來表示,Java使用面向?qū)ο蟮姆绞絹硖幚懋惓#殉绦蛑邪l(fā)生的每個異常也都分JavaJava類表示,所有異常的根類為java.lang.Throwable,Throwable下面又派生了兩個子類:ErrorException,Error表示線程死鎖等系統(tǒng)問題。Exception表示程序還能夠克服和恢復(fù)的問題,其中又分為系統(tǒng)異ception,(NullPointerExcption(ClassCastExceptionjavatry..catch處理或用throws繼續(xù)拋給上層調(diào)用方法處理,所以普通異常也稱為checked異常,unchecked異常。44、請寫出你最常見到的5個runtimeexception所謂系統(tǒng)異常,就是…..RuntimeExceptionjdkdoc中查RuntimeException類,就可以看到其所有的子類列表,也就是看到了所有的系統(tǒng)異常。我分別代表什么意義?在try塊中可以拋出異常嗎?46、java中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字修飾同步方法?stop()suspend()方法為何不推薦使用?newThread(){}.start();Threadrun方法,newThread(){}表示一個Thread的子類的實例對象,子類加上run方法后的代碼如下:newThread(){publicvoidrun(){}newThread(newRunnable(){}).start();ThreadRunnable對象的run方法,newRunnable(){}表示一個Runnable的子類的實例對象,runnable的子類run方法后的代碼如下:newThread(newpublic}}java5開始,還有如下一些線程池創(chuàng)建多線程的方式:ExecutorServicepoolExecutors.newFixedThreadPool(3)for(inti=0;i<10;i++){pool.execute(newRunable(){publicvoid}Executors.newCachedThreadPool().execute(newRunable(){publicvoidrun(){}});Executors.newSingleThreadExecutor().execute(newRunable(){publicvoidrun(){}});newThread()newThread(runnable)形式,第一種直接調(diào)用threadrunThreadnewSubThread()。第二種調(diào)runnablerun方法。有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口synchronized關(guān)鍵字修飾同步方法使用stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于問題所在。suspend()suspend()的時候,目標(biāo)線程會停下來,但suspend()Thread類中置入一個標(biāo)志,線程應(yīng)該活動還是掛起。若標(biāo)志線程應(yīng)該掛起,便用wait()命其進入等待狀態(tài)。若標(biāo)志線程應(yīng)當(dāng)恢復(fù),則用一個notify()重新啟動線程。47、sleep()wait()有什么區(qū)別(網(wǎng)上的答案:sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用sleep不會釋waitObjectwait方法導(dǎo)致本線程放棄對象鎖,進notify方法(notifyAll)后本線程才sleepcpu,cpusleep指定的時間過后,cpu才會回到這個線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進入了同步鎖,sleep方法并不sleepcpu,但其他被同步鎖擋住了的線程也無法得到執(zhí)行。wait是指在一個已經(jīng)進入了同步鎖的線程內(nèi),讓自己暫時讓出同步鎖,以便notify方法(notifywait方法的線程可以去參與獲得鎖的競爭了,但不是馬上得notify方法后面的代碼還有很多,需要notfiy方法后增加一個等待和一些代碼,看看效果waitwait狀態(tài)和程序可以再次得到鎖后繼續(xù)向下運行。對wait的講解一定要配合例子代碼來說明,才顯得自己真明白。packagecom.publicclassMultiThread*publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubnewThread(newThread1()).start();try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}new}privatestaticclassThread1implements{publicvoidrun()//TODOAuto-generated//由于這里的Thread1Thread2run方法要用同一對象作為監(jiān)視器,我們這里thisThread2thisThread1this不是同一個對象。我們用MultiThread.class這個字節(jié)碼對象,當(dāng)前虛擬機里這個變量時,指向的都是同一個對synchronizedSystem.out.println("thread1istry了synchronized關(guān)鍵字管轄的代碼范圍,另式就是在synchronized關(guān)鍵字管轄的waitwait方法釋放鎖。}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}System.out.println("thread1isgoingon...");System.out.println("thread1isbeingover!");}}}privatestaticclassThread2implements{publicvoidrun()//TODOAuto-generatedsynchronizedSystem.out.println("thread2notifyotherthreadcanreleasewait//notifythread2sleep方法休息了10System.out.println("thread2issleetentry}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}System.out.println("thread2isgoingon...");System.out.println("thread2isbeingover!");}}}}48、同步和異步有何異同,在什么情況下分別使用他們?舉例說明下面兩個方法同步嗎?(自己發(fā)明class{synchronizedstaticvoidsay{}synchronizedvoid}50、多線程有幾種實現(xiàn)方法?同步有幾種實現(xiàn)方法ThreadRunnablesynchronized,waitnotifyInterruptedException異常。JVM確定喚醒哪個線程,而且不是按優(yōu)先級。51、啟動一個線程是用run()還是start()?52、當(dāng)一個線程進入一個對象synchronized方法后,其它線程是否可this。53、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)maincpu,它怎么能夠同時執(zhí)行多段程序呢?這是從宏觀上來看的,cpuab線索,切換時間很快,給人的感覺是a,b在同時執(zhí)行,好比大家在同一個上網(wǎng),只有一條到外部網(wǎng)線,其實,ab傳數(shù)據(jù),由于切換時間很短暫,所以,大家感覺都在狀態(tài):就緒,運行,synchronize阻塞,waitsleep掛起,結(jié)束。waitsynchronizedstart方法后線程進入就緒狀態(tài),線程調(diào)度系統(tǒng)將就緒狀態(tài)的線程轉(zhuǎn)為運行狀synchronizedsynchronized獲得鎖后,由阻wait方法轉(zhuǎn)為掛起狀態(tài),當(dāng)線程關(guān)聯(lián)的代碼執(zhí)行完后,主要相同點:Locksynchronized主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。Lock還tryLock方法可以非阻塞方式去拿鎖。舉例說明(lock進行了改寫packagecom.importimport*privateintprivateLocklockpublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubThreadTesttt=newThreadTest();for(inti=0;i<2;i++){newThread(tt.newnewThread(tt.new}}privateclass{publicvoidrun()//TODOAuto-generated{/*synchronized(ThreadTest.this){{System.out.println("j--="+j--{}}}}privateclass{publicvoidrun()//TODOAuto-generated{/*synchronized(ThreadTest.this){System.out.println("j++="+j++);{System.out.println("j++="+{}}}}}55、設(shè)計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減1。寫出程序jpublicclass{privateintpublicstaticvoidmain(Stringargs[]){Incinc=tt.newInc();Decdec=tt.newDec();Threadt=newThread(inc);t=newThread(dec);}}privatesynchronizedvoidinc(){}privatesynchronizedvoiddec(){}classIncimplementsRunnable{publicvoidrun(){}}}classDecimplementsRunnable{publicvoidrun(){}}}}{JMangerj=newJManager();{new}void{for(int{newnewRunnable(){publicvoidnewThread(newRunnable(){publicvoid}}}class{privatej=publicsynchronized{}publicsynchronized{}}、子線程循環(huán)次,接著主線程循環(huán),接著又回到子線程循環(huán)次,接著再回到主線程又循環(huán),如此循環(huán)次,請寫出程序。*publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodnew}publicvoid{finalBusinessbusinessnewnew{publicvoidrun(){}}}for(int{}}privateclass{booleanbShouldSubtrue;//publicsynchronizedvoidMainThread(int{try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}for(int{System.out.println(Thread.currentThread().getName()+":i="+i+",j="+}bShouldSub}publicsynchronizedvoidSubThread(int{try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}{System.out.println(Thread.currentThread().getName()+":i="+i+",j="+}bShouldSub}}}packagecom.privatestaticpublicstaticvoidmain(String[]args)//TODOAuto-generatedmethod/*newThread(){publicvoid{for(int{for(int{System.out.println("i="+i+",j="+}}}//finalStringstr=newnew{public{{{trycatch(InterruptedExceptione){}}{"i="+i+",j="+j);}bShouldMain=}

}}}for(int{synchronized{trycatch(InterruptedExceptione){}}{"i="+i+",j="+j);}bShouldMain=false;}}}}jdk5中的并發(fā)庫來實現(xiàn)的:importjava.util.concurrent.Executors;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;importjava.util.concurrent.locks.Condition;publicclass{privatestaticLocklock=newprivatestaticConditionsubThreadCondition=lock.newCondition();privatestaticbooleanbBhouldSubThread=false;publicstaticvoidmain(String[]{ExecutorServicethreadPool=Executors.newFixedThreadPool(3);publicvoid{{{{System.out.println(Thread.currentThread().getName()+",j="+}bBhouldSubThread=false;{}{}}}{{{System.out.println(Thread.currentThread().getName()+",j="+}bBhouldSubThread=true;{}{}}}}57、介紹Collection框架的結(jié)答:隨意發(fā)揮題,天北誰便談,只要讓別覺得你知識淵博,理解透徹即可58、Collection框架中實現(xiàn)比較要實現(xiàn)什么接List接口(ListCollection接口,他們都是有序集合,即存HashSet之類的集合的最大不同處,HashSet之類的集合不可以按索引號去檢索其中的元素,也不允許有重復(fù)的元素(hashsetArrayListVector的功ArrayListVectorrArryList是線程序不安全的,它的方法之間是線程不同步的。如果只有一個線程會到集合,那最好是使用ArryList,因為不考慮線程安全,效率會高些;如果有多個線程會到集合t,因為不需要我們自己再去考慮和編寫線程安全的代碼。Vector&ArrayList、Hashtable&HashMap,要記住線程安全的問題,記住VectorHashtablejava一誕生就提供了的,它們是線程安全的,ArrayList與HashMap是java2時才提供的,它們是線程不安全的。所以,我們講先講老的ArrayList與Vector都有一個初始的容量大小,當(dāng)進它們里面的元素的個數(shù)超過了容量時,就需要增加ArrayList與Vector的空間,每次要增加空間時,不是用與程序效率之間要取得一定的平衡。VectorArrayList的增長策略在文檔中沒有明確規(guī)定(從源代碼看到的是增長為原來的1.5倍。ArrayListVector都可以設(shè)置初始的空間大小,VectorArrayList沒有提供設(shè)置60、HashMapHashtable的區(qū)(條理上還需要整理,也是先說相同點,再說不同點HashMapHashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)Map接口,主HashMap允許空(null)鍵值(key),由于非線程安全,在只有一個線程HashMapnullentrykey或者valueHashtableHashMapHashtablecontainscontainsvaluecontainsKeycontainsHashtableDictionaryHashMapJava1.2Mapinterface的一個實最大的不同是,HashtableSynchronizeHashMapHashtableHashMapHashtableHashMaphash/rehash算法都大概一樣,所以性能不會有很大的差一.歷史原因:HashtableDictionary類的,HashMapJava1.2二.同步性:HashtableHashMap是線程序不安全三.HashMapkey61、ListMap區(qū)別一個是單列數(shù)據(jù)的集合,另一個是鍵和值這樣的雙列數(shù)據(jù)的集合,List中的數(shù)據(jù)是有順序,并且允許重復(fù);Map中的數(shù)據(jù)是沒有順序的,其鍵是不能重復(fù)的,它62、List,SetMap是否繼承自Collection接口List,Set是,Map63、List、Map、Set三個接口,存取元素時,各有什么特點首先,ListSet具有相似性,它們都是單列元素的集合,所以,它們有一個功共同的父Collection。Set里面不允許有重復(fù)的元素,所謂重復(fù),即不能有兩個相等(注意,不是僅僅是相同)SetASet集合再存入一個B對象,但B對象與A對象equals相等,則B對象不進去,所以,Setaddbooleanadd方法可成功trueequalsadd方法無法加入該元素,返回結(jié)果為false。Set取元素時,沒法說取第幾個,只能以ItorList表示有先后順序的集合,注意,不是那種按、按大小、按價格之類的排add(Obje)方法時,每次加入的對象就像火車站買票有排隊順序一add(intindex,Obje)方法,就可以指定當(dāng)前對象在集合中的存放位置。一個對象可以被反復(fù)進List中,每調(diào)用一次add方法,這個對象就入進集合中一次,其實,并不是把這個對象本身進了集合add合中有多個索引指向了這個對象,如圖x所示。List除了可以以Itor接口取得所有的元素,再逐一遍歷各個元外,還可以調(diào)用get(indexi)來明確說明取第幾個。MapList和Setput方法,定義如下:put(objkey,objvalue),每次時,要一對key/value,不能重復(fù)的key,這個重復(fù)的規(guī)equalskeyvalueget(Objectkey)返回keyvaluekeyvaluekey和valueMap.Entry對象的集合。List以特定次序來持有元素,可有重復(fù)元素。Set無法擁有重復(fù)元素,內(nèi)部排序。Mapkey-value值,valueHashSet按照hashcode值的某種運算方式進行,而不是直接按hashCode值的大小進行。例如,"abc">78,"def">62,"xyz">65在hashSet中的順序不是楚,看本次培訓(xùn)學(xué)員當(dāng)中有多少能看懂源碼。LinkedHashSet按插入的順序,那被存hashcode方法還有什么作用呢?學(xué)員想想!hashset集合比較兩個對象是否相hashcodeequals方法是否相等。newStudent插HashSetHashSetsizehashcodeequalssize。HashSet中卻加不了多次的。ArrayList和Vector都是使用數(shù)組方式數(shù)據(jù),此數(shù)組元素數(shù)大于實際的數(shù)據(jù)以便增存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vectorsynchronized方法(線程安全,通常性能上較ArrayList差,而LinkedList使向鏈表實現(xiàn),按序號索引數(shù)據(jù)LinkedList也是線程不安全的,LinkedListLinkedList可以被當(dāng)作65、去掉一個Vector集合中重復(fù)的元VectornewVector=newVector();For(inti=0;i<vector.size();i++){Objectobj=}還有一種簡單的方式,HashSetsetnew66、CollectionCollections的區(qū)別CollectionSetCollections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、67、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==equals()?它們有何區(qū)別?Setequals()68、你所知道的集合類都有哪些?主要方法ListMapListArrayListVector,它們是可變大小的列表,比較適合構(gòu)建、和操作任何類型對象的元素列表。List適用于按數(shù)值索Map提供了一個更通用的元素方法。Map集合類用于元素對(稱作"鍵"和""

setadd,remove,containsmap,大put,remove,containseclispe下按點操作符,很自然Listget(intindex)這樣的方法,因為setget(intindex)這樣的方法。List和set都可以迭代出所有元素,迭代時先要得到一個itor對象,所以,set和list類都有一個itor方法,用于返回那個itor對象。map可以返回三個集合,一個是返回所有的key的集合,另valuekey和valueEntrySet對象的集合,mapgetkeykeyvalue。69、兩個對象值相同(x.equals(y)true),但卻可有不同的hashcode,這HashSetHashMapequalshashcodeHashSetHashMaphashcode沒有什么關(guān)系了,這時候hashcode不等是可以的,例如arrayList的對象就不用實現(xiàn)hashcode,當(dāng)然,我們沒使用的是父類的compareTo方法,還是使用的子類的compareTo方法,還(addpublicclass parableprivateintage=publicParent(intthis.age=}publicintcompareTo(Object//TODOAuto-generatedmethodstubSystem.out.println("methodofparent");Parento1=(Parent)o;}}publicclassChildextendsParentpublic}publicintcompareTo(Object//TODOAuto-generatedmethods

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論