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的更多內容!
推薦閱讀:
- java 對象實例化過程中的多態特性解析
- 詳解Java中String,StringBuffer和StringBuilder的使用
- Java日常練習題,每天進步一點點(63)
- Java中的參數傳遞詳細介紹
- Java有哪些操作字符串的類?區別在哪?