Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(7)
承蒙各位厚愛(ài),我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、下面的代碼運(yùn)行的結(jié)果是:
class B extends Object
{
static
{
System.out.println("Load B");
}
public B()
{
System.out.println("Create B");
}
}
class A extends B
{
static
{
System.out.println("Load A");
}
public A()
{
System.out.println("Create A");
}
}
public class Testclass
{
public static void main(String[] args)
{
new A();
}
}
正確答案: B
Load B ->Create B->Load A -> Create A
Load B -> Load A ->Create B ->Create A
Load B -> Create B-> Create A -> Load A
Create B ->Create A ->Load B ->Load A
題解:
初始化塊在構(gòu)造器執(zhí)行之前執(zhí)行,類初始化階段先執(zhí)行最頂層父類的靜態(tài)初始化塊,依次向下執(zhí)行,最后執(zhí)行當(dāng)前類的靜態(tài)初始化塊;創(chuàng)建對(duì)象時(shí),先調(diào)用頂層父類的構(gòu)造方法,依次向下執(zhí)行,最后調(diào)用本類的構(gòu)造方法。
父類靜態(tài)代碼塊-》子類靜態(tài)代碼塊-》父類構(gòu)造代碼塊-》父類構(gòu)造函數(shù)-》子類構(gòu)造代碼塊-》子類構(gòu)造函數(shù)
初始化過(guò)程:
1.初始化父類中的靜態(tài)成員變量和靜態(tài)代碼塊 ;
2.初始化子類中的靜態(tài)成員變量和靜態(tài)代碼塊 ;
3.初始化父類的普通成員變量和代碼塊,再執(zhí)行父類的構(gòu)造方法;
4.初始化子類的普通成員變量和代碼塊,再執(zhí)行子類的構(gòu)造方法
2、下面有關(guān)java實(shí)例變量,局部變量,類變量和final變量的說(shuō)法,錯(cuò)誤的是?
正確答案: B
實(shí)例變量指的是類中定義的變量,即成員變量,如果沒(méi)有初始化,會(huì)有默認(rèn)值。
局部變量指的是在方法中定義的變量,如果沒(méi)有初始化,會(huì)有默認(rèn)值
類變量指的是用static修飾的屬性
final變量指的是用final 修飾的變量
題解:
局部變量必須有初始值
3、執(zhí)行如下代碼段后,變量s1引用的字符串值是( )。
String s1 = “ABCD”;
String s2 = “1234”;
System.out.println(s1 + s2);
正確答案: A
ABCD
1234
ABCD1234
1234ABCD
題解:
變量s1引用的字符串值是
這題出的牛,有誰(shuí)跟我一樣看見(jiàn)輸出就覺(jué)得選C
其實(shí)題問(wèn)的就是s1,牛這題
4、類A1和類A2在同一包中,類A2有個(gè)protected的方法testA2,類A1不是類A2的子類(或子類的子類),類A1可以訪問(wèn)類A2的方法testA2。( )
正確答案: A
正確
錯(cuò)誤
題解:
public:可以被所有其他類所訪問(wèn)
private:只能被自己訪問(wèn)和修改
protected:自身、子類及同一個(gè)包中類可以訪問(wèn)
default:同一包中的類可以訪問(wèn),聲明時(shí)沒(méi)有加修飾符,認(rèn)為是friendly。
5、在一個(gè)基于分布式的游戲服務(wù)器系統(tǒng)中,不同的服務(wù)器之間,哪種通信方式是不可行的()?
正確答案: A
管道
消息隊(duì)列
高速緩存數(shù)據(jù)庫(kù)
套接字
題解:
管道( pipe ):管道是一種半雙工的通信方式,數(shù)據(jù)只能單向流動(dòng),而且只能在具有親緣關(guān)系的進(jìn)程間使用。進(jìn)程的親緣關(guān)系通常是指父子進(jìn)程關(guān)系。
既然是不同的服務(wù)器之間進(jìn)行通信,怎么可能會(huì)是具有親緣關(guān)系的進(jìn)程呢?
6、下面有個(gè)hibernate延遲加載,說(shuō)法錯(cuò)誤的是?
正確答案: C
Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對(duì)象 b)集合(Collection)
Hibernate3 提供了屬性的延遲加載功能
get支持延遲加載,load不支持延遲加
hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性
題解:
get()采用立即加載方式,而load()采用延遲加載
7、下面關(guān)于Spring的說(shuō)法中錯(cuò)誤的是()
正確答案: D
Spring是一系列輕量級(jí)Java EE框架的集合
Spring中包含一個(gè)“依賴注入”模式的實(shí)現(xiàn)
使用Spring可以實(shí)現(xiàn)聲明式事務(wù)
Spring提供了AOP方式的日志系統(tǒng)
題解:
Spring并沒(méi)有為我們提供日志系統(tǒng),我們需要使用AOP(面向方面編程)的方式,借助Spring與日志系統(tǒng)log4j實(shí)現(xiàn)我們自己的日志系統(tǒng)。
8、servlet周期包含哪些:
正確答案: A B C
初始化
銷毀
請(qǐng)求處理
開(kāi)始
題解:
Servlet生命周期分成3個(gè)階段:
1)初始化階段:調(diào)用init方法
2)響應(yīng)客戶請(qǐng)求:調(diào)用service
3)終止:調(diào)用destory方法
初始化階段:在下列時(shí)刻servlet容器裝載servlet
1 servlet容器啟動(dòng)時(shí),自動(dòng)裝載某些servlet
2 在servlet容器啟動(dòng)后,客戶首次向servlet發(fā)送請(qǐng)求
3 servlet類文件被更新之后,重新裝載servlet
Servlet被裝載之后,servlet容器創(chuàng)建一個(gè)servlet'對(duì)象并調(diào)用servlet的init方法,在servlet生命周期內(nèi),init方法只能被調(diào)用一次。servlet工作原理:客戶端發(fā)起一個(gè)請(qǐng)求,servlet調(diào)用service方法時(shí)請(qǐng)求進(jìn)行響應(yīng),service對(duì)請(qǐng)求的方式進(jìn)行了匹配,選擇調(diào)用dopost或者doget等這些方法,然后進(jìn)入對(duì)應(yīng)方法中調(diào)用邏輯層的方法,實(shí)現(xiàn)對(duì)客戶的響應(yīng)。
響應(yīng)客戶請(qǐng)求:對(duì)于用戶到達(dá)servlet的請(qǐng)求,servlet容器會(huì)創(chuàng)建特定于該請(qǐng)求的servletrequest和servletresponse對(duì)象,然后調(diào)用servlet的service方法,service方法從servletrequest對(duì)象中獲取客戶請(qǐng)求的信息,處理該請(qǐng)求,并且通過(guò)servletresponse對(duì)象向客戶端返回響應(yīng)信息。
終止:當(dāng)web應(yīng)用終止或者servlet容器終止或servlet容器重新裝載servlet新實(shí)例時(shí),servlet容器會(huì)調(diào)用servlet對(duì)象的destory方法,在destory方法中可以釋放servlet占用的資源
9、已知如下的命令執(zhí)行 java MyTest a b c 請(qǐng)問(wèn)哪個(gè)語(yǔ)句是正確的? ( )
正確答案: C D
args[0] = “MyTest a b c”
args[0] = “MyTest”
args[0] = “a”
args[1]= "b"
題解:
題目這樣理解:java命令執(zhí)行MyTest類下的main函數(shù),命令行輸入java MyTest a b c,請(qǐng)問(wèn)入?yún)⒅袑?duì)應(yīng)的args為如下哪種?
main函數(shù)格式如下:public static void main(String[] args),入?yún)⒅杏幸粋€(gè)String[] args,這是一個(gè)字符串?dāng)?shù)組,它早期是為了接收鍵盤(pán)錄入的數(shù)據(jù)的,而現(xiàn)在被Scanner(JDK 1.5以后才出現(xiàn))所替代,通過(guò)String[] args錄入數(shù)據(jù)的格式是 java 類名(main方法所在類的類名) 字符串1 字符串2 字符串3 …。對(duì)應(yīng)本題,args[0]=a args[1]=b args[2]=c
10、關(guān)于java集合下列說(shuō)法不正確的有哪些()
正確答案: A B D
HashSet 它是線程安全的,不允許存儲(chǔ)相同的對(duì)象
ConcurrentHashMap 它是線程安全的,其中存儲(chǔ)的鍵對(duì)象可以重復(fù),值對(duì)象不能重復(fù)
Collection接口是List接口和Set接口的父接口,通常情況下不被直接使用
ArrayList線程安全的,允許存放重復(fù)對(duì)象
題解:
A: HashSet 它不是線程安全的,屬于Set接口下的實(shí)現(xiàn)類,Set下的實(shí)現(xiàn)類特征就是無(wú)序,不允許存儲(chǔ)相同的對(duì)象
B: ConcurrentHashMap 它是線程安全的HashMap實(shí)現(xiàn),特征也相似,其中存儲(chǔ)的值對(duì)象可以重復(fù),鍵對(duì)象不能重復(fù)
C: Collection接口是List接口和Set接口的父接口,通常情況下不被直接使用
D: ArrayList線程不安全的,底層是數(shù)組實(shí)現(xiàn),允許存放重復(fù)對(duì)象
答案匯總:
1、正確答案: B
2、正確答案: B
3、正確答案: A
4、正確答案: A
5、正確答案: A
6、正確答案: C
7、正確答案: D
8、正確答案: A B C
9、正確答案: C D
10、正確答案: A B D
相關(guān)文章
Spring?Boot與Spring?MVC?Spring對(duì)比及核心概念
這篇文章主要為大家介紹了Spring?Boot與Spring?MVC?Spring的對(duì)比以及你需要了解的核心概念,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
Springboot配置管理Externalized?Configuration深入探究
這篇文章主要介紹了Springboot配置管Externalized?Configuration深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
springboot + vue 實(shí)現(xiàn)遞歸生成多級(jí)菜單(實(shí)例代碼)
這篇文章主要介紹了springboot + vue 實(shí)現(xiàn)遞歸生成多級(jí)菜單,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Java 向上轉(zhuǎn)型和向下轉(zhuǎn)型的詳解
這篇文章主要介紹了 Java 向上轉(zhuǎn)型和向下轉(zhuǎn)型的詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
SpringCloud實(shí)戰(zhàn)之Feign聲明式服務(wù)調(diào)用
這篇文章主要介紹了SpringCloud實(shí)戰(zhàn)之Feign聲明式服務(wù)調(diào)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05



