Java日常練習題,每天進步一點點(27)
承蒙各位厚愛,我們一起每天進步一點點?。ㄊ髽诉x中空白處查看答案)
1、與未加訪問控制符的缺省情況相比,public和protected修飾符擴大了屬性和方法的被訪問范圍,private修飾符則縮小了這種范圍。
正確答案: A
正確
錯誤
題解:
2、下列敘述錯誤的是( )
正確答案: D
在接口中定義的方法除了default和static關鍵字修飾的方法擁有方法體,其他方法都應是沒有方法體的抽象方法(JDK1.8以后)
一個java類只能有一個父類,但可以實現(xiàn)多個接口
在類聲明中,用implements關鍵字聲明該類實現(xiàn)的接口
定義接口時使用implements關鍵字。
題解:
A、JDK8開始,接口中可以定義有方法體的方法,方法必須被default和static修飾。除此之外,其他方法都是抽象方法。
B、Java的語法是單繼承,但是繼承可以傳遞。其實B更準確一點是只能有一個直接父類。
C、繼承用extends,實現(xiàn)用implements。先繼承后實現(xiàn)。
D、定義類是class,接口是interface。
3、能用來修飾interface的有()
正確答案: B
private
public
protected
static
題解:
java中接口只能使用public修飾,接口內(nèi)方法默認為public abstract
4、關于訪問權限,說法正確的是? ( )
正確答案: A
類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A可以訪問類B的方法testB
類A和類B在同一包中,類B有個protected的方法testB,類A不是類B的子類(或子類的子類),類A不可以訪問類B的方法testB
訪問權限大小范圍:public > 包權限 > protected > private
訪問權限大小范圍:public > 包權限 > private > protected
題解:
private 權限限于同一個類中; default 權限限于同一個包中,即包權限=default權限; protected權限限于同一個包中,以及不在同一個包中的子類 public 權限在不同包中都可以
5、下列說法正確的有()
正確答案: A
能被java.exe成功運行的java class文件必須有main()方法
J2SDK就是Java API
Appletviewer.exe可利用jar選項運行.jar文件
能被Appletviewer成功運行的java class文件必須有main()方法
題解:
A:正確,main方法是入口
B:J2SDK當然不僅僅包含java API
C:jar選項是java.exe 的選項
D:Appletviewer是運行applet的, applet 不用main方法,繼承applet類即可。
6、Java數(shù)據(jù)庫連接庫JDBC用到哪種設計模式?
正確答案: B
生成器
橋接模式
抽象工廠
單例模式
題解:
橋接模式:
定義 :將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。
橋接模式所涉及的角色
1 . Abstraction :定義抽象接口,擁有一個Implementor類型的對象引用
2 . RefinedAbstraction :擴展Abstraction中的接口定義
3 . Implementor :是具體實現(xiàn)的接口,Implementor和RefinedAbstraction接口并不一定完全一致,實際上這兩個接口可以完全不一樣Implementor提供具體操作方法,而Abstraction提供更高層次的調(diào)用
4 . ConcreteImplementor :實現(xiàn)Implementor接口,給出具體實現(xiàn)
Jdk中的橋接模式:JDBC
JDBC連接 數(shù)據(jù)庫 的時候,在各個數(shù)據(jù)庫之間進行切換,基本不需要動太多的代碼,甚至絲毫不動,原因就是JDBC提供了統(tǒng)一接口,每個數(shù)據(jù)庫提供各自的實現(xiàn),用一個叫做數(shù)據(jù)庫驅(qū)動的程序來橋接就行了
7、public void test() {
int a = 10;
System.out.println(a++ + a–);
}
最后輸出什么?
正確答案: C
19
20
21
22
題解:
a++ + a-- 等價于 10 + 11,a++ 先把10賦值給a 再+1 所以左邊是10 但此時a=11。右邊a-- 也是先賦值 a=11,再進行-1操作,就沒啥影響了。所以10+11=21 最后a=10。
8、如何獲取ServletContext設置的參數(shù)值?
正確答案: B
context.getParameter()
context.getInitParameter()
context.getAttribute()
context.getRequestDispatcher()
題解:
getParameter()是獲取POST/GET傳遞的參數(shù)值;
getInitParameter獲取Tomcat的server.xml中設置Context的初始化參數(shù)
getAttribute()是獲取對象容器中的數(shù)據(jù)值;
getRequestDispatcher是請求轉(zhuǎn)發(fā)。
9、下面關于程序編譯說法正確的是()
正確答案: C
java語言是編譯型語言,會把java程序編譯成二進制機器指令直接運行
java編譯出來的目標文件與具體操作系統(tǒng)有關
java在運行時才進行翻譯指令
java編譯出來的目標文件,可以運行在任意jvm上
題解:
A: .java編譯成的是字節(jié)碼,再被各系統(tǒng)的jvm翻譯成本系統(tǒng)可以識別的機器碼,這就是java一次編程多平臺應用的跨平臺性
B: java源文件生成的是class文件,與系統(tǒng)無關
C: 注意字節(jié)碼和機器碼不是一回事 java程序在運行時字節(jié)碼才會被jvm翻譯成機 器碼,所以說java是解釋性語言
D: 注意jvm的版本
10、關于身份證號,以下正確的正則表達式為( )
正確答案: A C
A:isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
B:isIDCard=/^[1-9]\d{7}((9\d)|(1[0-2]))(([0|1|2]\d)|3[9-1])\d{3}$/;
C:isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
D:isIDCard=/^[1-9]\d{5}[1-9]\d{3}((9\d)|(1[9-2]))(([0|1|2]\d)|3[9-1])\d{4}$/;
題解:
正確選項
A選項:isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
C選項:isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/
^:起始符號,^x表示以x開頭
$:結束符號,x$表示以x結尾
[n-m]:表示從n到m的數(shù)字
\d:表示數(shù)字,等同于[0-9]
X{m}:表示由m個X字符構成,\d{4}表示4位數(shù)字
15位身份證的構成:六位出生地區(qū)碼+六位出身日期碼+三位順序碼
18位身份證的構成:六位出生地區(qū)碼+八位出生日期碼+三位順序碼+一位校驗碼
C選項的構成:
[1-9]\d{5}:六位出生地區(qū)碼,出生地區(qū)碼沒有以0開頭,因此第一位為[1-9]。
[1-9]\d{3}:八位出生日期碼的四位年份,同樣年份沒有以0開頭。
((0\d)|(1[0-2])):八位出生日期碼的兩位月份,| 表示或者,月份的形式為0\d或者是10、11、12。
(([0|1|2]\d)|3[0-1]):八位出生日期碼的兩位日期,日期由01至31。
\d{4}:三位順序碼+一位校驗碼,共四位。
A選項的構成:
[1-9]\d{7}:六位出生地區(qū)碼+兩位出生日期碼的年份,這里的年份指后兩位,因此沒有第一位不能為0的限制,所以合并了。
后面的與C選項類似了。
其實我也是第一次知道身份證還有15位的。
一代身份證15位,二代18位。
答案匯總:
1、正確答案: A
2、正確答案: D
3、正確答案: B
4、正確答案: A
5、正確答案: A
6、正確答案: B
7、正確答案: C
8、正確答案: B
9、正確答案: C
10、正確答案: A C
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
SpringBoot基于RabbitMQ實現(xiàn)消息延遲隊列方案及使用場景
在很多的業(yè)務場景中,延時隊列可以實現(xiàn)很多功能,此類業(yè)務中,一般上是非實時的,需要延遲處理的,需要進行重試補償?shù)?這篇文章主要介紹了SpringBoot基于RabbitMQ實現(xiàn)消息延遲隊列方案及使用場景,需要的朋友可以參考下2024-04-04SpringBoot父子線程數(shù)據(jù)傳遞的五種方案介紹
在實際開發(fā)過程中我們需要父子之間傳遞一些數(shù)據(jù),比如用戶信息等。該文章從5種解決方案解決父子之間數(shù)據(jù)傳遞困擾,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-09-09Java8中stream和functional interface的配合使用詳解
這篇文章主要給大家介紹了關于Java8中stream和functional interface配合使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java8具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-11-11一文搞懂Java常見的三種代理模式(靜態(tài)代理、動態(tài)代理和cglib代理)
Java中常見的三種代理模式是靜態(tài)代理模式、動態(tài)代理模式和CGLIB代理模式,本文就來給大家詳細的講解一下這三種代理模式,感興趣的小伙伴跟著小編一起來看看吧2023-08-08