java面試題02
1.JAVA內部使用的編碼格式是(utf-8)
2.
public class Threads2 implements Runnable {
@Override
public void run() {
System.out.println("run.");
throw new RuntimeException("problem");
}
public static void main(String[] args) {
Thread t = new Thread(new Threads2());
t.start();
System.out.println("End of method.");
}
}
執行結果:
run.
End of method.
Exception in thread "Thread-0" java.lang.RuntimeException: problem
或者:
End of method.
run.
Exception in thread "Thread-0" java.lang.RuntimeException: problem
3.
public class SimpleCalc {
public int value;
public void calculate() {
value += 7;
}
}
public class MultiCalc extends SimpleCalc {
public void calculate() {
value -= 3;
}
public void calculate(int multiplier) {
calculate();
super.calculate();
value *= multiplier;
}
public static void main(String[] args) {
MultiCalc calculate = new MultiCalc();
calculate.calculate(2);
System.out.println("value is:" + calculate.value);
}
}
輸出結果:vaue is:8
4.對於JSP的通用規則,描述正確的是:
如果URL不是以“/”開始的,就被解釋為相對於當前的JSP路徑。
5.在MVC設計模式中,JavaBean的作用域是:
model
6.在一個Filter中,處理Filter業務的是什麽方法?
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
7.對下面Spring聲明式事務的配置含義的說明錯誤是(缺少SqlSessionFactory屬性的註入)。
8、hibernate API中的幾口有一下幾類 配置hibernate的接口是 configuration
9、事務的原子性是指:事務的原子性是指事務的所有操縱在數據庫中要麽全部正確反映出來,要麽全部不反映
10、外鏈接的條件可以放在以下哪一個語句中 where;
第二部分 簡答題
1、List Map Set 三個接口在存取元素時各有什麽特點?
答:
List與Set都是單列元素的集合,它們有一個功共同的父接口Collection。
Set裏面不允許有重復的元素,
存元素:add方法有一個boolean的返回值,當集合中沒有某個元素,此時add方法可成功加入該元素時,則返回true;當集合含有與某個元素equals相等的元素時,此時add方法無法加入該元素,返回結果為false。
取元素:沒法說取第幾個,只能以Iterator接口取得所有的元素,再逐一遍歷各個元素。
List表示有先後順序的集合,
存元素:多次調用add(Object)方法時,每次加入的對象按先來後到的順序排序,也可以插隊,即調用add(int index,Object)方法,就可以指定當前對象在集合中的存放位置。
取元素:方法1:Iterator接口取得所有,逐一遍歷各個元素
方法2:調用get(index i)來明確說明取第幾個。
Map是雙列的集合,存放用put方法:put(obj key,obj value),每次存儲時,要存儲一對key/value,不能存儲重復的key,這個重復的規則也是按equals比較相等。
取元素:用get(Object key)方法根據key獲得相應的value。
也可以獲得所有的key的集合,還可以獲得所有的value的集合,
還可以獲得key和value組合成的Map.Entry對象的集合。
List以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值,value可多值。
2、列舉你所知道的排序方法 請寫出快捷排序的偽代碼?
答:排序的方法有:插入排序,選擇排序,冒泡排序,堆排序,快速排序,歸並排序,計數排序,基數排序,桶排序
快速排序的偽代碼:
public void QuickSort(SeqList R,int low,int high){
//對R[low...high]進行快速排序int pivotpos;//劃分後的基準記錄的位置
if(low<high){
//僅當區間長度大於1時才需排序
pivotpos = Partition(R,low,high);//對R[low...high]進行劃分
QuickSort(R,low,pivotpos-1);
QuickSort(R,pivotpos+1,high);
}
}
3、談談 final、finally、finalize 的區別?
答:
1.final:如果一個類被final修飾,意味著該類不能派生出新的子類,不能作為父類被繼承。因此一個類不能被聲明為abstract,又被聲明為final。將變量或方法聲明為final。可以保證他們在使用的時候不被改變。其初始化可以在兩個地方:一是其定義的地方,也就是在final變量在定義的時候就對其賦值;二是在構造函數中。這兩個地方只能選其中的一個,要麽在定義的時候給值,要麽在構造函數中給值。被聲明為final的方法也只能使用,不能重寫。
2.finally:在異常處理的時候,提供finally塊來執行任何的清除操作。如果拋出一個異常,那麽相匹配的catch字句就會執行,然後控制就會進入finally塊,前提是有finally塊。
3.finalize:finalize是方法名,java技術允許使用finalize()方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是在垃圾收集器確認一個對象沒有被引用時對這個對象調用的。它是在Object類中定義的,因此,所有的類都繼承了它。子類覆蓋finalize()方法已整理系統資源或者執行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調用的。
java面試題02