Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(39)
承蒙各位厚愛(ài),我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1.在Java中,一個(gè)類(lèi)可同時(shí)定義許多同名的方法,這些方法的形式參數(shù)個(gè)數(shù)、類(lèi)型或順序各不相同,傳回的值也可以不相同。
這種面向?qū)ο蟪绦虻奶匦苑Q(chēng)為
正確答案: C
隱藏
覆蓋
重載
Java不支持此特性
2.ArrayList和Vector主要區(qū)別是什么?
正確答案: A
Vector與ArrayList一樣,也是通過(guò)數(shù)組實(shí)現(xiàn)的,不同的是Vector支持線程的同步
Vector與ArrayList一樣,也是通過(guò)數(shù)組實(shí)現(xiàn)的,不同的是ArrayList支持線程的同步
Vector是通過(guò)鏈表結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),ArrayList是通過(guò)數(shù)組存儲(chǔ)數(shù)據(jù)
上述說(shuō)法都不正確
3.public class Test
{
static boolean foo(char c)
{
System.out.print©;
return true;
}
public static void main( String[] argv )
{
int i = 0;
for ( foo(‘A'); foo(‘B') && (i < 2); foo(‘C'))
{
i++ ;
foo(‘D');
}
}
}
What is the result?
正確答案: A
ABDCBDCB
ABCDABCD
Compilation fails.
An exception is thrown at runtime.
題解:
在循環(huán)中可分為四部分
1:foo(‘A') 初始條件
2: foo(‘B') && (i < 2) 判斷條件
3: i++ ; foo(‘D'); 方法體
4: foo(‘C') 自增,這個(gè)循環(huán)把自增寫(xiě)到方法體中了,這個(gè)位置用 foo(‘C') 代替了
總之:執(zhí)行順序就是 先執(zhí)行1,只會(huì)執(zhí)行一次,然后是 2 ,然后是3 然后是4 然后繼續(xù)2-> 3->4,循環(huán)執(zhí)行,直到2不符合條件。
4.下面哪種情況會(huì)導(dǎo)致持久區(qū)jvm堆內(nèi)存溢出?
正確答案: C
循環(huán)上萬(wàn)次的字符串處理
在一段代碼內(nèi)申請(qǐng)上百M(fèi)甚至上G的內(nèi)存
使用CGLib技術(shù)直接操作字節(jié)碼運(yùn)行,生成大量的動(dòng)態(tài)類(lèi)
不斷創(chuàng)建對(duì)象
5.如果希望監(jiān)聽(tīng)TCP端口9000,服務(wù)器端應(yīng)該怎樣創(chuàng)建socket?
正確答案: B
new Socket(“l(fā)ocalhost”,9000);
new ServerSocket(9000);
new Socket(9000);
new ServerSocket(“l(fā)ocalhost”,9000);
題解:
ServerSocket (int port)
創(chuàng)建一個(gè)serversocket 綁定在特定的端口
Socket(InetAddress address, int port)
創(chuàng)建一個(gè)socket流,連接到特定的端口和ip地址
6.What will happen when you attempt to compile and run the following code?
public class Test{
static{
int x=5;
}
static int x,y;
public static void main(String args[]){
x–;
myMethod( );
System.out.println(x+y+ ++x);
}
public static void myMethod( ){
y=x++ + ++x;
}
}
正確答案: D
compiletime error
prints:1
prints:2
prints:3
prints:7
prints:8
題解:
1.靜態(tài)語(yǔ)句塊中x為局部變量,不影響靜態(tài)變量x的值
2.x和y為靜態(tài)變量,默認(rèn)初始值為0,屬于當(dāng)前類(lèi),其值得改變會(huì)影響整個(gè)類(lèi)運(yùn)行。
3.java中自增操作非原子性的
main方法中:
執(zhí)行x–后 x=-1
調(diào)用myMethod方法,x執(zhí)行x++結(jié)果為-1(后++),但x=0,++x結(jié)果1,x=1 ,則y=0
x+y+ ++x,先執(zhí)行x+y,結(jié)果為1,執(zhí)行++x結(jié)果為2,得到最終結(jié)果為3
7.下列代碼輸出結(jié)果為( )
class Animal{
public void move(){
System.out.println(“動(dòng)物可以移動(dòng)”);
}
}
class Dog extends Animal{
public void move(){
System.out.println(“狗可以跑和走”);
}
public void bark(){
System.out.println(“狗可以吠叫”);
}
}
public class TestDog{
public static void main(String args[]){
Animal a = new Animal();
Animal b = new Dog();
a.move();
b.move();
b.bark();
}
}
正確答案: D
A:動(dòng)物可以移動(dòng)
狗可以跑和走
狗可以吠叫
B:動(dòng)物可以移動(dòng)
動(dòng)物可以移動(dòng)
狗可以吠叫
C:運(yùn)行錯(cuò)誤
D:編譯錯(cuò)誤
題解:
父類(lèi)中沒(méi)有bark方法,b.move會(huì)調(diào)用子類(lèi)的move因?yàn)楦割?lèi)也有move,子類(lèi)可以覆蓋掉,但是父類(lèi)沒(méi)有bark,不存在覆蓋的情況,所有編譯錯(cuò)誤。
8.下列描述錯(cuò)誤的是?
正確答案: B D
類(lèi)只能繼承一個(gè)父類(lèi),但是可以實(shí)現(xiàn)多個(gè)接口
抽象類(lèi)自身可以定義成員而接口不可以
抽象類(lèi)和接口都不能被實(shí)例化(忽略匿名內(nèi)部類(lèi))
一個(gè)類(lèi)可以有多個(gè)父類(lèi)和多個(gè)基接口
9.下面關(guān)于面向?qū)ο蟮囊恍├斫饽男┦清e(cuò)誤的( )
正確答案: C
A:面向?qū)ο蟮淖钪匾奶匦允侵С掷^承、封裝和多態(tài)
B:系統(tǒng)設(shè)計(jì)應(yīng)該遵循開(kāi)閉原則,系統(tǒng)應(yīng)該穩(wěn)定不不可修改,但應(yīng)支持通過(guò)繼承、組合等方式進(jìn)行擴(kuò)展
C:函數(shù)式的語(yǔ)言必然是面向?qū)ο蟮恼Z(yǔ)言
D:面向?qū)ο笤O(shè)計(jì)時(shí),每個(gè)類(lèi)的職責(zé)應(yīng)該單一,不要再一個(gè)類(lèi)中引入過(guò)多的接口
E:過(guò)程式語(yǔ)言和面向?qū)ο蟮恼Z(yǔ)言各有其優(yōu)勢(shì),過(guò)程式語(yǔ)言更加靈活,面向?qū)ο笳Z(yǔ)言更加強(qiáng)調(diào)抽象和封裝
F:Java和C++都是靜態(tài)類(lèi)型的面向?qū)ο缶幊陶Z(yǔ)言
10.關(guān)于Java中的數(shù)組,下面的一些描述,哪些描述是準(zhǔn)確的:( )
正確答案: A C F
數(shù)組是一個(gè)對(duì)象,不同類(lèi)型的數(shù)組具有不同的類(lèi)
數(shù)組長(zhǎng)度是可以動(dòng)態(tài)調(diào)整的
數(shù)組是一個(gè)連續(xù)的存儲(chǔ)結(jié)構(gòu)
一個(gè)固定長(zhǎng)度的數(shù)組可類(lèi)似這樣定義: int array[100]
兩個(gè)數(shù)組用equals方法比較時(shí),會(huì)逐個(gè)便利其中的元素,對(duì)每個(gè)元素進(jìn)行比較
可以二維數(shù)組,且可以有多維數(shù)組,都是在Java中合法的
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
mybatis同一張表多次連接查詢(xún)相同列賦值問(wèn)題小結(jié)
這篇文章主要介紹了mybatis同一張表多次連接查詢(xún)相同列賦值問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-01-01
使用Java操作MySQL實(shí)現(xiàn)數(shù)據(jù)交互的方法
JDBC是Java中用于操作數(shù)據(jù)庫(kù)的API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它通過(guò)JDK自帶的JDBC API和數(shù)據(jù)庫(kù)驅(qū)動(dòng)包進(jìn)行操作,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查,本文給大家介紹使用Java操作MySQL實(shí)現(xiàn)數(shù)據(jù)交互的方法,感興趣的朋友跟隨小編一起看看吧2025-01-01
Java 8 Function函數(shù)式接口及函數(shù)式接口實(shí)例
函數(shù)式接口(Functional Interface)就是一個(gè)有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口。接下來(lái)通過(guò)本文給大家介紹Java 8 Function函數(shù)式接口及函數(shù)式接口實(shí)例代碼,需要的朋友可以參考下2018-05-05
如何基于java隨機(jī)獲取不重復(fù)數(shù)值
這篇文章主要介紹了如何基于java隨機(jī)獲取不重復(fù)數(shù)值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java使用Maven BOM統(tǒng)一管理版本號(hào)的實(shí)現(xiàn)
這篇文章主要介紹了Java使用Maven BOM統(tǒng)一管理版本號(hào)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Java聊天室之實(shí)現(xiàn)客戶(hù)端群聊功能
這篇文章主要為大家詳細(xì)介紹了Java簡(jiǎn)易聊天室之實(shí)現(xiàn)客戶(hù)端群聊功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下2022-10-10
IntelliJ IDEA : .java文件左下角顯示"J"圖標(biāo)的問(wèn)題
IntelliJ IDEA : .java文件 左下角顯示“J”,并且不能執(zhí)行代碼,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-10-10
詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫(xiě)法
這篇文章主要介紹了詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫(xiě)法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

