1.下面中哪兩個能夠在A的子類中使用:( )java
class A {程序員
protected int method1 (int a, int b) {算法
return 0;sql
}數據庫
}編程
A. public int method 1 (int a, int b) { return 0; }數組
B. private int method1 (int a, int b) { return 0; }安全
C. private int method1 (int a, long b) { return 0; }app
D. public short method1 (int a, int b) { return 0; }編程語言
解答:AC
A,符合子類重寫父類方法的規則
B,子類重寫父類的方法,訪問權限不能下降
C,屬於重載
D,子類重寫父類的方法 返回值類型要相同或是父類方法返回值類型的子類
2.抽象方法能夠被static修飾嘛?
A True
B False
解答:B
抽象方法能夠在子類中被重寫,可是靜態方法不能在子類中被重寫,靜態方法和靜態屬性與對象是無關的,只與類有關,這與abstract是矛盾的,因此abstract是不能被修飾爲static,不然就失去了abstract的意義了
3.如下程序的執行結果是什麼?
class Base{
void test() {
System.out.println(「Base.test()」);
}
}
public class Child extends Base {
void test() {
System.out.println(「Child.test()」);
}
public static void main(String[] a) {
Child anObj = new Child();
Base baseObj = (Base)anObj;
baseObj.test();
}
}
A Child.test() Base.test()
B Base.test() Child.test()
C Base.test()
D Child.test()
解答:D
測試代碼至關於:Base baseObj = new Child();父類的引用指向子類的實例,子類又重寫了父類的test方法,所以調用子類的test方法。
4.如下程序的執行結果是什麼
class Base{
static void test() {
System.out.println(「Base.test()」);
}
}
public class Child extends Base {
void test() {
System.out.println(「Child.test()」);
Base.test(); //Call the parent method
}
static public void main(String[] a) {
new Child().test();
}
}
A Child.test() Base.test()
B Child.test() Child.test()
C 編譯報錯.
D 運行報錯.
解答:C
靜態方法不能在子類中被重寫
5.如下程序的執行結果是什麼
public class Base{
private void test() {
System.out.println(6 + 6 + 「(Result)」+6+6);
}
static public void main(String[] a) {
new Base().test();
}
}
A 66(Result)66
B 12(Result)12
C 66(Result)12
D 12(Result)66
解答:D
字符串與基本數據類型連接的問題,若是第一個是字符串那麼後續就都按字符串處理,好比上邊例子要是System.out.println(「(Result)」+6 + 6 );那麼結果就是(Result)66,若是第一個和第二個。。。第n個都是基本數據第n+1是字符串類型,那麼前n個都按加法計算出結果在與字符串鏈接
6.如下程序的執行結果是什麼;’ ?’ 是空格的意思.
public class Base{
private void test() {
String aStr = 「?One?」;
String bStr = aStr;
aStr.toUpperCase();
aStr.trim();
System.out.println(「[" + aStr + "," + bStr + "]「);
}
static public void main(String[] a) {
new Base().test();
}
}
A [ONE,?One?]
B [?One?,One]
C [ONE,One]
D [ONE,ONE]
E [?One?,?One?]
解答:E
經過String bStr = aStr;這句代碼使bStr和aStr指向同一個地址空間,因此最後aStr和bStr的結果應該是同樣,而且aStr在調用了方法以後,並無將結果重洗賦值給aStr(即aStr=aStr.toUpperCase();)因此aStr調用了方法以後其本來的值並無被改變
7.下面關於變量及其範圍的陳述哪些是不正確的( ):
A.實例變量是類的成員變量
B.實例變量用關鍵字static聲明
C.在方法中定義的局部變量在該方法被執行時建立
D.局部變量在使用前必須被初始化
解答:BC
由static修飾的變量稱爲類變量或是靜態變量;方法加載的時候建立局部變量
8.下列關於修飾符混用的說法,錯誤的是( ):
A.abstract不能與final並列修飾同一個類
B.abstract類中能夠有private的成員
C.abstract方法必須在abstract類中
D.static方法中能處理非static的屬性
解答 D
:靜態方法中不能引用非靜態的成員
9.執行完如下代碼int[ ] x = new int[25];後,如下哪項說明是正確的( ):
A、 x[24]爲0
B、 x[24]未定義
C、 x[25]爲0
D、 x[0]爲空
解答:A
x屬於引用類型的int數組,數組定義之後,該引用類型的每個成員是int類型,默認值都爲:0;而且數組是以0爲索引開始算,雖然其長度爲25,但其最大下標只有25-1
10.編譯運行如下程序後,關於輸出結果的說明正確的是 ( ):
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(「value is 「+ ((x>4) ? 99.9 :9));
}
}
A、 輸出結果爲:value is 99.99
B、 輸出結果爲:value is 9
C、 輸出結果爲:value is 9.0
D、 編譯錯誤
解答:C
三目運算符中:第二個表達式和第三個表達式中若是都爲基本數據類型,整個表達式的運算結果由容量高的決定。99.9是double類型 而9是int類型,double容量高。
11.關於如下application的說明,正確的是( ):
1. class StaticStuff{
2. static int x=10;
3. static { x+=5;}
4. public static void main(String args[ ]){
5. System.out.println(「x=」 + x);
6. }
7. static { x/=3;}
8. }
A、 3行與7行不能經過編譯,由於缺乏方法名和返回類型
B、 7行不能經過編譯,由於只能有一個靜態初始化器
C、 編譯經過,執行結果爲:x=5
D、編譯經過,執行結果爲:x=3
解答:C
靜態代碼塊是類加載的時候就會被執行到的,靜態代碼塊的執行順序是按照在類中出現的前後順序執行。
12.關於如下程序代碼的說明正確的是( ):
1. class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x - -;
11. System.out.println(「x=」+x);
12. }
13. }
A、5行不能經過編譯,由於引用了私有靜態變量
B、10行不能經過編譯,由於x是私有靜態變量
C、程序經過編譯,輸出結果爲:x=101
D、程序經過編譯,輸出結果爲:x=102
E、程序經過編譯,輸出結果爲:x=103
解答:D
靜態變量是全部對象所共享的,因此上述代碼中的幾個對象操做是同一靜態變量x, 靜態變量能夠經過類名調用。
13.下列說法正確的有()
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個對象被new時執行
D.一個class只能定義一個constructor
解答:C
構造方法的做用是在實例化對象的時候給數據成員進行初始化
A.類中若是沒有顯示的給出構造方法,系統會提供一個無參構造方法
B.構造方法與類同名,類中能夠有和類名相同的方法
D.構造方法能夠重載
14.下列哪一種說法是正確的()
A.實例方法可直接調用超類的實例方法
B.實例方法可直接調用超類的類方法
C.實例方法可直接調用其餘類的實例方法
D.實例方法可直接調用本類的類方法
解答:D
A. 實例方法不可直接調用超類的私有實例方法
B. 實例方法不可直接調用超類的私有的類方法
C.要看訪問權限
15.下列哪種敘述是正確的( )
A. abstract修飾符可修飾字段、方法和類
B. 抽象方法的body(方法實體)部分必須用一對大括號{ }包住
C. 聲明抽象方法,大括號無關緊要
D. 聲明抽象方法不可寫出大括號
解答:D
abstract能夠修飾方法和類,不能修飾屬性。抽象方法沒有方法體,即沒有大括號{}
16.下面代碼的執行結果是?
import java.util.*;
public class ShortSet{
public static void main(String args[]){
Set<Short> s=new HashSet<Short>();
for(Short i=0;i<100;i++){
s.add(i);
s.remove(i-1);
}
System.out.println(s.size());
}
}
A.1
B.100
C.Throws Exception
D.None of the Above
解答:B
i是Short類型, i-1是int類型,其包裝類爲Integer,因此s.remove(i-1)不能移除Set集合中Short類型對象;只有將(i-1)強轉爲Short類型的時候,才能移除Set集合中的對象
17.鏈表具備的特色是:
A、沒必要事先估計存儲空間
B、可隨機訪問任一元素
C、插入刪除不須要移動元素
D、所需空間與線性表長度成正比
解答:ACD
A.採用動態存儲分配,不會形成內存浪費和溢出。
B. 不能隨機訪問,查找時要從頭指針開始遍歷
C. 插入、刪除時,只要找到對應前驅結點,修改指針便可,無需移動元素
D. 須要用額外空間存儲線性表的關係,存儲密度小
18.Java語言中,String類的IndexOf()方法返回的類型是?
A、Int16 B、Integer C、int D、long
解答:C
indexOf方法的聲明爲:public int indexOf(int ch)在此對象表示的字符序列中第一次出現該字符的索引;若是未出現該字符,則返回 -1。
19.如下關於面向對象概念的描述中,不正確的一項是()。
A.在現實生活中,對象是指客觀世界的實體
B.程序中的對象就是現實生活中的對象
C.在程序中,對象是經過一種抽象數據類型來描述的,這種抽象數據類型稱爲類(class)
D.在程序中,對象是一組變量和相關方法的集合
解答:B
面向過程強調的是每個功能的具體實現步驟,面向對象強調的是對象調用功能
20..執行下列代碼後,哪一個結論是正確的
String[] s=new String[10];
A. s[9] 爲 null;
B. s[10] 爲 「」;
C. s[0] 爲 未定義
D. s.length 爲10
解答:AD
s是引用類型,s中的每個成員都是引用類型,即String類型,String類型默認的值爲null
21.屬性的可見性有。(不定項選擇)
A.公有的
B.私有的
C.私有保護的
D.保護的
E.默認的
解答:ABDE
屬性的可見性有四種:公有的(public) 保護的(protected) 默認的 私有的(private)
22..在字符串前面加上_____符號,則字符串中的轉義字符將不被處理。
A @
B \
C #
D %
解答:B
在java中「\」表示轉譯符,改變了後面字符的原本意思;\r:回車;\n:換行(new line);\t:至關於tab鍵(叫製表符太生澀);\\:表示\;\':表示';\":表示"
23.下列代碼哪行會出錯:
1) public void modify() {
2) int I, j, k;
3) I = 100;
4) while ( I > 0 ) {
5) j = I * 2;
6) System.out.println (」 The value of j is 」 + j );
7) k = k + 1;
8) I - -;
9) }
10) }
A. 4
B. 6
C. 7
D. 8
解答:C
k沒有初始化就使用了
24.對記錄序列{314,298,508,123,486,145}按從小到大的順序進行插入排序,通過兩趟排序後的結果爲:
A {314,298,508,123,145,486}
B {298,314,508,123,486,145}
C {298,123,314,508,486,145}
D {12三、298,314,508,486,145}
解答:B
插入排序算法:()
public static void injectionSort(int[] number) {
// 第一個元素做爲一部分,對後面的部分進行循環
for (int j = 1; j < number.length; j++) {
int tmp = number[ j ];
int i = j – 1;
while (tmp < number[ i ]) {
number[i + 1] = number[ i ];
i - -;
if (i == -1)
break;
}
number[i + 1] = tmp;
}
}
25.棧是一種。
A 存取受限的線性結構
B 存取不受限的線性結構
C 存取受限的非線性結構
D 存取不受限的非線性結構
解答:A
棧(stack)在計算機科學中是限定僅在表尾進行插入或刪除操做的線性表。
26.下列哪些語句關於內存回收的說明是正確的。
A 程序員必須建立一個線程來釋放內存
B 內存回收程序負責釋放無用內存
C 內存回收程序容許程序員直接釋放內存
D 內存回收程序能夠在指定的時間釋放內存對象
解答:B
垃圾收集器在一個Java程序中的執行是自動的,不能強制執行,即便程序員能明確地判斷出有一塊內存已經無用了,是應該回收的,程序員也不能強制垃圾收集器回收該內存塊。程序員惟一能作的就是經過調用System. gc 方法來」建議」執行垃圾收集器,但其是否能夠執行,何時執行卻都是不可知的。
27.要實現java.long.Runnable接口,必須實現下列哪一個方法?
A. void run()
B. public void run()
C. public void start()
D. void run(int priority)
E. public void run(int priority)
F. public void start(int priority)
解答:B
實現Runnable接口,接口中有一個抽象方法run,實現類中實現該方法。
28 下列程序的結果是什麼?
1 public static void main(String[] args) {
2 Object obj = new Object() {
3 public int hashCode() {
4 return 42;
5 }
6 };
7 System.out.println(obj.hashCode());
8 }
A. 42
B.在運行時拋出異常
C. 編譯失敗,緣由是第2行出現錯誤
D. 編譯失敗,緣由是第3出現錯誤
E. 編譯失敗,緣由是第7行出現錯誤.
解答:A
匿名內部類重寫了hashCode方法。
29 java中的兩個保留字是什麼
A. const
B. import
C. doto
D. implements
解答:AC
const用於修改字段或局部變量的聲明。它指定字段或局部變量的值是常數,不能被修改
goto指定跳轉到標籤,找到標籤後,程序將處理從下一行開始的命令
30. 在一個類中重寫了hashCode和equals兩個方法,那麼對於同一個類的兩個實例,下列說法正確的是?
A. 若是hashCode值相同,equsal不一樣,則這兩個對象相同
B. 若是hashCode值相同,equals相同,則這兩個對象相同
C. 若是hashCode不一樣,equals相同,則這兩個對象相同
D. 若是hashCode值相同,則這兩個對象有可能相同
解答:BD
先經過 hashcode來判斷某個對象是否存放某個桶裏,但這個桶裏可能有不少對象,那麼咱們就須要再經過 equals 來在這個桶裏找到咱們要的對象。
31. java中char的取值範圍是多少?
A. 0 ~32767
B. 0 ~65535
C. –65535~65535
D. –128 ~127
解答:B
在Java中,char是一個無符號16位類型,取值範圍爲0到65535。
32. 下列程序運行結果是什麼?
public class Test {
private static float[] f = new float[2];
public static void main(String args[]) {
System.out.println(「f[0] = 「 + f[0]);
}
}
A. f[0] = 0
B. f[0] = 0.0
C. 編譯時報錯
D. 運行時報錯
解答:B
f屬於引用類型的float數組,數組定義之後,該引用類型的每個成員是float類型,默認值都爲:0.0
33. 下列程序的運行結果是什麼?
public class Test {
public static void main(String[] args) {
String str = NULL;
System.out.println(str);
}
}
A. NULL
B. 編譯時報錯
C. ""
D.運行時報錯
解答:B
null應該小寫
3四、下列程序執行結果是什麼?
public class Text{
public static void main(String[] args){
int a=10,b=4,c=20,d=6;
System.out.println(a++*b+c*--d);
}
}
A、144
B、164
C、140
D、160
解答:C
在java中執行加減乘除基本運算時,已就遵循先乘除後加減的原則,而++a與a++的區別在於,++a是先自增後在參與運算,a++是先參與運算以後在自增,因此最終答案是10*4+20*5=140
3五、下列哪兩個選項不能直接致使線程中止?
A. 跳出同步代碼塊
B. 調用wait方法
C. 調用notify方法
D. 調用讀取流的方法
E. 設置線程的優先權
解答:AC
stop方法.這個方法將終止全部未結束的方法,包括run方法。當一個線程中止時候,他會當即釋放 全部他鎖住對象上的鎖。這會致使對象處於不一致的狀態。 當線程想終止另外一個線程的時候,它沒法知道什麼時候調用stop是安全的,什麼時候會致使對象被破壞。因此這個方法被棄用了。你應該中斷一個線程而不是中止他。被中斷的線程會在安全的時候中止。
A、若是一個線程想進入一個已經被另一個線程佔用得同步代碼塊,這個線程會中止,可是這裏說的是跳出
B、他能使當前線程中止,等待別人調用notify方法
C、放另一個調用了wait方法得線程繼續執行,本身也能夠繼續執行
D、這是典型的阻塞方法,線程等待知道確實有東西可讀得時候纔會去讀
E、由於優先級改變了,JVM要從新選擇優先級高得先執行,因此會短暫中止
3六、 關於默認構造函數的建立,下列說法那些正確
A. 默認構造函數能夠初始化方法變量
B. 構造方法默認調用超類的無參構造方法
C. 默認構造方法會去初始化成員變量
D. 若是沒有無參構造函數,但有其餘構造函數,程序會自動建立默認的構造函數
E. 只有在該類沒有其餘構造函數的時候,程序纔會自動建立默認的構造函數
解答:BCE
構造方法的做用是實例化對象的時候給數據成員初始化,若是類中沒有顯示的提供構造方法,系統會提供默認的無參構造方法,若是有了其它構造方法,默認的構造方法再也不提供。
3七、 在下列程序中聲明一個內部內,如下選擇中,哪些最合適?
public class OuterClass {
private double d1 = 1.0;
//在這裏聲明
}
A. static class InnerOne { public double methoda() {return d1;} }
B. static class InnerOne { static double methoda() {return d1;} }
C. private class InnerOne { public double methoda() {return d1;} }
D. protected class InnerOne { static double methoda() {return d1;} }
E. public abstract class InnerOne { public abstract double methoda(); }
解答:CE
AB.內部類能夠聲明爲static的,但此時就不能再使用外層封裝類的非static的成員變量;
D.非static的內部類中的成員不能聲明爲static的,只有在頂層類或static的內部類中才可聲明static成員
3八、 下列方法中,哪些方法在子類中不能重寫?
A. final void methoda() {}
B. void methoda() {}
C. static void methoda() {}
D. static final void methoda() {}
解答:ACD
final修飾方法,在子類中不能被重寫。被static修飾的方法在子父類中不算是重寫,其底層是把父類的同名方法隱藏了
3九、下列程序的運行結果是什麼:
public class Test {
public static void main (String args[]) {
class Foo {
public int i = 3;
}
Object o = (Object) new Foo();
Foo foo = (Foo)o;
System.out.println(foo.i);
}
}
A. 編譯失敗
B. 編譯成功,而且會輸出打印「3」
C. 編譯成功,但會在第6行拋出ClassCastException異常
D. 編譯成功,但會在第7行拋出ClassCastException異常
解答:B
局部內部類的使用
40、 下列程序的運行結果是什麼:
public class Test {
public static void main (String [] args) {
String foo = 「blue」;
String bar = foo;
foo = 「green」;
System.out.println(bar);
}
}
A. 運行時異常
B. 編譯時異常
C. 輸出結果爲「null」
D. 輸出結果爲 「blue」
E. 輸出結果爲 「green」
解答:D
採用String foo = 「blue」定義方式定義的字符串放在字符串池中,經過String bar = foo;他們指向了同一地址空間,就是同一個池子,當執行foo = 「green」; foo指向新的地址空間。
4一、下面哪一個選項中整型變量foo的值最接近可是不大於double型變量bar的值?
A. int foo = (int) Math.max(bar);
B. int foo = (int) Math.min(bar);
C. int foo = (int) Math.abs(bar);
D. int foo = (int) Math.ceil(bar);
E. int foo = (int) Math.floor(bar);
F. int foo = (int) Math.round(bar);
解答:E
max方法是取最大值
min方法是取最小值
abs方法是取bar的絕對值,
ceil方法返回最小的(最接近負無窮大)double 值,該值大於等於參數,並等於某個整數。
floor方法返回最大的(最接近正無窮大)double 值,該值小於等於參數,並等於某個整數。
round方法 返回最接近參數的 long。
4二、 下列程序的運行結果是什麼:
1. package foo;
2. import java.util.Vector;
3. private class MyVector extends Vector {
4. int i = 1;
5. public MyVector() {
6. i = 2;
7. }
8. }
9. public class MyNewVector extends MyVector {
10. public MyNewVector () {
11. i = 4;
12. }
13. public static void main (String args []) {
14. MyVector v = new MyNewVector();
15. }
16. }
A. 編譯成果
B. 在第3行編譯失敗
C. 在第6行編譯失敗
D. 在第9行編譯失敗
E. 在第14行編譯失敗
解答:B
類MyVector不能是私有的
4三、下列程序執行結果是什麼?
public class Text{
public static void main(String[] args){
int i=12;
System.out.println(i+=i-=i*=i);
}
}
A、程序沒法編譯
B、100
C、0
D、-120
解答:D
在java中執行加減乘除基本運算時,已就遵循先乘除後加減的原則,而i+=i至關於i=i+i;
本題咱們先將i+=i-+i*=i編號 => i1+=i2-=i3*=i4;在計算以前先明白i1=i2=i3=i4=i=12;先計算i3=i*i=144,;再計算i1+=i2即爲i1=i1+i2=24,此時i1=i2=24;最後計算i2-=i3即爲i2=i2-i3=-120;
4四、 下列選項中,哪些選項與第2行相等:
1. public interface Foo{
2. int k = 4;
3. }
A. final int k = 4;
B. Public int k = 4;
C. static int k = 4;
D. Private int k = 4;
E. Abstract int k = 4;
F. Volatile int k = 4;
G. Transient int k = 4;
H. protected int k = 4;
解答:AB
static:修飾的靜態變量
final 修飾的是常量
abstract不能修飾變量
Volatile修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。並且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。這樣在任什麼時候刻,兩個不一樣的線程老是看到某個成員變量的同一個值。
Transient:對不需序列化的類的域使用transient關鍵字,以減小序列化的數據量。
int k=4至關於public static final int k=4; 在接口中能夠不寫static final
4五、 下列代碼的執行結果是什麼:
public class foo {
static String s;
public static void main (String[]args) {
System.out.println (「s=」 + s);
}
}
A. 代碼編譯成功並輸出「s=」
B. 代碼編譯成功並輸出「s=null」
C. 由於變量s沒有初始化,因此代碼編譯失敗
D. 代碼編譯成功,但在調用toString的時候拋出NullPointerException異常
解答:B
String爲引用數據類型,引用類型數據成員的默認值爲null
4六、下列建立數組實例正確的是?
A. int[] ia = new int [15];
B. float fa = new float [20];
C. char[] ca = 「Some String」;
D. Object oa = new float[20];
E. Int ia [][] = (4, 5, 6) (1, 2, 3)
解答:AD
任何類的父類都是Object,數組也數據引用類型,Object oa = new float[20];這種寫法至關於父類的用指向之類的實例。
4七、下列代碼中,在第四行 /X/ 能夠插入那些選項進行編譯?
public class ExceptionTest {
class TestException extends Exception {}
public void runTest () throws TestException {}
public void test () /X/ {
runTest ();
}
}
A. throws Exception
B. Catch (Exception e).
C. Throws RuntimeException.
D. Catch (TestException e).
E. No code is necessary.
解答:A
方法上使用throws拋出異常,Exception是異常類的超類。
4八、下列代碼的執行結果是什麼:
public class SwitchTest {
public static void main (String []args) {
System.out.println (「value =」 +switchIt(4));
}
public static int switchIt(int x) {
int j = 1;
switch (x) {
case 1:j++;
case 2: j++;
case 3: j++;
case 4: j++;
case 5: j++;
default:j++;
}
return j + x;
}
}
A. Value =3
B. Value =4
C. Value =5
D. Value =6
E. Value =7
F. Value =8
解答:F
因爲case塊沒有break語句,那麼從case 4:向下的代碼都會執行。
4九、下列選項中,那些是能夠被throw拋出的?
A. Error
B. Event
C. Object
D. Exception
E. Throwable
F. RuntimeException
解答:ADEF
可以拋出的對象類型要是Throwable 或是Throwable的子類
50.在下面程序的第6行補充上下列哪一個方法,會致使在編譯過程當中發生錯誤?
1) class Super{
2) public float getNum(){
3) return 3.0f;
4) }
}
5) pubhc class Sub extends Super{
6)
7) }
A,public float getNum(){retun 4.0f;}
B.public void getNum(){}
C.public void getNum(double d){}
D.public double getNum(float d){ retun 4.0f ;}
解答:B
方法重寫的問題。子類中有和父類的方法名相同,可是參數不一樣,不會出編譯錯誤,認爲是子類的特有的方法,可是若是子類中方法和父類的方法名,參數,訪問權限,異常都相同,只有返回值類型不一樣會編譯不經過。
51.下面關於import, class和package的聲明順序哪一個正確?( )
A. package, import, class
B. class, import, package
C. import, package, class
D. package, class, import
解答:A
在java代碼中,一個類從第一行到結尾,通常順序是 本類地址(在哪一個包下) 導了什麼包 class聲明
52.下面哪一個是正確的?( )
A. String temp [] = new String {「a」 「b」 「c」};
B. String temp [] = {「a」 「b」 「c」}
C. String temp = {「a」, 「b」, 「c」}
D. String temp [] = {「a」, 「b」, 「c」}
解答:D
53.關於java.lang.String類,如下描述正確的一項是( )
A. String類是final類故不能夠繼承;
B. String類是final類故能夠繼承;
C. String類不是final類故不能夠繼承;
D. String類不是final類故能夠繼承;
解答:A
String類是自讀字符串,被final修飾,在java中final修飾類的不能被繼承
54.關於實例方法和類方法,如下描述正確的是:( )
A. 實例方法只能訪問實例變量
B. 類方法既能夠訪問類變量,也能夠訪問實例變量
C. 類方法只能經過類名來調用
D. 實例方法只能經過對象來調用
解答:D
A 實例方法能夠訪問類變量
B 類方法只能訪問類變量
C 類方法能夠經過對象調用
55.接口是Java面向對象的實現機制之一,如下說法正確的是:( )
A. Java支持多繼承,一個類能夠實現多個接口;
B. Java只支持單繼承,一個類能夠實現多個接口;
C. Java只支持單繼承,一個類只能夠實現一個接口;
D. Java支持多繼承,但一個類只能夠實現一個接口。
解答:B
Java支持單重繼承,一個類只能繼承自另外的一個類,可是一個類能夠實現多個接口。可是java能夠多層繼承
56.下列關於interface(接口)的說法正確的是:( )
A. interface中能夠有private方法
B. interface中能夠有final方法
C. interface中能夠有function實現
D. interface能夠繼承其餘interface
解答:D
A.接口中不能夠有private的方法,接口不能被私有化
B.接口中不能夠有final的方法 接口中的方法默認是 public abstract的
C.接口中的方法不能夠有實現
57.已知A類被打包在packageA , B類被打包在packageB ,且B類被聲明爲public ,且有一個成員變量x被聲明爲protected控制方式 。C類也位於packageA包,且繼承了B類 。則如下說話正確的是( )
A. A類的實例不能訪問到B類的實例
B. A類的實例可以訪問到B類一個實例的x成員
C. C類的實例能夠訪問到B類一個實例的x成員
D. C類的實例不能訪問到B類的實例
解答:C
A、B包是public的,其餘包能訪問到
B、B包中的成員變量X被聲明成protected的,只能本包內實例才能訪問
C D、不一樣包子類的關係, 能夠訪問到父類B的protected成員
58.如下程序正確的輸出是( )
package test;
public class FatherClass {
public FatherClass() {
System.out.println(「FatherClass Create」);
}
}
package test;
import test.FatherClass;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println(「ChildClass Create」);
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
A.
FatherClass Create
FatherClass Create
ChildClass Create
B.
FatherClass Create
ChildClass Create
FatherClass Create
C.
ChildClass Create
ChildClass Create
FatherClass Create
D.
ChildClass Create
FatherClass Create
FatherClass Create
解答:A
實例化一個類的時候,就會去調用它的構造方法;在子類構造方法執行時,默認狀況下第一句是super();來調用父類的構造方法
59.給定以下代碼,下面哪一個能夠做爲該類的構造函數 ( )
public class Test {
}
A. public void Test() {?}
B. public Test() {?}
C. public static Test() {?}
D. public static void Test() {?}
解答:B
構造方法:與類同名沒有放回類型
60.題目:
1. public class test (
2. public static void main (String args[]) {
3. int i = 0xFFFFFFF1;
4. int j = ~i;
5.
6. }
7. }
程序運行到第5行時,j的值爲多少?( )
A. –15
B. 0
C. 1
D. 14
E. 在第三行的錯誤致使編譯失敗
解答:D
int i = 0xFFFFFFF1;至關於 int i=-15 「~」表示取反再減1;結果就爲15-1=14
61.關於sleep()和wait(),如下描述錯誤的一項是( )
A. sleep是線程類(Thread)的靜態方法,wait是Object類的方法;
B. sleep不釋放對象鎖,wait放棄對象鎖;
C. sleep暫停線程、但監控狀態仍然保持,結束後會自動恢復;
D. wait後進入等待鎖定池,只有針對此對象發出notify方法後得到對象鎖進入運行狀態。
解答:D
sleep是線程類(Thread)的靜態方法,致使此線程暫停執行指定時間,給執行機會給其餘線程,可是監控狀態依然保持,到時後會自動恢復。調用sleep不會釋放對象鎖。
wait是Object類的方法,必須和synchronized關鍵字一塊兒使用。對此對象調用wait方法致使本線程進入阻塞狀態,,只有針對此對象發出notify方法(或notifyAll)後本線程纔會解除阻塞,但只有從新佔用互斥鎖以後,本線程纔會進入運行狀態。
62.下面能讓線程中止執行的有(多選)( )
A. sleep();
B. stop();
C. notify();
D. synchronized();
E. yield();
F. wait();
G. notifyAll();
解答:ABDEF
sleep:致使此線程暫停執行指定時間
stop: 這個方法將終止全部未結束的方法,包括run方法。
synchronized():對象鎖
yield:當前正在被服務的線程可能以爲cpu的服務質量不夠好,因而提早退出,這就是yield。
wait:當前正在被服務的線程須要睡一會,醒來後繼續被服務
63.下面哪一個能夠改變容器的佈局?( )
A. setLayout(aLayoutManager);
B. addLayout(aLayoutManager);
C. layout(aLayoutManager);
D. setLayoutManager(aLayoutManager);
解答:A
Java設置佈局管理器setLayout()
64.在使用super和this關鍵字時,如下描述正確的是()
A、super()和this()不必定要放在構造方法第一行
B、this()和super()能夠同時出如今一個構造函數中
C、this()和super()能夠在static環境中使用,包括static方法和static代碼塊
D、在子類構造方法中,使用super()顯示調用父類的構造方法,super()必須寫在子類構造方法的第一行,不然編譯失敗
解答:D
super()是調用父類方法,this()是調用子類方法,子類方法中,只能放在方法的第一行,而且,他們兩不能同時出如今一個構造函數中,也不能調用被static修飾的方法和代碼塊
65.提供Java存取數據庫能力的包是()
A.java.sql
B.java.awt
C.java.lang
D.java.swing
解答:A
java.sql是JDBC的編程接口
java.awt和java.swing是作圖像界面的類庫
java.lang: Java 編程語言進行程序設計的基礎類
66.不能用來修飾interface的有()
A.private
B.public
C.protected
D.static
解答:ACD
修飾接口能夠是public和默認
67.下列說法錯誤的有()
A. 在類方法中可用this來調用本類的構造方法
B. 在類方法中調用本類的類方法時可直接調用
C. 在類方法中只能調用本類中的類方法
D. 在類方法中絕對不能調用實例方法
解答:ACD
A. 在類方法中,被static修飾的方法裏不能用this,在其餘沒有被static修飾的類中可使用this,但不能調本類的構造方法
C.在類方法中能夠調用其它類中的靜態類方法
D.在類方法中能夠經過實例化對象調用實例方法
68.從下面四段(A,B,C,D)代碼中選擇出正確的代碼段()
A. abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B. public class Something {
void doSomething () {
private String s ="";
int l = s.length();
}
}
C. public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D. public class Something {
public int addOne(final int x) {
return ++x; }
}
解答:C
A..抽象方法不能有方法體
B.方法中定義的是局部變量,不能用類成員變量修飾符private
D.final修飾爲常量,常量的值不能被改變,因此不能做爲參數變量
69.選擇下面代碼的運行結果:()。
public class Test{
public void method(){
for(int i = 0; i < 3; i++){
System.out.print(i);
}
System.out.print(i);
}
}
A.122
B.123
C.編譯錯誤
D.沒有任何輸出
解答:C
i變量的做用範圍是整個for循環,第二次輸出語句的i並無被定義
70.請看以下代碼
class Person {
private int a;
public int change(int m){
return m;
}
}
public class Teacher extends Person{
public int b;
public static void main(String arg[]){
Person p = new Person();
Teacher t = new Teacher();
int i;
// point x
}
}
下面哪些放在// point x?行是正確的?
A, i = m;
B, i = b;
C, i = p.a;
D, i = p.change(3);
E, i = t.b;
解答:DE
A.不一樣的做用域
B.靜態方法中不能直接使用非靜態成員變量
C.類外不能訪問其它類私有的成員
D,E.在類方法中能夠經過實例化對象調用類中的實例成員。