Java日常練習題,每天進步一點點(40)

承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)

1.下面有關JSP內置對象的描述,說法錯誤的是?

正確答案: C

session對象:session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止

request對象:客戶端的請求信息被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應

application對象:多個application對象實現瞭用戶間數據的共享,可存放全局變量

response對象:response對象包含瞭響應客戶請求的有關信息

題解:
application服務器就創建瞭一個,多個用戶共享一個。
application對象是共享的,多個用戶共享一個,以此實現數據共享和通信
1.request對象
客戶端的請求信息被封裝在request對象中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的實例。
2.response對象
response對象包含瞭響應客戶請求的有關信息,但在JSP中很少直接用到它。它是HttpServletResponse類的實例。
3.session對象
session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止。它是HttpSession類的實例.
4.application對象
application對象實現瞭用戶間數據的共享,可存放全局變量。它開始於服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前後連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務器的啟動和關閉決定瞭application對象的生命。它是ServletContext類的實例。

2.Java語言與其它語言相比,獨有的特點是( )

正確答案: C

面向對象

多線程

平臺無關

網絡編程

3.下面哪個選項正確創建socket連接?

正確答案: B

Socket s = new Socket(8080);

Socket s = new Socket(“192.168.1.1”,8080)

SocketServer s = new Socket(8080);

Socket s = new SocketServer(“192.168.1.1”,8080)

題解:
服務器端:ServerSocket提供的實例 ServerSocket server = new ServerSocket(端口號)
客戶端:Socket提供的實例 Socket client = new Socket(IP地址,端口號)

4.定義有StringBuffer s1=new StringBuffer(10);s1.append(“1234”)則s1.length()和s1.capacity()分別是多少?

正確答案: A

4 10

4 4

10 10

10 4

題解:
length 返回當前長度
如果字符串長度沒有初始化長度大,capacity返回初始化的長度
如果append後的字符串長度超過初始化長度,capacity返回增長後的長度

5.下面有關SPRING的事務傳播特性,說法錯誤的是?

正確答案: B

PROPAGATION_SUPPORTS:支持當前事務,如果當前沒有事務,就以非事務方式執行

PROPAGATION_REQUIRED:支持當前事務,如果當前沒有事務,就拋出異常

PROPAGATION_REQUIRES_NEW:新建事務,如果當前存在事務,把當前事務掛起

PROPAGATION_NESTED:支持當前事務,新增Savepoint點,與當前事務同步提交或回滾

題解:
PROPAGATION_REQUIRED–支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。
PROPAGATION_SUPPORTS–支持當前事務,如果當前沒有事務,就以非事務方式執行。
PROPAGATION_MANDATORY–支持當前事務,如果當前沒有事務,就拋出異常。
PROPAGATION_REQUIRES_NEW–新建事務,如果當前存在事務,把當前事務掛起。
PROPAGATION_NOT_SUPPORTED–以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。
PROPAGATION_NEVER–以非事務方式執行,如果當前存在事務,則拋出異常。

6.有一個源代碼,隻包含import java.util.* ; 這一個import語句,下面敘述正確的是? ( )

正確答案: C

隻能寫在源代碼的第一句

可以訪問java/util目錄下及其子目錄下的所有類

能訪問java/util目錄下的所有類,不能訪問java/util子目錄下的所有類

編譯錯誤

題解:
java.util.*,隻能讀取其目錄下的類,不能讀取其子目錄下的類。
因為其根目錄和子目錄下可能有同名類,若都能讀取,則會混淆。

7.以下代碼結果是什麼?

public class foo {

public static void main(String sgf[]) {

StringBuffer a=new StringBuffer(“A”);

StringBuffer b=new StringBuffer(“B”);

operate(a,b);

System.out.println(a+”.”+b);

}

static void operate(StringBuffer x,StringBuffer y) {

x.append(y);

y=x;

}

}

正確答案: C

代碼可以編譯運行,輸出“AB.AB”。

代碼可以編譯運行,輸出“A.A”。

代碼可以編譯運行,輸出“AB.B”。

代碼可以編譯運行,輸出“A.B”。

題解:
在這裡插入圖片描述

8.Test.main()函數執行後的輸出是( )

class Test {

public static void main(String[] args) {

System.out.println(new B().getValue());

}

static class A {

protected int value;

public A (int v) {

setValue(v);

}

public void setValue(int value) {

this.value= value;

}

public int getValue() {

try {

value ++;

return value;

} finally {

this.setValue(value);

System.out.println(value);

}

}

}

static class B extends A {

public B () {

super(5);

setValue(getValue()- 3);

}

public void setValue(int value) {

super.setValue(2 * value);

}

}

}

正確答案: B

6 7 7

22 34 17

22 74 74

11 17 34

題解:
詳見討論區

9.運行代碼,輸出的結果是()

public class P {

public static int abc = 123;

static{

System.out.println(“P is init”);

}

}

public class S extends P {

static{

System.out.println(“S is init”);

}

}

public class Test {

public static void main(String[] args) {

System.out.println(S.abc);

}

}

正確答案: A

A:P is init

123

B:S is init

P is init

123

C:P is init

S is init

123

D:S is init

123

題解:
屬於被動引用不會出發子類初始化
1.子類引用父類的靜態字段,隻會觸發子類的加載、父類的初始化,不會導致子類初始化
2.通過數組定義來引用類,不會觸發此類的初始化
3.常量在編譯階段會進行常量優化,將常量存入調用類的常量池中, 本質上並沒有直接引用到定義常量的類,因此不會觸發定義常量的類的初始化。

10.單例模式中,兩個基本要點是

正確答案: A D

構造函數私有

靜態工廠方法

以上都不對

唯一實例

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: