1.java異常機制的原理與應(yīng)用\x0d\x0a答:每當(dāng)程序出現(xiàn)異常之后,如果程序沒有進行相應(yīng)的處理,則程序會出現(xiàn)中斷現(xiàn)象。\x0d\x0a實際上,產(chǎn)生了異常之后,JVM會拋出一個異常類的實例化對象,如果此時使用了try語句捕獲的話,則可以進行異常的處理,否則,交給JVM進行處理。當(dāng)try語句捕獲異常之后,將與catch語句的異常類型進行匹配,如果匹配成功則執(zhí)行catch內(nèi)的語句。簡單的應(yīng)用:在所以throws語句的地方加入try-catch。標準應(yīng)用:try-catch-finally-throw-throws一起使用。 \x0d\x0a\x0d\x0a2. 垃圾回收機制的優(yōu)點\x0d\x0a答:釋放無用的對象所占用的空間。方式:自動回收,手動回收。使用System.gc(),實際上調(diào)用Runtime.getRuntime().gc()\x0d\x0a\x0d\x0a3. Error與Exception區(qū)別\x0d\x0a答:Error是jvm進行處理,是jvm出錯\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答:允許繼承和實現(xià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是不能被外部訪問的,只能通過外部類的實例再找到內(nèi)部類實例。\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í)行到某個地方肯定是預(yù)計的值,一般開發(fā)很少使用。要使用assert,必須加上 -ea參數(shù)\x0d\x0a\x0d\x0a9. gc是什么?\x0d\x0a答:gc是garbage collection,垃圾回收,使用gc可以進行垃圾空間的釋放\x0d\x0a\x0d\x0a10. String s = new String("xyz")產(chǎn)生了幾個對象?\x0d\x0a答:一個匿名對象xyz,在??臻g內(nèi)。一個new實例化的對象,在堆空間內(nèi)。\x0d\x0a\x0d\x0a11. sleep() and wait()?\x0d\x0a答:sleep()是Thread類定義方法,表示線程的休眠,可以自動喚醒\x0d\x0await()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源\x0d\x0a\x0d\x0a12. Overload與Override的區(qū)別\x0d\x0a答:Overload:重載\x0d\x0a |- 在一個類中定義的若干方法\x0d\x0a |- 所有的方法名相同,但參數(shù)類型或個數(shù)不同\x0d\x0a |- 只有參數(shù)有關(guān),與返回類型無關(guān)\x0d\x0aOverride:覆寫\x0d\x0a |- 在繼承的關(guān)系中\(zhòng)x0d\x0a |- 子類定義了父類同名的方法,參數(shù)類型或個數(shù)最好完全一樣。\x0d\x0a |- 訪問權(quá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 |-抽象類可以實現(xiàn)若干個接口\x0d\x0a接口:\x0d\x0a |-由抽象方法和全局常量組成\x0d\x0a |-使用interface關(guān)鍵字\x0d\x0a |-子類要通過implements實現(xiàn)接口,子類如果不是抽象類,則必須覆寫抽象類的全部抽象方法\x0d\x0a |-一個子類可以實現(xiàn)多個接口\x0d\x0a |-接口不能繼承一個抽象類,但允許繼承多個接口
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,蒼溪網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蒼溪等地區(qū)。蒼溪做網(wǎng)站價格咨詢: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+"時到達同一地點");
break;
}
up += 1;
down += 1;
}
}
微軟面試題的背后
微軟的奇葩面試題答案并不重要,重要的是思考過程,而思考過程體現(xiàn)了你是否擁有公司所看重的能力,不僅是微軟,其他公司的面試也是為了測試你的某種能力,如果你提前培養(yǎng)了這種能力,相當(dāng)于知道了面試的“考綱”,在面試中自然就從容不迫,游刃有余了。
平時要知道轉(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);
}
}
}
是否可以解決您的問題?