




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、 一個(gè)".java"源文件中是否可以包括多個(gè)類(lèi)(不是內(nèi)部類(lèi))?有什么限制? 可以,但是只能有一個(gè)類(lèi)用public修飾,并且用public修飾的類(lèi)名與文件名要一致2、&和&&的區(qū)別。 &和&&都可以用作邏輯與;&&還具有短路功能,即如果第一個(gè)表達(dá)式的結(jié)果為false,則不再計(jì)算第二個(gè)表達(dá)式;&還可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是boolean類(lèi)型時(shí),&表示按位與操作。3、Java有沒(méi)有g(shù)oto?java中的保留字,現(xiàn)在沒(méi)有在java中使用。4、在JAVA中,如何跳出當(dāng)前的多重
2、嵌套循環(huán)? break+變量控制 與 return5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上? Switch可以作用在int上,而byte可以隱式轉(zhuǎn)換為int 所以能作用在byte上不能作用在long上,也不能作用在String上6、short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)? 1在java中為int數(shù)據(jù)類(lèi)型,short+int=int,大類(lèi)型轉(zhuǎn)為小類(lèi)型,編譯時(shí),會(huì)報(bào)告需要強(qiáng)制轉(zhuǎn)換類(lèi)型的錯(cuò)誤。s1+=1不會(huì)報(bào),因?yàn)镴VM會(huì)對(duì)它特殊處理(自動(dòng)強(qiáng)轉(zhuǎn))7、char型變量中
3、能不能存貯一個(gè)中文漢字?為什么?可以,char型變量是用來(lái)存儲(chǔ)unicode(依妮Q特)編碼的,而unicode編碼包含了中文,所以是可以保存的 8、編程題: 用最有效率的方法算出2乘以8等於幾? 2<<3,表示將2左移3位;一個(gè)數(shù)左移幾位就表示這個(gè)數(shù)乘以了2的幾次方,左移運(yùn)算,CPU直接支持,所以是最有效率的9、請(qǐng)?jiān)O(shè)計(jì)一個(gè)一百億的計(jì)算器思路:用兩個(gè)數(shù)組分別保存兩個(gè)操作數(shù),再新建一個(gè)數(shù)組保存結(jié)果。10、使用final關(guān)鍵字修飾一個(gè)變量時(shí),是引用不能變,還是引用的對(duì)象不能變? 引用變量不能變11、"="和equals方法究竟有什么區(qū)別?=和equals方法都可以用
4、來(lái)比較兩個(gè)對(duì)象是否是同一個(gè)對(duì)象。=還可以比較兩個(gè)變量的值是否相等。equals是Object類(lèi)中的方法,可以由子類(lèi)重寫(xiě)此方法,實(shí)現(xiàn)內(nèi)容相等。12、靜態(tài)變量和實(shí)例變量的區(qū)別? 語(yǔ)法上不同:靜態(tài)變量前要加static關(guān)鍵字,實(shí)例變量不需要程序運(yùn)行時(shí)不同:實(shí)例變量是屬于某個(gè)對(duì)象的,只有創(chuàng)建了對(duì)象,才會(huì)為這個(gè)對(duì)象的實(shí)例變量分配空間。靜態(tài)變量是屬于類(lèi)的,當(dāng)程序加載了這個(gè)類(lèi)的字節(jié)碼文件,就會(huì)為靜態(tài)變量分配空間,并且所有對(duì)象共享這個(gè)變量13、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用? 不可以,非static方法需要與對(duì)象關(guān)聯(lián)在一起的,而static方法調(diào)用時(shí)不需要對(duì)象,可以直接調(diào)用,
5、也就是說(shuō)調(diào)用static方法時(shí),可能還沒(méi)有創(chuàng)建任何實(shí)例14、Integer與int的區(qū)別int是java中的8種基本數(shù)據(jù)類(lèi)型之一,默認(rèn)值是0,Integer是int的包裝類(lèi),默認(rèn)值是null,即Integer可以表示未賦值和賦值為015、(麥死)Math.round(亂的)(11.5)等於多少? Math.round(-11.5)等於多少?12,-11,Math.round()方法的實(shí)現(xiàn)是: Math.floor(n+0.5);16、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別本類(lèi)同包子類(lèi)其他類(lèi)publicprotectedfriendlyprivate17、Ove
6、rload(喔我樓的)和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型? Overload是重載,Override是重寫(xiě)。Overload是指在一個(gè)類(lèi)中,方法名相同,參數(shù)列表不同,那么這些方法之間構(gòu)成重載。Override是指在父子類(lèi)之間,子類(lèi)的方法簽名和父類(lèi)的方法簽名完全一樣,那么這兩個(gè)方法構(gòu)成重寫(xiě)。Overload的方法可以改變返回值。因?yàn)檎{(diào)用方法時(shí),返回值可以接受也可以不接受,所以編譯器無(wú)法根據(jù)返回值來(lái)判斷是否重載。18、構(gòu)造器Constructor(看似爪克特)是否可被override? Constructor不能被繼承,所以不能override19、接口是
7、否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承具體類(lèi)(concrete class)? 抽象類(lèi)中是否可以有靜態(tài)的main方法?接口可以繼承接口,抽象類(lèi)可以實(shí)現(xiàn)接口,抽象類(lèi)可以繼承具體類(lèi),抽象類(lèi)中可以有靜態(tài)的main方法20、寫(xiě)clone()方法時(shí),通常都有一行代碼,是什么? super.clone();克隆時(shí),首先得將父類(lèi)的成員克隆完。21、面向?qū)ο蟮奶卣饔心男┓矫娣庋b封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只能通過(guò)已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪問(wèn)其他對(duì)象。繼承繼承是
8、一種聯(lián)結(jié)類(lèi)的層次模型,并且允許和鼓勵(lì)類(lèi)的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中派生,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承。新類(lèi) 繼承了原始類(lèi)的特性,新類(lèi)稱(chēng)為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或 增加新的方法使之更適合特殊的需要。抽象抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數(shù)據(jù)抽象。多態(tài)多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包
9、含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題。22、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么? 靠的是父類(lèi)或接口能夠指向子類(lèi)或?qū)崿F(xiàn)類(lèi)。程序運(yùn)行時(shí),JVM會(huì)根據(jù)內(nèi)存中實(shí)際的對(duì)象調(diào)用方法。23、abstract(抽象) class和interface有什么區(qū)別? 1、abstract class 本質(zhì)是類(lèi),用abstract修飾類(lèi),而interface是接口,將class替換為interface2、abstract class可以有構(gòu)造方法,interface不能有3、abstract class中可以包含普通變量,interface所有的變量都是final
10、 static的4、abstract class中可以包含普通方法,interface中所有的方法都是抽象的。5、abstract class中除抽象方法不可以是private修飾符外,其它成員任意;而interface中所有成員的修飾符都為public6、abstract class可以繼承一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口,interface只能繼承接口24、abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized? abstract的方法不可以是static,abstract方法必須由子類(lèi)去實(shí)現(xiàn),而static方法可以由當(dāng)前類(lèi)調(diào)用。abstr
11、act的方法不可以是native,abstract方法必須由子類(lèi)去實(shí)現(xiàn),而native是調(diào)用其它程序語(yǔ)言的代碼,所以不存在由子類(lèi)去實(shí)現(xiàn)的問(wèn)題,矛盾。關(guān)于abstract和synchronized同用的問(wèn)題,我覺(jué)得也不行,因?yàn)樵谶@幾年的開(kāi)發(fā)中,從沒(méi)見(jiàn)過(guò)這種情況,而且我覺(jué)得synchronized應(yīng)該是作用在一個(gè)具體的方法上才有意義。25、什么是內(nèi)部類(lèi)?在一個(gè)類(lèi)的內(nèi)部定義的類(lèi)叫做內(nèi)部類(lèi)。26、內(nèi)部類(lèi)可以引用外部類(lèi)的成員嗎?有沒(méi)有什么限制? 如果不是靜態(tài)內(nèi)部類(lèi),完全可以。27、Static Nested Class 和 Inner Class的不同。 Nested Class一般是C+的說(shuō)法,Inn
12、er Class一般是Java的說(shuō)法,指的是同一意思。內(nèi)部類(lèi)分為靜態(tài)內(nèi)部類(lèi)和非靜態(tài)內(nèi)部類(lèi)。靜態(tài)內(nèi)部類(lèi)中可以包含靜態(tài)成員,非靜態(tài)內(nèi)部類(lèi)中不可以包含靜態(tài)成員。靜態(tài)內(nèi)部類(lèi)中不能引用外部類(lèi)中的實(shí)例成員。非靜態(tài)內(nèi)部類(lèi)則沒(méi)有這個(gè)限制。28、Anonymous Inner Class (匿名內(nèi)部類(lèi)) 是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)? 可以繼承其它類(lèi),可以實(shí)現(xiàn)接口29、String是最基本的數(shù)據(jù)類(lèi)型嗎? 不是,基本數(shù)據(jù)類(lèi)型是:byte short int long float double char boolean30、String s =
13、 "Hello"s = s + " world!"這兩行代碼執(zhí)行后,原始的String對(duì)象中的內(nèi)容到底變了沒(méi)有?沒(méi)有,String類(lèi)被設(shè)計(jì)為不可變的類(lèi)。所以它的所有對(duì)象都不可變。31、是否可以繼承String類(lèi)? 不可以。String被final修飾,被final修飾的類(lèi)不可被繼承。32、String s = new String("xyz");創(chuàng)建了幾個(gè)String Object? 二者之間有什么區(qū)別?2個(gè)對(duì)象。一個(gè)放在常量區(qū),不管寫(xiě)多少遍,永遠(yuǎn)只有一個(gè)。一個(gè)放在堆內(nèi)存中。每次new String就產(chǎn)生一個(gè)新的。33、String
14、和StringBuffer的區(qū)別String和StringBuffer都是操作字符串的類(lèi)。String類(lèi)被設(shè)計(jì)為不可變,而StringBuffer可變。34、如何把一段逗號(hào)分割的字符串轉(zhuǎn)換成一個(gè)數(shù)組?第一種用正則表達(dá)式的方式:String類(lèi)的split方法第二種方式:StringTokenizer,代碼為: new StringTokenizer(“1,2,3,4”,”,”);35、數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?數(shù)組是length屬性,String有l(wèi)ength()這個(gè)方法 36、try 里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的fi
15、nally 里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后? 會(huì),return前38、final, finally, finalize的區(qū)別。 final用來(lái)修飾類(lèi),變量,方法的。修飾類(lèi)表示類(lèi)不可被繼承,修飾變量表示變量的引用不可變,修飾方法表示方法不可被重寫(xiě)。finally是異常處理結(jié)構(gòu)中的一部分,表示一定會(huì)執(zhí)行。finalize是Object類(lèi)的方法,當(dāng)垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用此對(duì)象的這個(gè)方法。39、運(yùn)行時(shí)異常與一般異常有何異同? 一般異常強(qiáng)制要求捕獲或聲明。運(yùn)行時(shí)異??梢圆东@,也可以不捕獲。40、error和exception有什么區(qū)別? error表示恢復(fù)不是不可能
16、但是很困難的情況下的一種嚴(yán)重問(wèn)題。例如:內(nèi)存溢出exception表示程序的設(shè)計(jì)或?qū)崿F(xiàn)有問(wèn)題。也就是說(shuō)如果程序正常運(yùn)行,不會(huì)發(fā)生的情況。41、Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。當(dāng)Java程序違反了Java的語(yǔ)義規(guī)則時(shí),JVM就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語(yǔ)義規(guī)則包括兩種:一種是Java類(lèi)庫(kù)內(nèi)置的語(yǔ)義檢查,另一種是程序員自己定義的異常。 42、給我一個(gè)你最常見(jiàn)到的runtime(茹二樓) exception。 ArithMaticExceptionNullPointExceptionIndexOfBoundExceptionHibernateException(子類(lèi):CacheEx
17、ception,LazyInitializationException,MappingException)NestedRuntimeException(AopConfigException,AopInvocationException)43、JAVA語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎? throws 用來(lái)表名方法可能拋出異常。throw 用來(lái)明確的拋一個(gè)異常。try 用來(lái)監(jiān)控一段可能出現(xiàn)異常的代碼。當(dāng)出現(xiàn)異常后進(jìn)入catch塊,進(jìn)行異常類(lèi)型匹配finally表示無(wú)論是否出現(xiàn)異常都要執(zhí)行的代碼。4
18、4、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用? 有兩種實(shí)現(xiàn)方法,分別是繼承Thread(斯 read)類(lèi)與實(shí)現(xiàn)Runnable(軟的包)接口 用synchronized(新鬼耐斯特)關(guān)鍵字修飾同步方法 因?yàn)樗麄兪蔷€程的方法,不安全,當(dāng)已啟動(dòng)后,就想脫韁野馬難以把控45、sleep() (斯瑞譜)和 wait() (外特)有什么區(qū)別?1、sleep是線程類(lèi)的方法wait 是Object類(lèi)的方法2、sleep會(huì)自動(dòng)醒來(lái)wait需要notify喚醒3、sleep不會(huì)釋放鎖wait會(huì)釋放鎖46、同步和異步有何異同,在什么情況下
19、分別使用他們?舉例說(shuō)明。 48、多線程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法? 多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable接口 同步的實(shí)現(xiàn)方面有三種:1、同步代碼塊2、同步方法3、Lock49、啟動(dòng)一個(gè)線程是用run()還是start()? .Start()(斯達(dá)特)50、當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法? 分幾種情況:1.其他方法前是否加了synchronized關(guān)鍵字,如果沒(méi)加,則能。2.如果這個(gè)方法內(nèi)部調(diào)用了wait,則可以進(jìn)入其他synchronized方法。3.如果其他個(gè)方法都加了synchroniz
20、ed關(guān)鍵字,并且內(nèi)部沒(méi)有調(diào)用wait,則不能。51、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系 線程就是進(jìn)程中的一個(gè)執(zhí)行線路。新建new Thread(); 就緒:thread.start(); 運(yùn)行,阻塞,掛起,結(jié)束。創(chuàng)建一個(gè)線程,這時(shí)狀態(tài)為新建,當(dāng)調(diào)用start方法后轉(zhuǎn)為就緒,再由線程調(diào)度器將就緒狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài),遇到synchronized語(yǔ)句后,可能由運(yùn)行狀態(tài)改為阻塞狀態(tài),當(dāng)獲得synchronized鎖后由阻塞狀態(tài)轉(zhuǎn)為運(yùn)行,這時(shí)調(diào)用wait方法轉(zhuǎn)為掛起狀態(tài)。當(dāng)線程關(guān)聯(lián)的代碼執(zhí)行完成后。線程轉(zhuǎn)為結(jié)束。52、簡(jiǎn)述synchronized和java.util.concurrent.l
21、ocks.Lock的異同 ? 主要相同點(diǎn):Lock(拉克)能完成synchronized所實(shí)現(xiàn)的所有功能 主要不同點(diǎn):Lock有比synchronized更精確的線程語(yǔ)義和更好的性能。synchronized會(huì)自動(dòng)釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。 54、ArrayList和Vector的區(qū)別ArrayList和Vector都實(shí)現(xiàn)了List接口。ArrayList是線程不安全的,Vector是線程安全的。ArrayList的增長(zhǎng)方式為*3/2+1 Vector的增長(zhǎng)方式為*2,Vector還可以設(shè)置增長(zhǎng)量。55、HashMap和Hashtable的區(qū)
22、別Hashtable和HashMap都實(shí)現(xiàn)了Map接口。Hashtable是線程安全的,HashMap是線程不安全的。Hashtable不允許鍵值為null,HashMap允許。Hashtable自JDK1.0就有了,HashMap到1.2才出來(lái)。Map中有2個(gè)方法分別是containsKey(康騰思Key)和containsValue;Hashtable中還有個(gè)contains方法,容易讓人誤解,HashMap沒(méi)有。56、List 和 Map 區(qū)別?List是存儲(chǔ)單列數(shù)據(jù)的有序集合,允許重復(fù)。而Map是鍵值對(duì)雙列數(shù)據(jù)的集合。鍵不允許重復(fù),值可以重復(fù)。57、List, Set, Map是否繼承
23、自Collection接口? Collection(克萊克神)是集合類(lèi)的頂級(jí)接口,其子接口分別是List和SetList下有ArrayList,LinkedList Set下有HashSet TreeSetCollection和Map沒(méi)有關(guān)系,Map是HashMap的父接口58、List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)? List以特定的次序來(lái)持有元素,允許重復(fù)。Set無(wú)法擁有重復(fù)元素,內(nèi)部排序。Map保存key-value值,key不可重復(fù),value可重復(fù)。59、說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性 ArrayList和Vector
24、都是使用數(shù)組存儲(chǔ)數(shù)據(jù)。查找快,插入慢。由于Vector是線程安全的,所以性能上比ArrayList差。LinkedList是鏈表結(jié)構(gòu)。插入快,查找慢。60、去掉一個(gè)Vector集合中重復(fù)的元素 最簡(jiǎn)單的方式:HashSet set = new HashSet(vector);61、Collection 和 Collections的區(qū)別。Collection是集合類(lèi)的頂級(jí)接口,而Collections是集合類(lèi)的輔助類(lèi),如:將一個(gè)數(shù)組的元素copy到另一個(gè)集合。 62、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用=還是equals()? 它們有何區(qū)別? equals,區(qū)別見(jiàn)1
25、1題63、你所知道的集合類(lèi)都有哪些?主要方法? 集合類(lèi)有(畫(huà)集合類(lèi)的體系結(jié)構(gòu))ArrayList的主要方法:add,get,remove,contains,indexOf,isEmpty,toArray,iteratorLinkedList的主要方法:add,get,remove,addFirst,addLast,getFirst,getLast,iteratorHashSet的主要方法:add,iterator,removeHashMap的主要方法:put,get,remove,entrySet,keyset,values64、兩個(gè)對(duì)象值相同(x.equals(y) = true),但卻可有
26、不同的hash code,這句話對(duì)不對(duì)? 對(duì)。+65、java中有幾種類(lèi)型的流?JDK為每種類(lèi)型的流提供了一些抽象類(lèi)以供繼承,請(qǐng)說(shuō)出他們分別是哪些類(lèi)? 根據(jù)功能分:輸入流,輸出流根據(jù)類(lèi)型分:字節(jié)流,字符流輸入字節(jié)流的抽象類(lèi):InputStream輸出字節(jié)流的抽象類(lèi):OutputStream(Stream斯俊木)輸入字符流的抽象類(lèi):Reader(瑞得)輸出字符流的抽象類(lèi):Writer(ruai 的)66、什么是java序列化,如何實(shí)現(xiàn)java序列化? 序列化就是指將內(nèi)存中的一個(gè)對(duì)象存儲(chǔ)到硬盤(pán)中或者轉(zhuǎn)為字節(jié)碼作網(wǎng)絡(luò)傳輸。實(shí)現(xiàn)Serializable(修兒奈斯啵)接口。67、描述一下JVM加載cla
27、ss文件的原理機(jī)制? JVM中類(lèi)的加載是由ClassLoader和它的子類(lèi)來(lái)實(shí)現(xiàn)的。Java Class Loader是一個(gè)重要的Java運(yùn)行時(shí)系統(tǒng)組件。它是一個(gè)負(fù)責(zé)查找和裝入類(lèi)文件的類(lèi)。68、heap(細(xì)譜)和stack(死大克)有什么區(qū)別。 stack是用來(lái)保存基本數(shù)據(jù)類(lèi)型,以及變量的引用。小,速度快heap是用來(lái)保存new 出來(lái)的對(duì)象。大,速度慢。69、GC是什么? 為什么要有GC? GC是Garbage Collection(垃圾回收)。內(nèi)存處理是程序員容易出現(xiàn)問(wèn)題的地方。忘記回收或錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰。Java提供的GC可以自動(dòng)檢測(cè)對(duì)象是否已經(jīng)死亡,從而進(jìn)行
28、回收內(nèi)存。70、垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。 垃圾回收機(jī)制使得程序員不需要關(guān)注內(nèi)存的回收和釋放,提高了程序的健壯性。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別線程運(yùn)行。當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi)始監(jiān)測(cè)這個(gè)對(duì)象的地址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對(duì)象。通過(guò)這種方式確定哪些對(duì)象是”不可達(dá)”時(shí),GC就有責(zé)任回收這些內(nèi)存空間。標(biāo)記垃圾回收機(jī)制和分帶復(fù)制垃圾回收機(jī)制。71、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收? 垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別線程運(yùn)行。當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi)始監(jiān)測(cè)這個(gè)對(duì)象的地
29、址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對(duì)象。通過(guò)這種方式確定哪些對(duì)象是”不可達(dá)”時(shí),GC就有責(zé)任回收這些內(nèi)存空間??梢?。通過(guò)System.gc();或者Runtime.getRuntime().gc();來(lái)通知GC回收內(nèi)存,但是Java語(yǔ)言規(guī)范不保證GC一定會(huì)執(zhí)行。72、什么時(shí)候用assert(額色特)。 assert(斷言)是程序開(kāi)發(fā)中一種常見(jiàn)的調(diào)試方式。73、java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。 會(huì)。內(nèi)存泄漏就是指一個(gè)不再被程序使用的對(duì)象一直占據(jù)著內(nèi)存。長(zhǎng)生命周期的對(duì)象持有短生命周期對(duì)象的引用就很可能發(fā)生內(nèi)存泄露,盡管短生命周期對(duì)象已經(jīng)不再需要,但是因?yàn)殚L(zhǎng)生
30、命周期對(duì)象持有它的引用而導(dǎo)致不能被回收,這就是java中內(nèi)存泄露的發(fā)生場(chǎng)景75、說(shuō)出一些常用的類(lèi),包,接口,請(qǐng)各舉5個(gè) ext,接口:(Spring)ApplicationContext, (Hibernate)SessionFactory,Session,Query,Criteria,SQLQuery,Transaction (Struts)FormFile類(lèi):(Spring)ClassPathApplicationContext, OpenSessionInViewFilter,CharacterEncodingFilter (Hibernate)Configuration,Hiberna
31、te (Struts)ActionForm,Action,DispatchAction,MappingDisactionAction (DWR)DwrServlet77、能不能自己寫(xiě)個(gè)類(lèi),也叫java.lang.String?能,但是沒(méi)什么價(jià)值。79、說(shuō)明生活中遇到的二叉樹(shù),用java實(shí)現(xiàn)二叉樹(shù)81、寫(xiě)一個(gè)Singleton(省構(gòu)騰)出來(lái)。1、構(gòu)造私有2、一個(gè)靜態(tài)的自身屬性,初始化3、提供共有的訪問(wèn)自身屬性的方法84、排序都有哪幾種方法?請(qǐng)列舉。用JAVA實(shí)現(xiàn)一個(gè)快速排序。 冒泡排序,插入排序,選擇排序,快速排序90、HTTP請(qǐng)求的GET與POST方式的區(qū)別1、Get方式請(qǐng)求的字符串長(zhǎng)度不能超
32、過(guò)255,Post理論上沒(méi)有限制。2、Get方式會(huì)將請(qǐng)求的內(nèi)容在地址欄顯示,Post不會(huì)。所以Get方式不安全,Post方式安全。91、解釋一下什么是servlet;servlet就是運(yùn)行在服務(wù)器端的java小程序。92、說(shuō)一說(shuō)Servlet的生命周期? 出生(new),學(xué)習(xí)(init),服務(wù)(service),死亡(destroy)93、Servlet的基本架構(gòu) public MyServlet extends HttpServletpublic void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOExcep
33、tion,ServletExceptionpublic void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException94、SERVLET API中forward() 與redirect()(瑞滴ruai克特)的區(qū)別? 1、forward是請(qǐng)求對(duì)象的方法,redirect是響應(yīng)對(duì)象的方法;2、forward是轉(zhuǎn)發(fā),地址欄不會(huì)顯示轉(zhuǎn)發(fā)后的路徑,redirect是重定向,地址欄會(huì)顯示3、forward比redirect效率更高4、forward是1次請(qǐng)求,redirec
34、t是2次請(qǐng)求5、forward只能在本工程內(nèi)轉(zhuǎn)向,redirect可以跳轉(zhuǎn)到其他工程95、什么情況下調(diào)用doGet()和doPost()? jsp頁(yè)面中的form標(biāo)簽里的method屬性為get時(shí)調(diào)用doGet(),為post時(shí)調(diào)用doPost()。96、Request對(duì)象的主要方法:setAttribute(String name,Object):設(shè)置名字為name的request的參數(shù)值 getAttribute(String name):返回由name指定的屬性值 getAttributeNames():返回request對(duì)象所有屬性的名字集合,結(jié)果是一個(gè)枚舉的實(shí)例 getCookies
35、():返回客戶(hù)端的所有Cookie對(duì)象,結(jié)果是一個(gè)Cookie數(shù)組 getCharacterEncoding():返回請(qǐng)求中的字符編碼方式 getContentLength():返回請(qǐng)求的Body的長(zhǎng)度 getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息 getHeaders(String name):返回指定名字的request Header的所有值,結(jié)果是一個(gè)枚舉的實(shí)例 getHeaderNames():返回所以request Header的名字,結(jié)果是一個(gè)枚舉的實(shí)例 getInputStream():返回請(qǐng)求的輸入流,用于獲得請(qǐng)求中的數(shù)據(jù) getMethod(
36、):獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)的方法 getParameter(String name):獲得客戶(hù)端傳送給服務(wù)器端的有name指定的參數(shù)值 getParameterNames():獲得客戶(hù)端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個(gè)枚舉的實(shí)例 getParametervalues(String name):獲得有name指定的參數(shù)的所有值 getProtocol():獲取客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱(chēng) getQueryString():獲得查詢(xún)字符串 getRequestURI():獲取發(fā)出請(qǐng)求字符串的客戶(hù)端地址 getRemoteAddr():獲取客戶(hù)端的IP地址 getRemo
37、teHost():獲取客戶(hù)端的名字 getSession(Boolean create):返回和請(qǐng)求相關(guān)Session getServerName():獲取服務(wù)器的名字 getServletPath():獲取客戶(hù)端所請(qǐng)求的腳本文件的路徑 getServerPort():獲取服務(wù)器的端口號(hào) removeAttribute(String name):刪除請(qǐng)求中的一個(gè)屬性 97、forward 和redirect的區(qū)別 98、request.getAttribute() 和 request.getParameter() 有何區(qū)別?1、request.getParameter() 從 請(qǐng)求中的參數(shù)中取
38、值;request.getAttribute() 從 請(qǐng)求的作用域中取值2、request.getParameter() 返回 String類(lèi)型; request.getAttribute()返回Object類(lèi)型99、 jsp有哪些內(nèi)置對(duì)象?作用分別是什么? 分別有什么方法? JSP共有以下9個(gè)內(nèi)置的對(duì)象: request-用戶(hù)端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù) response-網(wǎng)頁(yè)傳回用戶(hù)端的回應(yīng) pageContext-網(wǎng)頁(yè)的屬性是在這里管理 session-與請(qǐng)求有關(guān)的會(huì)話期 application servlet 正在執(zhí)行的內(nèi)容 out-用來(lái)傳送回應(yīng)的輸出 confi
39、g- servlet的構(gòu)架部件 page-JSP網(wǎng)頁(yè)本身 exception-針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外100、 jsp有哪些動(dòng)作?作用分別是什么? JSP共有以下6種基本動(dòng)作 jsp:include:在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。 jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。 jsp:setProperty:設(shè)置JavaBean的屬性。 jsp:getProperty:輸出某個(gè)JavaBean的屬性。 jsp:forward:把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。 jsp:plugin:根據(jù)瀏覽器類(lèi)型為Java插件生成OBJECT或EMBED標(biāo)記101、JSP的常用指令 page指令 屬
40、性: language(指示使用什么語(yǔ)言編譯JSP網(wǎng)頁(yè),暫時(shí)只支持Java語(yǔ)言,默認(rèn)java)、extends(定義JSP網(wǎng)頁(yè)產(chǎn)生的Servlet繼承的父類(lèi))、import(同Java的import)、session(設(shè)置當(dāng)前網(wǎng)頁(yè)是否可以使用Session對(duì)象,默認(rèn)為true)、buffer(設(shè)置輸出流是否有緩沖區(qū),默認(rèn)為8KB)、autoFlush(設(shè)置是否自動(dòng)清除緩沖區(qū),緩沖區(qū)如果溢出會(huì)產(chǎn)生異常,默認(rèn)true)、isThreadSafe(設(shè)置當(dāng)前頁(yè)面是否允許處理超過(guò)1個(gè)以上的請(qǐng)求,不建議更改,默認(rèn)為true)、info(設(shè)置當(dāng)前JSP網(wǎng)頁(yè)的相關(guān)信息)、errorPage(設(shè)置一旦發(fā)生異常后
41、重新定向哪個(gè)url)、isErrorPage(設(shè)置該JSP頁(yè)面是否為異常處理的頁(yè)面)、contentType(置MIME類(lèi)型和編碼方式:text/html;charset=GBK)、pageEncoding(設(shè)置編碼方式)、isELIgnored(設(shè)置是否忽略EL表達(dá)式,默認(rèn)值為false)taglib指令 include指令102、 JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?1、靜態(tài)是指令 動(dòng)態(tài)是動(dòng)作2、靜態(tài)只產(chǎn)生一個(gè)文件 動(dòng)態(tài)產(chǎn)生兩個(gè)3、靜態(tài)不可以帶參數(shù) 動(dòng)態(tài)可以帶參數(shù)4、靜態(tài)不會(huì)動(dòng)態(tài)更新 動(dòng)態(tài)可以。 104、頁(yè)面間對(duì)象傳遞的方法 session、cookie、隱藏表單域、ur
42、l重寫(xiě)105、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么? JSP 轉(zhuǎn)義以后就是servlet1、 jsp后綴名是.jsp servlet的后綴名是.java2、 jsp 側(cè)重于顯示 servlet側(cè)重于邏輯3、 jsp在mvc中屬于view servlet屬于controller106、MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)?MVC 是Model-View-Controller的簡(jiǎn)寫(xiě)."Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"
43、;Controller" 是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn).這些組件可以進(jìn)行交互和重用。107、我們?cè)趙eb應(yīng)用開(kāi)發(fā)過(guò)程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個(gè)某種編碼的字符串? new String(str.getByte(“原編碼”),”新編碼”);108、現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開(kāi);然后可選擇升或者降序排序;按提交鍵就在另一頁(yè)面顯示按什么排序,結(jié)果為,提供reset109、數(shù)據(jù)庫(kù)三范式是什么?第一范式:保證每列的原子性。第二范式:必須要有主鍵,并且其它列都依賴(lài)于該
44、主鍵;第三范式:取消傳遞依賴(lài)110、說(shuō)出一些數(shù)據(jù)庫(kù)優(yōu)化方面的經(jīng)驗(yàn)?1、存儲(chǔ)優(yōu)化A、通過(guò)表空間將數(shù)據(jù)分散到不同的硬盤(pán)上B、通過(guò)表分區(qū)分散數(shù)據(jù),方便備份還原2、查詢(xún)優(yōu)化A、通過(guò)表分區(qū)方便查詢(xún)B、為表建立索引C、SQL語(yǔ)句111、union(優(yōu)妮安)和union all(哦)有什么不同?union去重復(fù) union all不去重復(fù)113、什么是存儲(chǔ)過(guò)程和如何編寫(xiě)存儲(chǔ)過(guò)程就是存儲(chǔ)在數(shù)據(jù)庫(kù)中帶有名字的PL/SQL塊,完成一定的功能。Create or replace procedure procName(參數(shù)in,out,in out)As|isVariable.Beginexceptionend114
45、、注冊(cè)Jdbc驅(qū)動(dòng)程序的三種方式Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);System.setProperty(“jdbc.drivers”,” com.microsoft.sqlserver.jdbc.SQLServerDriver”);DriverManager.registerDriver(new ();115、用JDBC如何調(diào)用存儲(chǔ)過(guò)程CallableStatement callSta = con.prepareCall (“call 過(guò)程名”);callSta.execute();116、JDBC中的P
46、reparedStatement相比Statement的好處速度快,可以防止sql 注入攻擊。118、Class.forName的作用?為什么要用? 加載類(lèi)文件,創(chuàng)建類(lèi)對(duì)象。注冊(cè)驅(qū)動(dòng)。119、大數(shù)據(jù)量下的分頁(yè)解決方法。我們一般采用后臺(tái)SQL語(yǔ)句分頁(yè) 121、說(shuō)出數(shù)據(jù)連接池的工作機(jī)制是什么? 因?yàn)槲覀冊(cè)诓僮鲾?shù)據(jù)庫(kù)的時(shí)候 ,打開(kāi)連接和關(guān)閉連接是耗時(shí),耗性能,我們希望通過(guò)一種機(jī)制減少這種開(kāi)銷(xiāo),這就是數(shù)據(jù)連接池的初衷;J2EE服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并放入到一個(gè)池中,當(dāng)我需要獲得連接的時(shí)候,只需要從此池中拿到連接并標(biāo)記為繁忙,用完之后放回池中并標(biāo)記為空閑,這樣就能提高我們的訪問(wèn)性能。122
47、、為什么要用 ORM? 和 JDBC 有何不一樣? ORM就是Object Relational Mapping 對(duì)象關(guān)系映射,因?yàn)橛胘dbc操作數(shù)據(jù)庫(kù)代碼非常繁瑣,ORM可以將表映射成實(shí)體,與我們的OOP編程思想完全一致的,方便程序開(kāi)發(fā)。但速度比jdbc慢123、xml有哪些解析技術(shù)?區(qū)別是什么?DOM、SAXDOM是一次性將一個(gè)文件載入內(nèi)存,產(chǎn)生DOM樹(shù),適合多次讀寫(xiě)操作,適合操作小型文檔SAX 是事件驅(qū)動(dòng)的解析方式,它不是一次性載入整個(gè)文件,而是遇到文檔開(kāi)頭標(biāo)記等等觸發(fā)事件來(lái)處理,適合解析大型文檔124、你在項(xiàng)目中用到了xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的? 1、數(shù)據(jù)交換2、配置文件3、存儲(chǔ)
48、數(shù)據(jù)125、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析? import javax.xml.transform.*;Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,
49、"yes");126、編程用JAVA解析XML的方式. 127、XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式? a: 兩種形式 dtd schema,(是給帽)b: 本質(zhì)區(qū)別:schema本身是xml的,比DTD有更精確的規(guī)則定義;128、BS與CS的聯(lián)系與區(qū)別。C/S是Client/Server的縮寫(xiě)。B/是Brower/Server的縮寫(xiě),1、 硬件不同,一個(gè)是局域網(wǎng),一個(gè)是廣域網(wǎng)2、 安全不同 C/S安全高 B/S3、 速度不同 C/S速度塊4、 維護(hù)C/S不方便維護(hù) B/S方便維護(hù)129、應(yīng)用服務(wù)器與WEB SERVER的區(qū)別?1、應(yīng)用
50、服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器則主要是讓客戶(hù)可以通過(guò)瀏覽器進(jìn)行訪問(wèn)。2、應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器是用于處理HTML文件的。web服務(wù)器通常比應(yīng)用服務(wù)器簡(jiǎn)單,如apache就是web服務(wù)器,Jboss就是EJB應(yīng)用服務(wù)器。應(yīng)用服務(wù)器:Weblogic、Tomcat、JbossWEB SERVER:IIS、 Apache130、應(yīng)用服務(wù)器有那些? BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat131、J2EE是什么? J2EE是應(yīng)用平臺(tái),是標(biāo)準(zhǔn),
51、是框架133、請(qǐng)對(duì)以下在J2EE中常用的名詞進(jìn)行解釋(或簡(jiǎn)單描述) Web容器:能解析Jsp和Servlet的應(yīng)用服務(wù)器EJB容器:就是能解析EJB組件的應(yīng)用服務(wù)器JNDI(Java Naming And Directory Interface) Java命名與目錄接口JMS(Java Message Service)Java 消息服務(wù)JTA(Java Transaction API)Java事務(wù)接口JAF(Java Action Framework)Java 安全認(rèn)證框架RMI/IIOP(Remote Method Invocation/Internet Inter Object Reque
52、st Broker Protocol)遠(yuǎn)程方法調(diào)用/互聯(lián)網(wǎng)內(nèi)部對(duì)象請(qǐng)求代理協(xié)議150、WEB SERVICE名詞解釋。JSWDL開(kāi)發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。JAXP(Java API for XML Parsing)JAXM(Java API for XML Messaging)SOAP(Simple Object Access Protocol)UDDI(Universal Description, Discovery and Integration)WSDL(Web Services Description Language)151、CORBA是什么?用途是什么? CORBA(Common Object Request Broker Architecture,公共對(duì)象代理體系結(jié)構(gòu)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;152、流行的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓品牌合作合同范例
- 公司裝飾合同范例
- 六十歲勞務(wù)合同范例
- 低溫設(shè)備租賃合同范本
- 綠化水保施工方案
- 北京2025年北京市農(nóng)林科學(xué)院高層次人才引進(jìn)34人筆試歷年參考題庫(kù)附帶答案詳解
- 個(gè)人電表出租合同范例
- 假發(fā)店加盟合同范例
- 2次抵押合同范例
- 代辦會(huì)議合同范例
- 2025年安徽電子信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)新版
- 2025年常州信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)審定版
- GA/T 701-2024安全防范指紋識(shí)別應(yīng)用出入口控制指紋識(shí)別模塊通用規(guī)范
- 4.1 人要有自信 (課件)2024-2025學(xué)年七年級(jí)道德與法治下冊(cè)(統(tǒng)編版2024)
- 加強(qiáng)學(xué)校鑄牢中華民族共同體意識(shí)教育心得
- 16.3 二次根式的加減 - 人教版數(shù)學(xué)八年級(jí)下冊(cè)教學(xué)課件
- 馬尼拉草皮施工方案
- 中國(guó)HEPA過(guò)濾器行業(yè)發(fā)展監(jiān)測(cè)及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 人工智能融入土木水利碩士人才培養(yǎng)模式研究
- 2024年江蘇商貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 施工技術(shù)創(chuàng)新管理措施
評(píng)論
0/150
提交評(píng)論