一、下面哪一個修飾符修飾的變量是全部同一個類生成的對象共享的( C)java
A、public
B、private
C、static
D、final
解析:web
class A{}編程 class B extends A{}cookie class C extends A{}app class D extends B{}編程語言 A obj = new D();函數 System.out.println(obj instanceof B);ui System.out.println(obj instanceof C);this System.out.println(obj instanceof D);url System.out.println(obj instanceof A);
|
A、1
B、2
C、3
D、4
解析:
三、有一個源代碼,只包含import java.util.* ; 這一個import語句,下面敘述正確的是? ( C)
A、只能寫在源代碼的第一句
B、能夠訪問java/util目錄下及其子目錄下的全部類
C、能訪問java/util目錄下的全部類,不能訪問java/util子目錄下的全部類
D、編譯錯誤
解析:
導入java.util.*不能讀取其子目錄的類,由於若是java.util裏面有個a類,java.util.regex裏面也有個a類,咱們如果要調用a類的方法或屬性時,應該使用哪一個a類呢。
四、以下代碼的輸出是 B
package
Test;
public
class
Test {
private
static
void
test(
int
[] arr) {
for
(
int
i =
0
; i < arr.length; i++) {
try
{
if
(arr[i] %
2
==
0
) {
throw
new
NullPointerException();
}
else
{
System.out.print(i);
}
}
finally
{
System.out.print(
"e"
);
}
}
}
public
static
void
main(String[]args) {
try
{
test(
new
int
[] {
0
,
1
,
2
,
3
,
4
,
5
});
}
catch
(Exception e) {
System.out.print(
"E"
);
}
}
}
A、編譯出錯
B、eE
C、Ee
D、eE1eE3eE5
E、Ee1Ee3Ee5
解析:
因爲arr[0] =0,因此在進入 test()方法裏面會在第一個if 上拋出一個 NullPointerException,接着會執行 finally 的語句, (finally語句先於 return 和 throw語句執行),輸出一個'e,而後回到 main方法中,因爲捕捉到異常,因此進入到catch語句中,而後打印一個'E',因此最終結果爲"eE".
五、關於匿名內部類敘述正確的是? (B )
A、匿名內部類能夠繼承一個基類,不能夠實現一個接口
B、匿名內部類不能夠定義構造器
C、匿名內部類不能用於形參
D、以上說法都不正確
解析:
因爲構造器的名字必須與類名相同,而匿名類沒有類名,因此匿名類不能有構造器。
六、下面代碼的運行結果爲:(C)
import
java.io.*;
import
java.util.*;
public
class
foo{
public
static
void
main (String[] args){
String s;
System.out.println(
"s="
+ s);
}
}
A、代碼獲得編譯,並輸出「s=」
B、代碼獲得編譯,並輸出「s=null」
C、因爲String s沒有初始化,代碼不能編譯經過
D、代碼獲得編譯,但捕獲到 NullPointException異常
七、下列關於if-else if選擇結構的說法正確的是 BD
A、多個else if塊之間的順序能夠改變,改變以後對程序的執行結果沒有影響
B、if塊之間的順序能夠改變,改變以後可能對程序的執行結果有影響
C、多個else if塊之間的順序不能夠改變,改變後程序編譯不經過
D、多個else if塊之間的順序能夠改變,改變後程序編譯能夠經過
八、下列方法中哪一個是線程執行的方法? (A)
A、run()
B、start()
C、sleep()
D、suspend()
解析:
start是啓動線程對象,使之重新建狀態轉入就緒狀態;
sleep讓線程睡眠一段時間,在此期間線程不消耗CPU資源;
suspend使線程掛起,暫停執行, 若是想恢復線程,必須由其餘線程調用 resume方法。
九、下面關於靜態方法說明正確的是 B
A、在靜態方法中可用this來調用本類的類方法
B、在靜態方法中調用本類的靜態方法時可直接調用
C、在靜態方法中只能調用本類中的靜態方法
D、在靜態方法中絕對不能調用實例方法
解析:
十、下面哪一個不屬於HttpServletResponse接口完成的功能?C
A、設置HTTP頭標
B、設置cookie
C、讀取路徑信息
D、輸出返回數據
解析:
1
|
response.setHeader(
"Refresh"
,
"3"
);
//三秒刷新頁面一次
|
1
2
|
Cookie c1 =
new
Cookie(
"username"
,
"only"
);
response.addCookie(c1);
|
1
2
3
4
5
|
從request獲取各類路徑總結
request.getRealPath(
"url"
);
// 虛擬目錄映射爲實際目錄
request.getRealPath(
"./"
);
// 網頁所在的目錄
request.getRealPath(
"../"
);
// 網頁所在目錄的上一層目錄
request.getContextPath();
// 應用的web目錄的名稱
|
1
|
HttpServleteResponse.getOutputStream().write();
|
十一、下面哪一個不對? C
A、RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
B、A method is not required to declare in its throws clause any subclasses of RuntimeExeption that might be thrown during the execution of the method but not caught
C、An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.
D、NullPointerException is one kind of RuntimeException
解析:
運行時異常的特色是Java編譯器不會檢查它,也就是說,當程序中可能出現這類異常,即便沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯經過。
非運行時異常 (編譯異常): 是RuntimeException之外的異常,類型上都屬於Exception類及其子類。從程序語法角度講是必須進行處理的異常,若是不處理,程序就不能編譯經過。如IOException、SQLException等以及用戶自定義的Exception異常,通常狀況下不自定義檢查異常。
十二、下列Java代碼中的變量a、b、c分別在內存的____存儲區存放。 C
class
A {
private
String a = 「aa」;
public
boolean methodB() {
String b = 「bb」;
final String c = 「cc」;
}
}
A、堆區、堆區、堆區
B、堆區、棧區、堆區
C、堆區、棧區、棧區
D、堆區、堆區、棧區
E、靜態區、棧區、堆區
F、靜態區、棧區、棧區
解析:
A是類中的成員變量,存放在堆區。
B、C都是方法中的局部變量,存放在棧區。
1三、下列說法正確的有(ACD )
A、環境變量可在編譯source code時指定
B、在編譯程序時,所能指定的環境變量不包括class path
C、javac一次可同時編譯數個Java源文件
D、javac.exe能指定編譯結果要置於哪一個目錄(directory)
1四、如下不是修飾符final的做用的是( C)。
A、修飾常量
B、修飾不可被繼承的類
C、修飾不可變類
D、修飾不可覆蓋的方法
解析:
public class DataObject implements Serializable{
private static int i=0;
private String word=
" "
;
public void setWord(String word){
this
.word=word;
}
public void setI(int i){
Data0bject. i=I;
}
}
DataObject object=
new
Data0bject ( );
object. setWord(
"123"
);
object. setI(2);
A、"", 0
B、"", 2
C、"123", 2
D、"123", 0
解析:
序列化保存的是對象的狀態,靜態變量屬於類的狀態,所以,序列化並不保存靜態變量。因此i是沒有改變的。
1六、關於異常的編程,如下描述錯誤的是:( A )
A、在有除法存在的代碼處,爲了防止分母爲零,必須拋出並捕獲異常
B、int i=Integer.parseInt(」123a」);將產生NumberFormatException
C、int a[]=null; a[0]=1; 將產生NullPointerException
D、輸入輸出流編程中,讀和寫時都要拋出IOException
1七、從運行層面上來看,從四個選項選出不一樣的一個。 B
A、JAVA
B、Python
C、objectC
D、C#
解析:
1八、從內存實現或者反射的角度來看,關於繼承的說法正確的是(A)。
A、子類將繼承父類的全部的數據域和方法
B、子類將繼承父類的其可見的數據域和方法
C、子類只繼承父類public方法和數據域
D、子類只繼承父類的方法,而不繼承數據域
解析:
在一個子類被建立的時候,首先會在內存中建立一個父類對象,而後在父類對象外部放上子類獨有的屬性,二者合起來造成一個子類的對象。因此所謂的繼承使子類擁有父類全部的屬性和方法其實能夠這樣理解,子類對象確實擁有父類對象中全部的屬性和方法,可是父類對象中的私有屬性和方法,子類是沒法訪問到的,只是擁有,但不能使用。就像有些東西你可能擁有,可是你並不能使用。因此子類對象是絕對大於父類對象的,所謂的子類對象只能繼承父類非私有的屬性及方法的說法是錯誤的。能夠繼承,只是沒法訪問到而已。
1九、java8中,忽略內部接口的狀況,不能用來修飾interface裏的方法的有( AC)
A、private
B、public
C、protected
D、static
解析:
20、如下哪一種JAVA的變量表達式使得變量a和變量b具備相同的內存引用地址( AB)
A、String a = "hello"; String b = "hello";
B、Integer a; Integer b = a;
C、int a = 1; Integer b = new Integer(1);
D、int a = 1; Integer b = 1;
解析:
內存引用地址,是指棧中存放的地址,來指向堆中的某個位置。int 是基本類型,數據直接存放在棧中,不存在內存引用地址的說法==A對 指向常量池裏的"hello"。B對 題中沒說聲明的a是局部變量。C錯 int a =1;並不指向堆中,它只有值,沒有引用地址,Integer b =new Integer(1);指向堆中地址爲1的位置。D錯 緣由同C