目錄
- 題目
- 1.下面敘述錯誤的是 ( )
- 2.java如何返回request范圍內存在的對象?
- 3.以下代碼將打印出
- 4.下列類定義中哪些是合法的抽象類的定義?()
- 5.以下代碼段執行后的輸出結果為
- 6.以下代碼運行輸出的是
- 總結
題目
選自牛客網
1.下面敘述錯誤的是 ( )
A.一個類可以有多個構造方法
B.最終類不能派生子類,最終方法不能被覆蓋
C.如果一個類中沒有定義構造方法,則Java在生成這個類的實例時不會調用構造方法。
D.數組一旦創建之后,就不能再改變其長度
正確答案:C
正確答案是C。
解釋如下:
A.一個類可以有多個構造方法。這是正確的,因為一個類可以根據不同的參數列表擁有多個構造方法,這被稱為構造方法的重載。這樣,可以根據不同的初始化需求創建對象。
B.最終類不能派生子類,最終方法不能被覆蓋。這也是正確的。在Java中,使用
final
關鍵字修飾的類不能被繼承,即不能有子類。同樣,使用final
關鍵字修飾的方法不能被子類覆蓋。C. 如果一個類中沒有定義構造方法,則Java在生成這個類的實例時不會調用構造方法。這是錯誤的。在Java中,如果沒有顯式定義任何構造方法,編譯器會自動提供一個默認的無參構造方法。因此,即使沒有定義構造方法,創建類的實例時仍然會調用構造方法,只是這個構造方法是編譯器自動提供的默認構造方法。
D.數組一旦創建之后,就不能再改變其長度。這是正確的。在Java中,數組一旦被創建,其大小就是固定的,不能動態調整。如果需要一個可以動態調整大小的數據結構,通常會使用集合類,如
ArrayList
。
2.java如何返回request范圍內存在的對象?
A.request.getRequestURL()
B.request.getAttribute()
C.request.getParameter()
D.request.getWriter()
正確答案:B 在Java ServletAPI中,
HttpServletRequest
對象包含了請求信息,其中getAttribute()
方法用于檢索放在請求對象范圍內的屬性。這些屬性可以通過setAttribute()
方法在同一個請求的不同部分中共享。如果您想要返回請求范圍內存在的對象,應該使用request.getAttribute()
方法。因此,正確答案是Brequest.getAttribute()
。
3.以下代碼將打印出
public static void main (String[] args) {
String classFile = “com.jd.”. replaceAll(“.”, “/”) + “MyClass.class”;
System.out.println(classFile); }
A.com. jd
B.com/jd/MyClass.class
C.///MyClass.class
D.com.jd.MyClass
正確答案是C。
在這段代碼中,replaceAll方法的第一個參數是一個正則表達式,而.在正則表達式中表示匹配任意字符。因此,replaceAll(“.”,“/”)會將字符串中的所有字符(包括.)都替換為/。所以,原始字符串"com.jd.“會被替換為”//“,然后再加上"MyClass.class”,最終結果是"MyClass.class"。
4.下列類定義中哪些是合法的抽象類的定義?()
A.abstract Animal{abstract void growl();}
B.class abstract Animal{abstract void growl();}
C.abstract class Animal{abstract void growl();}
D.abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
正確答案:C
正確答案是 C。
C.abstract class Animal{abstract void growl();}
是正確的抽象類定義。在這個選項中,abstract class
關鍵字用于聲明一個抽象類Animal
,并且abstract void growl();
聲明了一個抽象方法growl()
。抽象類可以包含抽象方法,這些方法沒有實現體,只有方法簽名。其他選項的錯誤原因如下:
A.
abstract Animal{abstract void growl();}
錯誤,因為在 Java 中,抽象類的聲明必須使用
abstract class
關鍵字,而不是單獨的abstract
。B.
class abstract Animal{abstract void growl();}
錯誤,因為abstract
關鍵字不能放在類名后面。正確的做法是在class
前面加上abstract
。D.
abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
錯誤,因為抽象方法不能有方法體。在這個選項中,growl()
方法有一個方法體
System.out.println( “growl”);
,這是不允許的。抽象方法只能有方法簽名,不能有實現。所以,只有選項 C 是正確的抽象類定義。
5.以下代碼段執行后的輸出結果為
public class Test {
public static void main(String args[]) {
int x = -5;
int y = -12;
System.out.println(y % x);
}
}
A.-1
B.2
C.1
D.-2
正確答案:D
6.以下代碼運行輸出的是
public class Person{
private String name = “Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A.輸出:Person
B.沒有輸出
C.編譯出錯
D.運行出錯
正確答案:C
官方解析:
父類private的成員變量,根據權限修飾符的訪問控制范圍,只有在類內部才能被訪問,就算是他的子類,也不能訪問。這里如果將Person p= new Child();改成Person p = new Person();代碼依然無法通過編譯,因為子類作用域中訪問不到父類的私有變量,無法為其生成正確的字節碼。另外,一個Java文件中不能有兩個public類。
7.在Java中,對于不再使用的內存資源,如調用完成的方法,“垃圾回收器”會自動將其釋放。( )
A.正確
B.錯誤
正確答案:B
總結
祈望此片星空呈現盛世之祥和景象,引領我們攜手共進。