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


