承蒙各位厚愛,我們一起每天進(jìn)步一點點!(鼠標(biāo)選中空白處查看答案)
1、以下二維數(shù)組聲明合法的是( )
正確答案: C
char[2][3] ch = new char[][]
char[2][] ch = new char[][3]
char[][] ch = new char[2][3]
char[][] ch = new [2]char[3]
題解:定義數(shù)組,等號左邊不能出現(xiàn)數(shù)字,也就是數(shù)組的不管什么大小 不能出現(xiàn)在左邊以下這樣定義都是正確的:
int [][] table0 = new int[2][2];
int [][] table1 = new int[2][];
int [] table2 [] = new int[2][2];
int [] table3 [] = new int[2][];
2、
class Foo { final int i; int j; public void doSomething() { System.out.println(++j + i); } }
的輸出是?
正確答案: D
0
1
2
不能執(zhí)行,因為編譯有錯
題解:類的final成員變量必須滿足以下其中一個條件 1、在構(gòu)造函數(shù)中賦值 2、初始化賦值
3、使用mvc模式設(shè)計的web應(yīng)用程序具有以下優(yōu)點,除了?
正確答案: D
可維護(hù)行強(qiáng)
可擴(kuò)展性強(qiáng)
代碼重復(fù)少
大大減少代碼量
題解: MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。 MVC只是將分管不同功能的邏輯代碼進(jìn)行了隔離,增強(qiáng)了可維護(hù)和可擴(kuò)展性,增強(qiáng)代碼復(fù)用性,因此可以減少代碼重復(fù)。但是不保證減少代碼量,多層次的調(diào)用模式還有可能增加代碼量。
4、訪問權(quán)限控制從最大權(quán)限到最小權(quán)限依次為:public、 包訪問權(quán)限、protected和private 。( )
正確答案: B
正確
錯誤
題解:這可是個送分題,應(yīng)該是:public>protected>默認(rèn)(包訪問權(quán)限)>private,因為protected除了可以被同一包訪問,還可以被包外的子類所訪問。
5、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是
正確答案: A
靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化
靜態(tài)數(shù)據(jù)成員不可以被類的對象調(diào)用
靜態(tài)數(shù)據(jù)成員不受private控制符的作用
靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用
題解:大多數(shù)可能會疑惑D,D選項需要考慮在A類通過類名訪問B類的靜態(tài)成員變量時,B類的靜態(tài)成員變量必須public修飾,所以D項要注意訪問權(quán)限。
6、有如下一段代碼,請選擇其運行結(jié)果()
1
2
3
4
5
6
7
8
9
10
|
public class StringDemo{ private static final String MESSAGE= "taobao" ; public static void main(String [] args) { String a = "tao" + "bao" ; String b= "tao" ; String c= "bao" ; System.out.println(a==MESSAGE); System.out.println((b+c)==MESSAGE); } } |
正確答案: C
true true
false false
true false
false true
題解:要注意兩個問題:
1,字符串在java中存儲在字符串常量區(qū)中
2,==判斷的是對象引用是否是同一個引用,判斷字符串相等要用equals方法首先判斷a==MESSAGE 同一份字符串常量在內(nèi)存中只有一份,因此是同一地址,返回true 再次比較(b+c)==MESSAGE 這相當(dāng)于 new String(b+c)==MESSAGE 這里new了一個String對象,所以返回false
7、下列關(guān)于JAVA多線程的敘述正確的是()
正確答案: B C
調(diào)用start()方法和run()都可以啟動一個線程
CyclicBarrier和CountDownLatch都可以讓一組線程等待其他線程
Callable類的call()方法可以返回值和拋出異常
新建的線程調(diào)用start()方法就能立即進(jìn)行運行狀態(tài)
題解:
A. start()方法來啟動線程,真正實現(xiàn)了多線程運行,調(diào)用了run()方法;run()方法當(dāng)作普通方法的方式調(diào)用。
B. CyclicBarrier讓一組線程等待其他線程;CountDownLatch讓一組線程等待某個事件發(fā)生。
C. Callable中的call比Runnable中的run厲害就厲害在有返回值和可以拋出異常。同時這個返回值和線程池一起用的時候可以返回一個異步對象Future。
D. start()方法讓thread進(jìn)去可運行狀態(tài)(runnable),等待獲取CPU的使用權(quán)。
8、下列可作為java語言標(biāo)識符的是()
正確答案: A B C
a1
$1
_1
11
題解: Java標(biāo)識符由數(shù)字,字母和下劃線(_),美元符號($)或人民幣符號(¥)組成。在Java中是區(qū)分大小寫的,而且還要求首位不能是數(shù)字。最重要的是,Java關(guān)鍵字不能當(dāng)作Java標(biāo)識符。
9、下面哪些屬于JSP內(nèi)置對象及方法?
正確答案: A B C D
request
out
application
config
題解: JSP九大內(nèi)置對象有:
1.request對象客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是HttpServletRequest類的實例。
2.response對象 response對象包含了響應(yīng)客戶請求的有關(guān)信息,但在JSP中很少直接用到它。它是HttpServletResponse類的實例。
3.session對象 session對象指的是客戶端與服務(wù)器的一次會話,從客戶連到服務(wù)器的一個WebApplication開始,直到客戶端與服務(wù)器斷開連接為止。它是HttpSession類的實例.
4.out對象 out對象是JspWriter類的實例,是向客戶端輸出內(nèi)容常用的對象
5.page對象 page對象就是指向當(dāng)前JSP頁面本身,有點象類中的this指針,它是java.lang.Object類的實例
6.application對象 application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務(wù)器的啟動,直到服務(wù)器的關(guān)閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進(jìn)行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務(wù)器的啟動和關(guān)閉決定了application對象的生命。它是ServletContext類的實例。
7.exception對象 exception對象是一個例外對象,當(dāng)一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應(yīng)用此對象,就必須把isErrorPage設(shè)為true,否則無法編譯。他實際上是java.lang.Throwable的對象
8.pageContext對象 pageContext對象提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當(dāng)于頁面中所有功能的集大成者,它的本 類名也叫pageContext。
9.config對象 config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(shù)(通過屬性名和屬性值構(gòu)成)以及服務(wù)器的有關(guān)信息(通過傳遞一個ServletContext對象)
10、以下類型為Final類型的為()
正確答案: B C
HashMap
StringBuffer
String
Hashtable
題解: StringBuilder , StringBuffer ,String 都是 final 的,但是為什么StringBuilder , StringBuffer可以進(jìn)行修改呢,因為不可變包括的是,引用不可變以及對象不可變,而這三個都是屬于引用不可變,(也就是地址不要變,里面的內(nèi)容隨心所欲),而StringBuilder , StringBuffer 中都包含右append方法,可對對象中的內(nèi)容進(jìn)行增加。而String a=“123”+new String(“456”);實際上底層是用了一個StringBuffer 進(jìn)行append。 String里定義的是final類型的字符數(shù)組,所以不可變。 HashMap和Hashtable沒有final修飾。
答案匯總:
1、正確答案: C
2、正確答案: D
3、正確答案: D
4、正確答案: B
5、正確答案: A
6、正確答案: C
7、正確答案: B C
8、正確答案: A B C
9、正確答案: A B C D
10、正確答案: B C
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/weixin_43883917/article/details/118794709