目前,我國對軟體人才的需求已達20萬,並且以每年20%左右的速度增長。在未來5年內,合格軟體人才的需求將遠大於供給。下面是關於java中級工程師面試題,希望大家認真閱讀!
一、 單選題(共12題,每題2分,共24分)
1.下面關於Java的表述有錯誤的是________
中沒有sizeof操作符,所有資料型別的長度都是確定的,與平臺無關。
B.在Java中,區域性變數不會被自動初始化,需要顯式的賦初值。
中的instanceof運算子,可以判斷一個物件是否屬於某個類的例項。
D.一個Java檔案裡可以有多個public類,但Java檔名必須和包含main方法的那個public類名精確一致。
2.下面關於Java中static關鍵字的表述錯誤的是________
A.被static修飾的類成員變數在編譯時由記憶體分配一塊空間,直到程式停止執行才會被釋放。
B.被static修飾的類方法只能訪問其自身類未被static修飾的例項方法,而不能訪問其他類的。
C.被static修飾的類方法不能使用this關鍵字。
D.在沒有建立該類的物件時,該類中用static修飾的類方法就可以被呼叫。
3.下面關於Java中abstract關鍵字的表述有錯誤的是________
A.用abstract修飾不在類內實現的方法,稱為抽象方法;抽象方法必須在子類派生時被過載。
B.用abstract修飾的類為抽象類;抽象類可以同時被static或final關鍵字修飾。
C.抽象類中不一定包含抽象方法,但包含抽象方法的類一定要宣告為抽象類。
D.如果一個類被定義為抽象類,則該類不能進行例項化。
4.下面關於Java中垃圾回收(gc)的表述有錯誤的是_______
A.在String str1 = ̶Hello”;String str2 = str1;str1 = null;中,物件”Hello”不會被垃圾回收。
B.呼叫untime()()會立即啟動垃圾回收執行緒對當前程式進行垃圾回收。
C.呼叫()只是提示垃圾回收器進行垃圾回收操作,但並不保證gc執行緒立即啟動。
D.當垃圾回收器將要釋放無用物件的記憶體時,先呼叫該物件的finalize()方法。
5.下面關於Java中介面(interface)的表述有錯誤的是________
A.在介面中定義的常量可以被多個類共享,具有public,final,static屬性,可被任意類訪問。
B.介面中只對方法進行宣告而沒有實現體,而且用分號結尾,具有public和abstract屬性
C.子介面中定義了與父介面同名的.常量或者相同的方法,則父介面的常量被隱藏,方法被重寫
D.實現介面的類必須實現介面和其父介面中的所有方法。
6.下面哪個方法不屬於String類提供的______
xOf()
har2()
ace()
nd()
7.在Java多執行緒中,呼叫下面哪種方法不會使執行緒進入阻塞狀態?________
p()
end()
()
d()
8.下面程式被編譯執行時,下面哪些描述是正確的_________。
class B{
public int f(int i){
return i+i;
}
public int f(int i, int j){
return i+j;
}
public int f(char c){
return c;
}
}
public class Test extends B{
public int f(int i, int j){
return super.f(i,j);
}
public int f(int j){
return -j;
}
public static void main(String[] args){
B x = new Test();
tln(x.f(5,1)+” ̶+x.f(4)+” ̶+x.f(‘A’));
}
}
A.編譯不通過,B x = new Test() 出錯,型別不匹配
B.編譯不通過,原因是B.f(char c),一個char型別不能直接當做int型別返回
C.編譯通過,執行輸出結果是15 -4 65
D.編譯通過,執行輸出結果是15 8 65
9.下面哪個類或介面定義了wait()、notify()、notifyAll()方法_______
ad
able
ct
dGroup
1.在Java API文件中,下面的哪部分未被包括在內_______
A.類的用途的描述
B.類層次
C.父類方法的列表
D.成員變數的列表
11.下面列出的修飾符中,哪一個用來修飾方法(method)要求此方法必須顯式地獲得某個物件才能執行________
l
hronized
ic
ic
12.下面的各種異常中,哪種異常在一個方法中沒有宣告丟擲此異常時也可以在其方法體中直接丟擲________
sNotFoundException
ption
PointerException
ception
二、 多選題(共5題,每題3分,共15分)
1.下面對作業系統中執行緒和程序的表述有錯誤的是_______
A.程序是程式的執行例項,它包含記憶體和資源,而執行緒是由程序進一步派生出來的一組程式碼的執行過程
B.每個程序都有一個主執行緒,還可以建立另外的執行緒。程序中的執行緒是並行執行的,每個執行緒佔用CPU的時間由此程序來排程。
C.程序中的所有執行緒共享程序的虛擬地址空間,這意味著所有執行緒都可以訪問程序的全域性變數和資源。
D.程序中的每個執行緒的宣告週期都在該程序中,每個執行緒都有自己的私有虛擬地址空間。
2.下面關於HashMap與Hashtable區別的表述正確的是______
Map與Hashtable採用的hash/rehas演算法基本一致。
Map允許將null作為一個entry得key或value,而Hashtable不允許。
Map與Hashtable都是Map interface的實現。
table的方法是syncronized的,而HashMap不是,因此HashMap非執行緒安全
3.對於一個abstract的method,不能用下面哪個Java關鍵字同時修飾_______
ic
ve
hronized
l
4.下面關於Java中Vector、ArrayList、LinkedList的表述正確的是_______
A.這三個類都實現了介面,但只有Vector是執行緒安全的
yList與Vector在從指定位置用index檢索一個元素的時候,時間開銷是O(1)
edList在插入、刪除任意位置元素的時間開銷都是O(1),但它在索引一個元素的時候比較慢,為O(i),其中i是索引的位置。
D.當向這幾種型別中增加元素時,如果數目超出了其目前的長度,Vector預設情況下自動增長原來一倍的長度,而ArrayList與LinkedList則增長5%的長度。
5.在J2EE中,JSP可以使用下列哪些技術對客戶端會話狀態進行跟蹤__________
A.建立匿名的表格欄位
B.使用URL重寫
C.使用持久化Cookies
D.使用session會話機制
三、 填空題(共5題,每題3分,共15分)
1.下面程式的執行結果為_________
public class Test{
public static void main(String[] args){
B obj = new B();
}
}
class A{
static {t(̶X”);}
public A(){t(̶A”);}
}
class B extends A{
static {t(̶Y”);}
public B(){t(̶B”);}
}
2.下面程式的執行結果為_________
public class Test{
public static void main(String[] args)
{
Sub obj = new Sub();
t();
}
}
class Base{
public String s = ̶X”;
public void print()
{
t(s);
printAgain();
}
public void printAgain()
{
t(̶A”);
}
}
class Sub extends Base{
public String s = ̶Y”;
public void printAgain()
{
t(̶B”);
}
}
3.下面程式的執行結果為________
public class Test{
static int func(int i, int j){
try{
return i/j;
}catch(ArithmeticException e){
t(̶A”);
return ;
}catch(Exception e){
t(̶B”);
return ;
}finally{
t(̶C”);
}
}
public static void main(String[] args){
tln(func(1,));
}
}
4.下面程式的執行結果為_______
class A{
void func1(){
t(̶A”);
}
}
class B extends A{
void func2(){
t(̶B”);
}
}
class C extends B{
void func2(){
t(̶C”);
}
}
public class Test{
public static void main(String[] args){
B obj = new C();
1();
2();
}
}
5.請填寫下面程式的輸出結果
class A{int a = 1;}
public class Test{
public static void main(String[] args){
A obj1 = new A();
A obj2 = new A();
A obj3 = obj1;
String s1 = new String(̶abc”);
String s2 = new String(̶abc”);
String s3 = ̶abc”;
tln(obj1 == obj2);
tln(ls(obj2));
tln(obj1 == obj3);
tln(s1 == s2);
tln(ls(s2));
tln(ls(s3));
}
}
四、 簡答題(共3題,前兩題每題5分,最後一題6分,共16分)
1.請編寫一個函式func(),將此函式的輸入引數(int型)逆序輸出顯示,如54321 –> 12345,要求使用遞迴,並且函式體程式碼不超過8行。
public class Test{
public void func(int i){
}
public static void main(String[] args){
Test t=new Test();
(987);
}
}
2.請用兩種方式實現Java中的Singletone模式的類的基本框架,並分析其是否執行緒安全。
3. 請用Java實現一個多執行緒的程式,其中一個執行緒對某靜態全域性變數進行1次自加,另一個執行緒對該變數進行1次自減,要求這兩個執行緒的實現方式不同。