1.java異常機(jī)制的原理與應(yīng)用\x0d\x0a答:每當(dāng)程序出現(xiàn)異常之后,如果程序沒有進(jìn)行相應(yīng)的處理,則程序會(huì)出現(xiàn)中斷現(xiàn)象。\x0d\x0a實(shí)際上,產(chǎn)生了異常之后,JVM會(huì)拋出一個(gè)異常類的實(shí)例化對(duì)象,如果此時(shí)使用了try語(yǔ)句捕獲的話,則可以進(jìn)行異常的處理,否則,交給JVM進(jìn)行處理。當(dāng)try語(yǔ)句捕獲異常之后,將與catch語(yǔ)句的異常類型進(jìn)行匹配,如果匹配成功則執(zhí)行catch內(nèi)的語(yǔ)句。簡(jiǎn)單的應(yīng)用:在所以throws語(yǔ)句的地方加入try-catch。標(biāo)準(zhǔn)應(yīng)用:try-catch-finally-throw-throws一起使用。 \x0d\x0a\x0d\x0a2. 垃圾回收機(jī)制的優(yōu)點(diǎn)\x0d\x0a答:釋放無用的對(duì)象所占用的空間。方式:自動(dòng)回收,手動(dòng)回收。使用System.gc(),實(shí)際上調(diào)用Runtime.getRuntime().gc()\x0d\x0a\x0d\x0a3. Error與Exception區(qū)別\x0d\x0a答:Error是jvm進(jìn)行處理,是jvm出錯(cuò)\x0d\x0aexception是可以由程序處理的,可以用try-catch捕獲的\x0d\x0a\x0d\x0a4. final,finally,finallize\x0d\x0a答:final定義的變量的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承\(zhòng)x0d\x0afinally是異常的統(tǒng)一出口,finallize是垃圾回收前的收尾工作,是Object類定義的\x0d\x0a\x0d\x0a5. Anonymous Inner Class是否可以extends,是否可以implements Interface\x0d\x0a答:允許繼承和實(shí)現(xiàn),因?yàn)槟涿麅?nèi)部類就是在抽象類和接口的基礎(chǔ)上發(fā)展起來的\x0d\x0a\x0d\x0a6. Static Nested Class 與Inner Class的區(qū)別\x0d\x0a答:使用Static定義的Class就是外部類,可以通過外部類. 內(nèi)部類直接訪問\x0d\x0a而Inner Class是不能被外部訪問的,只能通過外部類的實(shí)例再找到內(nèi)部類實(shí)例。\x0d\x0a\x0d\x0a7. HashMap and HashTable?\x0d\x0a答:HashMap:1) released in jdk 1.2,new Class 2)采用異步處理方式,性能較高,是非線程安全的 3)允許null\x0d\x0aHashTable:\x0d\x0a1)released in jdk 1.0 ,old Class \x0d\x0a2)采用同步處理方式,性能低,是線程安全的\x0d\x0a3)不允許null\x0d\x0a\x0d\x0a8. assert代表什么?\x0d\x0a答:asserts是jdk 1.4之后發(fā)布的新關(guān)鍵字,表示斷言,即程序執(zhí)行到某個(gè)地方肯定是預(yù)計(jì)的值,一般開發(fā)很少使用。要使用assert,必須加上 -ea參數(shù)\x0d\x0a\x0d\x0a9. gc是什么?\x0d\x0a答:gc是garbage collection,垃圾回收,使用gc可以進(jìn)行垃圾空間的釋放\x0d\x0a\x0d\x0a10. String s = new String("xyz")產(chǎn)生了幾個(gè)對(duì)象?\x0d\x0a答:一個(gè)匿名對(duì)象xyz,在棧空間內(nèi)。一個(gè)new實(shí)例化的對(duì)象,在堆空間內(nèi)。\x0d\x0a\x0d\x0a11. sleep() and wait()?\x0d\x0a答:sleep()是Thread類定義方法,表示線程的休眠,可以自動(dòng)喚醒\x0d\x0await()方法是Object類定義的方法,需要手動(dòng)notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源\x0d\x0a\x0d\x0a12. Overload與Override的區(qū)別\x0d\x0a答:Overload:重載\x0d\x0a |- 在一個(gè)類中定義的若干方法\x0d\x0a |- 所有的方法名相同,但參數(shù)類型或個(gè)數(shù)不同\x0d\x0a |- 只有參數(shù)有關(guān),與返回類型無關(guān)\x0d\x0aOverride:覆寫\x0d\x0a |- 在繼承的關(guān)系中\(zhòng)x0d\x0a |- 子類定義了父類同名的方法,參數(shù)類型或個(gè)數(shù)最好完全一樣。\x0d\x0a |- 訪問權(quán)限不能更嚴(yán)格\x0d\x0a\x0d\x0a13. abstract class 和 interface有什么區(qū)別?\x0d\x0a答:抽象類:\x0d\x0a |-由抽象方法和常量、變量、全局常量、構(gòu)造方法、普通方法組成\x0d\x0a |-使用abstract聲明\x0d\x0a |-子類要通過extends繼承抽象類,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法\x0d\x0a |-存在單繼承的局限\x0d\x0a |-抽象類可以實(shí)現(xiàn)若干個(gè)接口\x0d\x0a接口:\x0d\x0a |-由抽象方法和全局常量組成\x0d\x0a |-使用interface關(guān)鍵字\x0d\x0a |-子類要通過implements實(shí)現(xiàn)接口,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法\x0d\x0a |-一個(gè)子類可以實(shí)現(xiàn)多個(gè)接口\x0d\x0a |-接口不能繼承一個(gè)抽象類,但允許繼承多個(gè)接口
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),蒼溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蒼溪等地區(qū)。蒼溪做網(wǎng)站價(jià)格咨詢:028-86922220
java面試題的解析方式(思路如下):
public static void main(String[] args) {
// TODO Auto-generated method stub
int up = 8;
int down = 8;
while(up=20){
if((up == 20-6) (up == 20-6)){
System.out.println("在"+up+"時(shí)到達(dá)同一地點(diǎn)");
break;
}
up += 1;
down += 1;
}
}
微軟面試題的背后
微軟的奇葩面試題答案并不重要,重要的是思考過程,而思考過程體現(xiàn)了你是否擁有公司所看重的能力,不僅是微軟,其他公司的面試也是為了測(cè)試你的某種能力,如果你提前培養(yǎng)了這種能力,相當(dāng)于知道了面試的“考綱”,在面試中自然就從容不迫,游刃有余了。
平時(shí)要知道轉(zhuǎn)化能力是看透問題,然后找到解決方案的能力。所以轉(zhuǎn)化能力最重要的是如何看透問題,也就是你思考問題的方式。
import java.util.Arrays;
import java.util.Comparator;
public class A {
public static void main(String[] args) {
String[] ls={"A","B","C","V","G","H","K"};
final String[] ses={"B","G","K"};
Arrays.sort(ls, new ComparatorString(){
public int compare(String str1, String str2) {
if(str1.equals(str2)){
return 0;
}
if(str1.equals(ses[0])){
return -1;
}else if(str1.equals(ses[1])){
if(str2.equals(ses[0])){
return 1;
}
return -1;
}else if(str1.equals(ses[2])){
if(str2.equals(ses[0]) || str2.equals(ses[1])){
return 1;
}
return -1;
}else if(str2.equals(ses[0]) || str2.equals(ses[1]) || str2.equals(ses[2])){
return 1;
}
return 0;
}
});
for(String item: ls){
System.out.println(item);
}
}
}
是否可以解決您的問題?