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

下載本文檔

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

文檔簡(jiǎn)介

Java2013一.Java基礎(chǔ)部 2、Java有沒(méi)有 5、switch語(yǔ)句能否作用在byte上,能否作用在long上,能否作用在String上 6、shorts1=1;s1=s1+1;有什么錯(cuò)?shorts1=1;s1+=1;有什么錯(cuò) 828等於幾 10、使用final關(guān)鍵字修飾一個(gè)變量時(shí),是不能變,還是的對(duì)象不能變 14、Integer與int的區(qū) 18、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?219、構(gòu)造器Constructor是否可被override? 20、接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承具體類(concreteclass)?抽象類中是否可以有靜態(tài)的main方法? 24 class和interface有什么區(qū)別 25 26、什么是內(nèi)部類?StaticNestedClass和InnerClass的不同 28、AnonymousInnerClass(內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接 31、Strings="o";s=s+"world!";這兩行代碼執(zhí)行后,原始的String對(duì)象中的內(nèi)容到底變了沒(méi)有 33、Strings=newString("xyz");創(chuàng)建了幾個(gè)StringObject?二者之間有什么區(qū)別?234、String和StringBuffer的區(qū) return前還是后 40、final,finally,finalize的區(qū)別 42、error和exception有什么區(qū)別 44、請(qǐng)寫(xiě)出你最常見(jiàn)到的5個(gè)runtimeexception 47、sleep()和wait()有什么區(qū)別 49.下面兩個(gè)方法同步嗎?(自己發(fā)明 54、簡(jiǎn)述synchronized和java.util.concurrent.locks.Lock的異同 循環(huán)50次,請(qǐng)寫(xiě)出程序。 60、HashMap和Hashtable的區(qū) 61、List和Map區(qū)別 62、List,Set,Map是否繼承自Collection接口 64、說(shuō)出ArrayList,Vector,LinkedList的性能和特 66、Collection和Collections的區(qū)別 67、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別 是使用的子類的compareTo方法,還是拋異常! 74、什么是java序列化,如何實(shí)現(xiàn)java序列化?或者請(qǐng)解釋Serializable接口的作用。275、描述一下JVM加載class文件的原理機(jī)制? 76、heap和stack有什么區(qū)別 77、GC是什么?為什么要有 83.Java代碼查 二.算法與編 1、編寫(xiě)一個(gè)程序,將a.txt文件中的單詞與b.txt文件中的單詞交替合并到c.txt文件中,a.txt文件中的單詞用回車(chē)符分隔,b.txt文件中用回車(chē)或空格進(jìn)行分隔。 下的所有.java文件到 ABC,4,AB,DEF,6,ABC, 4、有一個(gè)字符串,其中包含中文字符、英文字符和數(shù)字字符,請(qǐng)統(tǒng)計(jì)和打印出各個(gè)字符的個(gè)數(shù)。 6、從類似如下的文本文件中出所有的,并打印出重復(fù)的和重復(fù)的次數(shù),并按重復(fù)次數(shù)排序:7、寫(xiě)一個(gè)Singleton出來(lái) (¥101)->( 三.html&JavaScript&ajax部 用table顯示n條記錄,每3行換一次顏色,即1,2,3用紅色字體,4,5,6用綠色字體,7,8,9用紅顏色 3、HTML的form提交之前如何驗(yàn)證數(shù)值文本框的內(nèi)容全部為數(shù)字?否則的話提示用戶并終止提交 4、請(qǐng)寫(xiě)出用于校驗(yàn)HTML文本框中輸入的內(nèi)容全部為數(shù)字的javascript代 5、說(shuō)說(shuō)你用過(guò)那些ajax技術(shù)和框架,說(shuō)說(shuō)它們的區(qū) 四.Javaweb部 2、HTTP請(qǐng)求的GET與POST方式的區(qū) 5、Servlet的基本架 6、SERVLETAPI中forward()與redirect()的區(qū)別 9、forward和redirect的區(qū) 10、request.getAttribute()和request.getParameter()有何區(qū)別 jsp有哪些內(nèi)置對(duì)象?作用分別是什么?分別有什么方法 13、JSP的常用指 14.JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別 19、我們?cè)趙eb應(yīng)用開(kāi)發(fā)過(guò)程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個(gè)某種編碼的字符 20.現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開(kāi);然后可選擇升或者降序排序;按提交鍵就在另一頁(yè)面顯示按什么排序,結(jié)果為,提供reset 五.數(shù)據(jù)庫(kù)部 6、union和unionall有什么不同 分頁(yè)語(yǔ) 用一條SQL語(yǔ)句查詢出每門(mén)課都大于80分的學(xué)生 20.xxx公司的sql面 21、Jdbc驅(qū)動(dòng)程序的三種方 22、用JDBC如何調(diào)用過(guò) 23、JDBC中的PreparedStatement相比Statement的好 24.寫(xiě)一個(gè)用jdbc連接并oracle數(shù)據(jù)的程序代 27、用JDBC查詢學(xué)生成績(jī)單,把主要代碼寫(xiě)出來(lái)(考試概率極大 30、為什么要用ORM?和JDBC有何不一樣 六.XML部 3、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析 4、編程用JAVA解析XML的方 5、XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式 七.流行的框架與新技 1、談?wù)勀銓?duì)Struts的理解 2、談?wù)勀銓?duì)Hibernate的理解 3、AOP的作用 4、你對(duì)Spring的理解 5、談?wù)凷truts中的Actionservlet 6、Struts優(yōu)缺點(diǎn)優(yōu)點(diǎn):1.MVC模式,結(jié)構(gòu)清晰,使開(kāi)發(fā)者只關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn).7、STRUTS的應(yīng)用(如STRUTS架構(gòu) 8、說(shuō)說(shuō)struts1與struts2的區(qū)別 10、簡(jiǎn)述Hibernate和JDBC的優(yōu)缺點(diǎn)?如何書(shū)寫(xiě)一個(gè)onetomany配置文 9、hibernate的inverse屬性的作用 13、在DAO中如何體現(xiàn)DAO設(shè)計(jì)模式 決 介紹一下Hibernate的二級(jí)緩 18Spring的依賴注入是什么意思?給一個(gè)Bean的message屬性,字符串類型,注入值為"o"的XML配 19、Jdo是什么 20、什么是spring的 21、STRUTS的工作流程 22、spring與EJB的區(qū)別 八.軟件工程與設(shè)計(jì)模 1、UML方 九.j2ee部 1、BS與CS的聯(lián)系與區(qū)別 2、應(yīng)用服務(wù)器與WEBSERVER的區(qū)別 4、J2EE是什么 5、J2EE是技術(shù)還是是框架?什么是 7、如何給weblogic指定大小的內(nèi)存 , )進(jìn)行jms及ejb或連接池等相關(guān)信息進(jìn)行, 11、說(shuō)說(shuō)weblogic中一個(gè)的缺省結(jié)構(gòu)?比如要將一個(gè)簡(jiǎn)單的oWorld.jsp放入何下,然的在瀏覽器上就可打入http://主機(jī):端//oword.jsp就可以看到運(yùn)行結(jié)果了?又比如這其中用到了一個(gè)自己寫(xiě)的javaBean該如何辦? 12、在weblogic中發(fā)布ejb需涉及到哪些配置文 13、如何在weblogicsslj2ee(標(biāo)準(zhǔn))ssl的配置? 十.EBJ部 2、簡(jiǎn)要講一下EJB的7個(gè)Transaction 5、EJB容器提供的服 6、EJB的激活機(jī) 7、EJB的幾種類 十一.webservice部 4、LINUX下線程,GDI類的解釋 5.問(wèn)得稀里糊涂的 十二.其 2、請(qǐng)把首頁(yè)的這一段話用中文翻譯一下 1Java法,io的語(yǔ)法,虛擬機(jī)方面的語(yǔ)法??梢杂卸鄠€(gè)類,但只能有一個(gè)public的類,并且public2、Javajavajava(andtruefalsefalse。false表達(dá)式,當(dāng)str為null時(shí),后面的表達(dá)式不會(huì)執(zhí)行,所以不會(huì)出現(xiàn)NullPointerException如果將&&改為&,則會(huì)拋出NullPointerException異常。If(x==33&++y>0)y會(huì)增長(zhǎng),If(x==33&&++y>0)不會(huì)增長(zhǎng)&還可以用作位運(yùn)算符,當(dāng)&boolean類型時(shí),&0x0f來(lái)與一個(gè)整數(shù)進(jìn)行&4bit位,例如,0x31&0x0f0x01。經(jīng)驗(yàn)豐富。fbreakfor(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、switchbytelongString上和String類型都不符合switch的語(yǔ)定,并且不能被隱式轉(zhuǎn)換成int類型,所以,它們不能作用于swtich語(yǔ)句中。6、shorts11;s1s11;有什么錯(cuò)shorts11;s11;有什么錯(cuò)shorts1=1;s1=s1+1;s1+1intshortshorts11;s11;+=java語(yǔ)言規(guī)定的運(yùn)算符,java7、char型變量中能不能存貯一個(gè)中文漢字?為什么char型變量是用來(lái)Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,char型變量中當(dāng)然可以漢字啦。不過(guò),如果某個(gè)特殊的漢字沒(méi)有被包含在unicode編碼字符集中,那么,這個(gè)char型變量中就不能這個(gè)特殊漢字。補(bǔ)充說(shuō)明:unicode編碼占用兩個(gè)字節(jié),所以,char類型的變量也是占用兩個(gè)字節(jié)。828等於幾2<<n2n83cpu直接支持的,效率最高,所以,282<<3。9解和理解,我們先以byte類型的整數(shù)為例,它用1個(gè)字節(jié)進(jìn)行,表示的最大數(shù)值范圍為-128到+127。-1在內(nèi)存中對(duì) 如果兩個(gè)-1相加不考慮Java運(yùn)算時(shí)的類型提升運(yùn)算后會(huì)產(chǎn)生進(jìn)位二進(jìn)制結(jié)果為1, 由于進(jìn)位后超過(guò)了byte類型的空間,所以進(jìn)位部分被舍棄,即最終的結(jié)果為 方式實(shí)現(xiàn)了負(fù)數(shù)的運(yùn)算。-128在內(nèi)存中對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)為 ,如果兩個(gè)-128相加,不考慮Java運(yùn)算時(shí)的類型提升,運(yùn)算后會(huì)產(chǎn)生進(jìn)位,二進(jìn)制結(jié)果為1, ,由于進(jìn)位后超過(guò)了byte類型的空間,所以進(jìn)位部分被舍棄,即最 ,也就是0,這樣的結(jié)果顯然不是我們期望的,這說(shuō)明計(jì)算機(jī)中的算術(shù)運(yùn)算是會(huì)發(fā)生越界情況的,兩個(gè)數(shù)值的運(yùn)算結(jié)果過(guò)計(jì)算機(jī)中的該類型的數(shù)值范圍。由于Java中涉及表達(dá)式運(yùn)算時(shí)的類型自動(dòng)提升,我們無(wú)法用byte類型來(lái)做演示這種問(wèn)題和現(xiàn)象的實(shí)驗(yàn),大家可以用下面一個(gè)使用整數(shù)做實(shí)驗(yàn)的例子程序體驗(yàn)一下:inta=Integer.MAX_VALUE;intb=Integer.MAX_VALUE;intsum=a+b;先不考慮long類型,由于int的正數(shù)范圍為231次方,表示的最大數(shù)值約等于2*1000*1000*1000,也就是20億的publicclassBigInteger{intsign;byte[]publicBiginteger(Stringval){sign=;val=}publicBigIntegeradd(BigInteger}publicBigIntegersubtract(BigIntegerother)}publicBigIntegermultiply(BigInteger}publicBigIntegerdivide(BigInteger}}備注要想寫(xiě)這個(gè)的完整碼是非常雜的如果有的話可參看dk自帶的ava.ah.gIneer類的這也是能力經(jīng)驗(yàn)專業(yè)性英語(yǔ)水多個(gè)面的體現(xiàn)會(huì)人留下好的印象在編程力和他方面條差不多的情況,英語(yǔ)除了可使你獲機(jī)外薪水可以出一千。finalStringBuffera=newa=newa.append("publicvoid }equals方法是用于比較兩個(gè)獨(dú)立對(duì)象的內(nèi)容是否相同,就好比去比較兩個(gè)人的長(zhǎng)相是否相同,它比較的兩個(gè)對(duì)象是獨(dú)Stringa=newString("foo");Stringb=new以,表達(dá)式a.equals(b)true。在實(shí)際開(kāi)發(fā)中,我們經(jīng)常要比較傳遞進(jìn)行來(lái)的字符串內(nèi)容是否等,例如,Stringinput;input.equals(“quit”),許多人住,字符串的比較基本上都是使用equals方法。如果一個(gè)類沒(méi)有自己定義equalsObject類的equalsObject類的equalsbooleanequals(Objecto){returnthis==o;}equalsequals方法(Object類繼承的)就是使用==操作符,也falseequals方12例如,對(duì)于下面的程序,無(wú)論創(chuàng)建多少個(gè)實(shí)例對(duì)象,都只分配了一個(gè)staticVar變量,并且每創(chuàng)建一個(gè)實(shí)例對(duì)象,instanceVar1次。publicclasspublicstaticintstaticVar=0;publicintinstanceVar=0;publicVariantTest(){}}13staticstaticstaticstaticstaticstaticstatic方法的調(diào)用。14、Integerint的默認(rèn)值為0Integer的默認(rèn)nullInteger可以區(qū)分出未賦值和值為0的區(qū)別,int則無(wú)法表達(dá)出未賦值的情況,0的區(qū)別,則只能使用IntegerJSP開(kāi)發(fā)中,Integernull,所以0,所以,int不適合作為web層的表單數(shù)據(jù)的類型。OIDinthbmunsaved-value0。另外,Integer提供了多個(gè)與整數(shù)相關(guān)的操作方法,例如,將一個(gè)字符串轉(zhuǎn)換成整數(shù),Integer中還定義了表示整數(shù)的最?16、下面的代碼有什么不妥之處intx=return17public,private,protected,以及不寫(xiě)時(shí)的區(qū)別說(shuō)明:如果在修飾的元素上面沒(méi)有寫(xiě)任何修飾符,則表示friendly作用 當(dāng)前類同一package子孫類其他√√√√√√√×√√××√×××18、OverloadOverride的區(qū)別。Overloaded的方法是否可以改變返回值的類型重載Overload(即參數(shù)個(gè)數(shù)或類型不同。重寫(xiě)Override表示子類中的方法可以與父類中的某個(gè)方法的名稱和參數(shù)完全相同,通過(guò)子類創(chuàng)建的實(shí)例對(duì)象調(diào)用這個(gè)private類型,那么,子類則不存在覆蓋的限制,相當(dāng)于子類中增加了一個(gè)全新的方法。至于Overloaded的方法是否可以改變返回值的類型這個(gè)問(wèn)題,要看你倒底想問(wèn)什么呢?這個(gè)題目很模糊。如果幾個(gè)Overloaded的方法的參數(shù)列表不一樣,它們的返回者類型當(dāng)然也可以不一樣。但我估計(jì)你想問(wèn)的問(wèn)題是:如果兩個(gè)方法的表完全相同的方法,僅僅是返回類型不同,java就無(wú)法確定編程者倒底是想調(diào)用哪個(gè)方法了,因?yàn)樗鼰o(wú)法通過(guò)返回結(jié)果類override可以翻譯為覆蓋,從字面就可以知道,它是覆蓋了一個(gè)方法并且對(duì)其重寫(xiě),以求達(dá)到不同的作用。對(duì)我們來(lái)說(shuō)最熟悉的覆蓋就是對(duì)接口方法的實(shí)現(xiàn),在接口中一般只是對(duì)方法進(jìn)行了,而我們?cè)趯?shí)現(xiàn)時(shí),就需要實(shí)現(xiàn)接口的所4、被覆蓋的方法不能為privateoverload對(duì)我們來(lái)說(shuō)可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同的方法,通過(guò)定義不同的輸入?yún)?shù)來(lái)區(qū)分這些方法,然后再調(diào)用時(shí),VM就會(huì)根據(jù)不同的參數(shù)樣式,來(lái)選擇合適的方法執(zhí)行。在使用重載要注意以下的fun(int,float)fun(int,int));19Constructor構(gòu)造器Constructor不能被繼承,因此不能Override,但可以被Overload20、接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承具體類(concreteclass)?抽象類中是否main方法? 22面向?qū)ο蟮木幊陶Z(yǔ)言有41它才圓心和徑這兩屬性以只是調(diào)用的畫(huà)圓法表給圓發(fā)消息而圓這個(gè)方不應(yīng)該分配在人這個(gè)對(duì)象上,這就是面向?qū)ο蟮姆庋b性,即將對(duì)象封裝成一個(gè)高度自治和相對(duì)封閉的,對(duì)象狀態(tài)(屬性由這個(gè)對(duì)象自己的行方法來(lái)改變更便于理的例子是將車(chē)剎住車(chē)動(dòng)作是分給司機(jī)還是分給火車(chē)然應(yīng)該配給火車(chē)因自身不可能那么大力氣將個(gè)火車(chē)停來(lái)的只有車(chē)自己才能成這一作火車(chē)要調(diào)用部的合和剎車(chē)片多個(gè)器協(xié)作才完成剎這個(gè)動(dòng)剎車(chē)的程只classStringname;intage;}人本來(lái)是很復(fù)雜的事物,有很多方面,因?yàn)楫?dāng)前統(tǒng)只需要了解人的和,所以上定義的類只包含和這個(gè)屬這就一種抽使抽象可避免考慮些與目無(wú)關(guān)的節(jié)對(duì)抽象理解是不要用微鏡去看一個(gè)事物的所有方面,這樣涉及的內(nèi)容就太多了,劃分問(wèn)題的邊界,當(dāng)前系統(tǒng)需要什么,就只考慮什么多態(tài)是指程序中定義的變量所指向具體類型通過(guò)該變量發(fā)出的方法調(diào)用在編程并不確定而是在程序運(yùn)行期間確定即個(gè)量倒底指向哪的實(shí)例對(duì)象該量發(fā)出方法調(diào)到底是類中實(shí)現(xiàn)方法必須在由序運(yùn)行間才能定因在程序行才確定具的類樣不用改源程代碼以讓量綁定到各種同的類現(xiàn)上從導(dǎo)致該調(diào)的體方法隨改變即修改程代碼就以改程運(yùn)行時(shí)所定的具體代碼,讓程序可以選擇多個(gè)運(yùn)行狀態(tài),這就是多態(tài)性。多態(tài)性增強(qiáng)了軟件的靈活性和擴(kuò)展性。例如,下面代碼中的UsrDo是一接口,定義變量srDo向的實(shí)例象由aoacr.eDo(在執(zhí)行時(shí)候返,有時(shí)候向的是UerbDaoUerHrnaeaouseDao指向的具體類實(shí)現(xiàn),從而導(dǎo)致usrao.nsrUe()方法調(diào)用的具體代碼也隨之改變,即有時(shí)候調(diào)用的是UerdbDao的UserDaouserDao=daofactory.getDao();23、java24 class和interface有什么區(qū)別 修飾符的class即為抽象類, class類中的方法不必是抽象的。 publicstaticfinal。, 類型publicstaticfinalpublicstaticfinal類型。Servlet類都要用相同的方式進(jìn)行權(quán)限判斷、記錄日志和處理異常,那么就可以定義一個(gè)抽象的基類,讓所有的Servlet都繼承這個(gè)抽象基類,在抽象基類的service方法中完成權(quán)限判斷、記錄日志和處理異常的代碼,在各個(gè)子類中只是完成各自的業(yè)務(wù)邏輯代碼, classBaseServletextendspublicfinalvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throws{}catch(Excetpione)}}} }publicclassMyServlet1extends{{}}25 methodstaticstatic的,不能與混用。例如,F(xiàn)ileOutput類要硬件打交道,底層的實(shí)現(xiàn)用的是操作系統(tǒng)相關(guān)的api實(shí)現(xiàn),例如,在windows用cjdkFileOutputStreamopen方法的定義如下:privatenativevoidopen(Stringname)throwsc語(yǔ)言函數(shù)去調(diào)用別人的c語(yǔ)言函數(shù)。由于我們的cjavac語(yǔ)言函數(shù)java對(duì)接上,javac函數(shù)相對(duì)應(yīng)的方法,java中對(duì)應(yīng)的方法不需要寫(xiě)具體的代碼,但需要面native。synchronized與合用的問(wèn)題,我覺(jué)得也不行,因?yàn)樵谖規(guī)啄甑膶W(xué)習(xí)和開(kāi)發(fā)中,從來(lái)沒(méi)見(jiàn)到過(guò)這種情況,并synchronizedsynchronized同步所使用的同步鎖對(duì)象thisthis是什么。26、什么是內(nèi)部類?StaticNestedClassInnerClasspublicclass{int =publicvoid{Inner1inner1=newpublicclass {public{out_x=}}Inner2inner2=new}publicclass {}}Outerouter=newOuter.Inner1inner1=outer.new使用final或修飾符。這種內(nèi)部類對(duì)其他類是不可見(jiàn)的其他類無(wú)法這種內(nèi)部類,但是這種內(nèi)部類創(chuàng)建的實(shí)例對(duì)final修飾符。publicclass{publicvoid{newnewpublicvoid}}}staticStaticNestedClass,它不再具有內(nèi)部類的特性,所有,從狹義上講,它不是內(nèi)部類。StaticNestedClass與普通類在運(yùn)行時(shí)的行為和功能上沒(méi)有什么區(qū)別,只是在編程public、protected、默認(rèn)的、privatepublic和默認(rèn)的這兩種類型。在外面StaticNestedClass類的名稱為“外部類名.內(nèi)部類名。在外面不需要?jiǎng)?chuàng)建外部類的實(shí)例對(duì)象,StaticNestedClassInner是定義在OuterStaticNestedClass,那么可以使用如下語(yǔ)句創(chuàng)Inner類:Outer.Innerinner=new外部類中StaticNestedClass時(shí),可以直接使用StaticNestedClass的名字,而不需要加上外部類的名字了,在StaticNestedClass中也可以直接外部類的static的成員變量,不需要加上外部類的名字。StaticNestedClassstatic關(guān)鍵字,靜態(tài)方法中的StaticNestedfinal修飾符。備注:首先根據(jù)你的印象說(shuō)出你對(duì)內(nèi)部的總體方的特點(diǎn):例如,在兩個(gè)地方可以定義,以外類的成員變以及部類。class{staticintx;staticclassInner{void{}}}28、AnonymousInnerClass(內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口importpublicclassTestextendspublicstaticvoidmain(String[]args)new}publicvoidtest(){}}test方法中調(diào)用getClass().getName()方法,其實(shí)就是在調(diào)用從父類繼承的getClass()方法,等效于調(diào)用super.getClass().getName()方法,所以,super.getClass().getName()Test。30、String是最基本的數(shù)據(jù)類型嗎java.lang.String類是finalStringBuffer31、Strings="o";s=s+"world!";這兩行代碼執(zhí)行后,原始的String對(duì)象中的內(nèi)容到底變了沒(méi)有String對(duì)象,內(nèi)容是"o",然后我們對(duì)s進(jìn)行了+操作,那么s所指向的那個(gè)對(duì)象是否發(fā)生了改變呢?答案是沒(méi)有。這時(shí),s不指向原來(lái)那個(gè)對(duì)象了,而指向了另一個(gè)String對(duì)象,內(nèi)容為"oworld!",原來(lái)那個(gè)對(duì)象還存在于內(nèi)存之中,只是s這個(gè)變量不再指向它了。String來(lái)代表字符串的話會(huì)引起很大的內(nèi)存開(kāi)銷。因?yàn)镾tring對(duì)象建立之后不能再改變,所以對(duì)于每一個(gè)不同的StringStringBuffer類,它允許修改,而不是每個(gè)不同的字符串都要newString。例如我們要在構(gòu)造器中對(duì)一個(gè)名叫s的String變量進(jìn)行初始化,把它設(shè)置為初始值,應(yīng)當(dāng)這樣做:publicclassDemo{privateStrings;publicDemos="Initial}}s=newString("Initials都指向同一個(gè)對(duì)象。狀態(tài)都要一個(gè)對(duì)象來(lái)代表,可能會(huì)造能上的問(wèn)題。所以Java標(biāo)準(zhǔn)類庫(kù)還提供了一個(gè)可變版本,即StringBuffer。32String類Stringfinal33、StringsnewString("xyz");StringObject?兩個(gè)或一個(gè),”xyz”對(duì)應(yīng)一個(gè)對(duì)象,這個(gè)對(duì)象放在字符串常量緩沖區(qū),常量”xyz”不管出現(xiàn)多少遍,都是緩沖區(qū)中的那一ewrng”x”rng’xz’xy”34、StringStringBufferStringBuffer類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來(lái)動(dòng)態(tài)構(gòu)造字符數(shù)據(jù)。另外,String實(shí)現(xiàn)了equals方法,newString(“abc”).equals(newString(“abc”)的結(jié)果為true,而StringBuffer沒(méi)有實(shí)現(xiàn)equalsnewStringBuffer(“abc”).equals(newStringBuffer(“abc”)false。StringBuffersbf=newStringBuffer();for(inti=0;i<100;i++){}Stringstr=newString();for(inti=0;i<100;i++){str=str+}在講兩者區(qū)別時(shí),應(yīng)把循環(huán)的次數(shù)搞成10000,然后用endTime-beginTimeStringequalshashCodeStringBufferequalshashCode用正則表達(dá)式,代碼大概為:Stringresult用StingTokenizer,代碼為:StringTokenizer tokener=StringTokenizer(orgStr,”,”);String[]result=newString[tokener.countTokens()];Inti=0;?37、下面這條語(yǔ)句一共創(chuàng)建了多少個(gè)對(duì)象:StringStrings1="a";Strings2=s1+"b";Strings3="a"+"b";System.out.println(s2=="ab");System.out.println(s3==String對(duì)象。寫(xiě)如下兩行代碼,Strings="a"+"b"+"c"+"d";System.out.println(s=="abcd");38、tryreturntryfinallycode前還是后也許你的答案是在return之前,但往更細(xì)地說(shuō),我的答案是在returnpublicclassTest*@paramargsaddbyzxx,Dec9,publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubSystem.out.println(newTest().test());;}staticint{intx={return}{}}}1運(yùn)行結(jié)果是1,為什么呢?主函數(shù)調(diào)用子函數(shù)并得到結(jié)果的過(guò)程,好比主函數(shù)準(zhǔn)備一個(gè)空罐子,當(dāng)子函數(shù)要返回結(jié)果public {publicstatic {smallTt =new }public {{}

return1{return2}}}finallyreturn語(yǔ)句先執(zhí)行,finally2。Return并不是publicclassTest*@paramargsaddbyzxx,Dec9,publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubSystem.out.println(newTest().test());;}int{{}

return{return}}int{return}int{return}}結(jié)論:finallyreturnbreak40、finalfinallyfinalizefinal用于屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。內(nèi)部類要局部變量,局部變量必須定義成final類型,例如,一段代碼……finalize是Object類的一個(gè)方法,在收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供收集時(shí)的其他資源回收,例如關(guān)閉文件等。JVM不保證此方法總被調(diào)用錯(cuò)誤。java編譯器要求方法必須拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須拋出未獲的運(yùn)行時(shí)異常42、errorexception有什么區(qū)別error表示恢復(fù)不是不可能但很的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況43、JavaJavaJavajava.lang.Throwable,Throwable下面又派生了兩個(gè)子類:ErrorException,Error表示應(yīng)用程序本身無(wú)法克服和恢復(fù)的一種嚴(yán)重問(wèn)題,程序只有死的份了,ExceptionceptionNuoneExepon(CasCastExceptionjava為系統(tǒng)異常和普通異常提供了不同的解決方案,編譯器強(qiáng)制普通異常必須try..catch處理或用throws繼續(xù)拋給上處理或用throws,所以系統(tǒng)異常也稱為unchecked異常。445runtimeexception所謂系統(tǒng)異常,就是…..RuntimeExceptionjdkdocRuntimeExceptionNullPointerException45、JAVA語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finallytry塊中可以拋出異常?java5以前,有如下兩種:newThread(){}.start();這表示調(diào)用Thread子類對(duì)象的run方法newThread(){}表示一個(gè)Thread的子類的實(shí)例對(duì)象,子類加上run方法后的代碼如下:newThread(){publicvoidrun(){}newThread(newRunnable(){}).start();這表示調(diào)用ThreadRunnablerun方法,newRunnable(){}表示一個(gè)Runnable的子類的實(shí)例對(duì)象,runnable的子類加上run方法后的代碼如下:newThread(newpublicvoid}}java5開(kāi)始,還有如下一些線程池創(chuàng)建多線程的方式:ExecutorServicepool=Executors.newFixedThreadPool(3)for(inti=0;i<10;i++){pool.execute(newRunable(){publicvoid}Executors.newCachedThreadPool().execute(newRunable(){publicvoidrun(){}});Executors.newSingleThreadExecutor().execute(newRunable(){publicvoidrun(){}});有兩種實(shí)現(xiàn)方法,分別使用newThread()和newThread(runnable)形式,第一種直接調(diào)用thread的run方法,所以,我們Thread子類,即newSubThread()runnablerun方法。有兩種實(shí)現(xiàn)方法,分別是繼承ThreadRunnable接口synchronized關(guān)鍵字修飾同步方法在那種狀態(tài)下檢查和修改它們。結(jié)果很難檢查出真正的問(wèn)題所在。suspend()suspend()志線程應(yīng)該掛起,便用wait()命其進(jìn)入等待狀態(tài)。若標(biāo)志線程應(yīng)當(dāng)恢復(fù),則用一個(gè)notify()重新啟動(dòng)線程。47、sleep()和wait()有什么區(qū)別sleepcpu,cpusleep指定的時(shí)間過(guò)后,cpu才會(huì)回到這個(gè)線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖,sleepsleepcpu,但其他被同步鎖擋住了的線程也無(wú)法得到執(zhí)行。wait是指在一個(gè)已經(jīng)進(jìn)入了同步鎖的線程內(nèi),讓自己暫時(shí)讓出同步鎖,以便其他正notify方法(notifywait方notify方法后面的waitwait的講解一定要配合例子代碼來(lái)說(shuō)明,才packagecom.publicclassMultiThread*@parampublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubnewThread(newThread1()).start();try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}newThread(new}privatestaticclassThread1implements{publicvoidrun()//TODOAuto-generatedmethodsynchronized(MultiThread.class){System.out.println("enterthread1...");System.out.println("thread1istry}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}System.out.println("thread1isgoingon...");System.out.println("thread1isbeing}}}privatestaticclassThread2implements{publicvoidrun()//TODOAuto-generatedmethodsynchronized(MultiThread.class){System.out.println("enterthread2...");System.out.println("thread2notifyotherthreadcanrelease方法并不釋放鎖,即使System.out.println("thread2issleetentry}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}System.out.println("thread2isgoingon...");System.out.println("thread2isbeing}}}}class{synchronizedstaticvoid {}synchronizedvoid}ThreadRunnable接口synchronized,wait與notifyJVM確定喚醒哪個(gè)線程,而且不是按優(yōu)先級(jí)。52synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?synchronized關(guān)鍵字,并且內(nèi)部沒(méi)有調(diào)用waitmaincpu,人的感覺(jué)是a,b在同時(shí)執(zhí)行,好比大家在同一個(gè)上網(wǎng),只有一條到外部網(wǎng)線,其實(shí),這條網(wǎng)線一會(huì)為a傳b傳數(shù)據(jù),由于切換時(shí)間很短暫,所以,大家感覺(jué)都在同時(shí)上網(wǎng)。狀態(tài):就緒,運(yùn)行,synchronize阻塞,waitsleep掛起,結(jié)束。waitsynchronizedstartsynchronized語(yǔ)句synchronizedwait方法轉(zhuǎn)為掛起狀54synchronizedjava.util.concurrent.locks.Lock主要相同點(diǎn):Locksynchronized所實(shí)現(xiàn)的所有功能finally從句中釋放。LocktryLock方法可以非阻塞方packagecom.importimportpublicclassThreadTest*@paramprivateintprivateLocklock=newpublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubThreadTesttt=newThreadTest();for(inti=0;i<2;i++){newThread(tt.newnewThread(tt.new}}privateclassSubtractorimplements{publicvoidrun()//TODOAuto-generatedmethod{/*synchronized(ThreadTest.this){System.out.println("j--="+j--);{System.out.println("j--="+j--{}}}}privateclassAdderimplements{publicvoidrun()//TODOAuto-generatedmethod{/*synchronized(ThreadTest.this){System.out.println("j++="+j++);{System.out.println("j++="+{}}}}}554j1j1publicclass{privateintpublicstaticvoidmain(Stringargs[]){Incinc=tt.newInc();Decdec=tt.newDec();for(inti=0;i<2;i++){Threadt=newThread(inc);t=newThread(dec);}}privatesynchronizedvoidinc(){}privatesynchronizedvoiddec(){}classIncimplementsRunnable{publicvoidrun(){for(inti=0;i<100;i++){}}}classDecimplementsRunnable{publicvoidrun(){for(inti=0;i<100;i++){}}}}class{JMangerj=newJManager();{new}void{for(int{newnewRunnable(){publicvoidnewThread(newRunnable(){publicvoid}}}class{privatej=publicsynchronizedvoid{}publicsynchronizedvoid{}}publicclassThreadTest*@parampublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodnew}publicvoid{finalBusinessbusiness=newnewnew{publicvoidrun()for(int{}}}for(int{}}privateclass{booleanbShouldSubtrue;//publicsynchronizedvoidMainThread(int{try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}for(int{

System.out.println(Thread.currentThread().getName()+":i="+i+",j="}bShouldSub=true;}publicsynchronizedvoidSubThread(int{try{}catch(InterruptedExceptione)//TODOAuto-generatedcatchblock}for(int{

System.out.println(Thread.currentThread().getName()+":i="+i+",j="}bShouldSub=false;}}}packagecom.publicclassThreadTestprivatestaticbooleanbShouldMain=publicstaticvoidmain(String[]args)//TODOAuto-generatedmethod/*newThread(){publicvoidrun(){for(int{for(int{System.out.println("i="+i+",j="+}}}//finalStringstr=newnewnew{publicvoid{for(int{synchronized(ThreadTest.class){try{catch(InterruptedExceptione){}}for(int{Thread.currentThread().getName()+"i="+i+",j="+j);}}}}

bShouldMain=true;}for(int{synchronized(ThreadTest.class){trycatch(InterruptedExceptione){}}for(int{Thread.currentThread().getName()+"i="+i+",j="+j);}bShouldMain=false;}}}}jdk5中的并發(fā)庫(kù)來(lái)實(shí)現(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);threadPool.execute(newRunnable(){publicvoid{for(int{{for(int{System.out.println(Thread.currentThread().getName()+",j="+}bBhouldSubThread=false;}catch(Exception{}{}}}for(inti=0;i<50;i++){{for(intj=0;j<10;j++){System.out.println(Thread.currentThread().getName()+",j="+}bBhouldSubThread=true;}catch(Exception{}{}}}}57Collection58、Collection59、ArrayListVector的區(qū)別hashsetArrayListVector的功能,我們使用對(duì)比方式,更有利于說(shuō)明問(wèn)題。接著才說(shuō)ArrayListVector線程會(huì)到集合,那最好是使用Vector,因?yàn)椴恍枰覀冏约涸偃タ紤]和編寫(xiě)線程安全的代碼。ArrayList與Vector都有一個(gè)初始的容量大小,當(dāng)進(jìn)它們里面的元素的個(gè)數(shù)超過(guò)了容量時(shí),就需要增加ArrayListArrayList沒(méi)有提供設(shè)置增長(zhǎng)空間的方法。60、HashMapHashtableHashMap是Hashtable(非線程安全的實(shí)現(xiàn)MapHashMap(null)鍵值(key),由于非線程安全,在只有一個(gè)線程的情況下,效率要高于Hashtable。HashMapnull作為一個(gè)entry的keyvalueHashtableHashMap把Hashtablecontains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontainsHashtableDictionaryHashMapJava1.2Mapinterface最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個(gè)線程Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap就必須為之提供外同步。Hashtable和HashMaphash/rehash一.歷史原因:HashtableDictionary類的,HashMapJava1.2Map接口的一個(gè)實(shí)現(xiàn)二.同步性:HashtableHashMap是線程序不安全的,不是同步的三.值:只有HashMapkeyvalue61、List和Map區(qū)別62、List,SetMapCollection接口List,Set是,Map現(xiàn)在我要向Set集合再存入一個(gè)B對(duì)象,但B對(duì)象與A對(duì)象equals相等,則B對(duì)象不進(jìn)去,所以,Set集合的add方List表示有先后順序的集合,注意,不是那種按、按大小、按價(jià)格之類的排序。當(dāng)我們多次調(diào)用add(Obje)方法e)方法,就可以指定當(dāng)前對(duì)象在集合中的存放位置。一個(gè)對(duì)象可以被反復(fù)進(jìn)List中,每調(diào)用一次add方法,這個(gè)對(duì)象這個(gè)對(duì)象被add多次時(shí),即相當(dāng)于集合中有多個(gè)索引指向了這個(gè)對(duì)象,如圖x所示。List除了可以以Itor接口取得所有的元素,再逐一遍歷各個(gè)元外,還可以調(diào)用get(indexi)來(lái)明確說(shuō)明取第幾個(gè)。對(duì)key/value,不能重復(fù)的key,這個(gè)重復(fù)的規(guī)則也是按equals比較相等。取則可以根據(jù)key獲得相應(yīng)的value,即keyvalueMap.Entry對(duì)象的集合。List以特定次序來(lái)持有元素,可有重復(fù)元素。Set無(wú)法擁有重復(fù)元素,內(nèi)部排序。Mapkey-value值,value>62,"xyz">65在hashSet中的順序不是62,65,78,這些問(wèn)題感謝以前一個(gè)叫的學(xué)員提出,最后通過(guò)查看代碼給他解釋清楚,看本次培訓(xùn)學(xué)員當(dāng)中有多少能看懂源碼。LinkedHashSet按插入的順序,那被對(duì)象的hashcode方法還有什么作用呢?學(xué)員想想!hashsethashcodeequals方法是否相等。newStudent插入到HashSet中,看HashSetsizehashcode和equalssize。Vector由于使用了LinkedList也是線程不安全的,LinkedList提供了一些方法,使得LinkedListFor(inti=0;i<vector.size();i++){Objectobj=vector.get(i);}還有一種簡(jiǎn)單的方式,HashSetsetnew66、CollectionCollectionsCollectionSet67、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?是用==equals()?它們有何區(qū)別Set里的元素是不能重復(fù)的,元素重復(fù)與否是使用equals()equals()和==方法決定值是否指向同一對(duì)象equals()在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類型相配的和最常用的集合類是List和Map。List的具體實(shí)現(xiàn)包括 和和操作任何類型對(duì)象的元素列表。List適用于按數(shù)值索 Map提供了一個(gè)更通用的元素方法。Map集合類用于元素(稱作"鍵"和"值"其中每個(gè)鍵映射到一個(gè)值

Listget(intindex)這樣的方法,因?yàn)樗梢园错樞蛉≡囟鴖et類中沒(méi)有g(shù)et(intindex)這樣的方法List和set都可以迭代出所有元素迭代時(shí)先要得到一個(gè)itor對(duì)象所以,set和list類都有一個(gè)itor方法,用于返回那個(gè)itor對(duì)象。map可以返回三個(gè)集合,一個(gè)是返回所有的key的集合,value的集合,再一個(gè)返回的keyvalueEntrySet對(duì)象的集合,map也有g(shù)et方法,參數(shù)keykeyvalue。69、兩個(gè)對(duì)象值相同(x.equals(y)true)hashcode,這句話對(duì)不對(duì)如果對(duì)象要保存在HashSetHashMap中,它們的equalshashcode儲(chǔ)的對(duì)象就不用實(shí)現(xiàn)hashcode,當(dāng)然,我們沒(méi)有理由不實(shí)現(xiàn),通常都會(huì)去實(shí)現(xiàn)的。compareTo方法,還是拋異常!publicclassParentimplementsComparableprivateintage=publicParent(intthis.age=}publicintcompareTo(Objecto)//TODOAuto-generatedmethodstubSystem.out.println("methodofparent");Parento1=(Parent)o;}}publicclassChildextendsParentpublic}publicintcompareTo(Objecto)//TODOAuto-generatedmethodstubSystem.out.println("methodofchild"); Childo1=return}}publicclassTreeSetTest*@parampublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubTreeSetset=newTreeSet();set.add(newParent(3));set.add(newChild());set.add(newParent(4));}}715要讓人家感覺(jué)你對(duì)javaee開(kāi)發(fā)很熟,所以,不能僅僅只列corejava中的那些東西,要多列你在做ssh項(xiàng)目中涉及的那些東 常用的包 java.sql 72、java中有幾種類型的流?JDKInputStreamOutputStreamInputStreamReaderOutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。73 IO流,對(duì)應(yīng)的抽象OutputStreamInputStream,不同的實(shí)現(xiàn)類就代表不同的輸入和輸出設(shè)備,它們都是針對(duì)字節(jié)進(jìn)行操作的。包裝,字符流則是直接接受字符串,它內(nèi)部將串轉(zhuǎn)成字節(jié),再寫(xiě)入底層設(shè)備,這為我們向IO設(shè)別寫(xiě)入或字符串提供importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.InputStreamReader;importjava.io.PrintWriter;publicclassIOTestpublicstaticvoidmain(String[]args)throwsException{Stringstr=""; =new/*FileWriterfw=newFileWriter("1.txt");PrintWriterpw=newPrintWriter("1.txt","utf-8");/*FileReaderfr=newFileReader("1.txt");char[]buf=newchar[1024];intlen=StringmyStr=newString(buf,0,len);/*FileInputStreamfr=newFileInputStream("1.txt");byte[]buf=newbyte[1024];intlen=StringmyStr=newString(buf,0,len,"UTF-8");BufferedReaderbr=newnew)StringmyStr=br.readLine();}}74javajavaSerializablejava對(duì)象變成某個(gè)格式的字節(jié)流再傳輸,但是,jreOutputStreamwriteObjectjava幫我要實(shí)現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對(duì)象是可被序列化的。例如,在webSession中,tomcatSession對(duì)象序列化到硬盤(pán),這個(gè)對(duì)象就必須實(shí)現(xiàn)Serializable接口。如果對(duì)象要經(jīng)過(guò)分布式系統(tǒng)進(jìn)行網(wǎng)絡(luò)傳輸或通過(guò)rmi等調(diào)用,這就需要在網(wǎng)絡(luò)上傳輸Serializable接口。75JVMclass文件的原理機(jī)制JVMClassLoader和它的子類來(lái)實(shí)現(xiàn)的,JavaClassLoaderJava運(yùn)行時(shí)系統(tǒng)組件。它負(fù)責(zé)76、heapstackjava的內(nèi)存分為兩類,一類是棧內(nèi)存,一類是堆內(nèi)存。棧內(nèi)存是指程序進(jìn)入一個(gè)方法時(shí),會(huì)為這個(gè)方法單獨(dú)分配一塊new創(chuàng)建的對(duì)象都放在堆里,所以,它不會(huì)隨方法的結(jié)束而。方法中的局部變量使用final修飾后,放在堆中,而不是棧中。77、GC是什么?GC是收集的意思(GabageCollection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。78、回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。。Java語(yǔ)言中一個(gè)顯著的特點(diǎn)就是引入了回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問(wèn)題迎刃而解,它使得Java有對(duì)象的才有"作用域"回收可以有效的防止內(nèi)存,有效的使用可以使用的內(nèi)存回收器通常是作。。對(duì)于GC

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論