Java日常練習題,每天進步一點點(39)
承蒙各位厚愛,我們一起每天進步一點點?。ㄊ髽诉x中空白處查看答案)
1.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數(shù)個數(shù)、類型或順序各不相同,傳回的值也可以不相同。
這種面向對象程序的特性稱為
正確答案: C
隱藏
覆蓋
重載
Java不支持此特性
2.ArrayList和Vector主要區(qū)別是什么?
正確答案: A
Vector與ArrayList一樣,也是通過數(shù)組實現(xiàn)的,不同的是Vector支持線程的同步
Vector與ArrayList一樣,也是通過數(shù)組實現(xiàn)的,不同的是ArrayList支持線程的同步
Vector是通過鏈表結構存儲數(shù)據(jù),ArrayList是通過數(shù)組存儲數(shù)據(jù)
上述說法都不正確
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') 自增,這個循環(huán)把自增寫到方法體中了,這個位置用 foo(‘C') 代替了
總之:執(zhí)行順序就是 先執(zhí)行1,只會執(zhí)行一次,然后是 2 ,然后是3 然后是4 然后繼續(xù)2-> 3->4,循環(huán)執(zhí)行,直到2不符合條件。
4.下面哪種情況會導致持久區(qū)jvm堆內(nèi)存溢出?
正確答案: C
循環(huán)上萬次的字符串處理
在一段代碼內(nèi)申請上百M甚至上G的內(nèi)存
使用CGLib技術直接操作字節(jié)碼運行,生成大量的動態(tài)類
不斷創(chuàng)建對象
5.如果希望監(jiān)聽TCP端口9000,服務器端應該怎樣創(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)建一個serversocket 綁定在特定的端口
Socket(InetAddress address, int port)
創(chuàng)建一個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)語句塊中x為局部變量,不影響靜態(tài)變量x的值
2.x和y為靜態(tài)變量,默認初始值為0,屬于當前類,其值得改變會影響整個類運行。
3.java中自增操作非原子性的
main方法中:
執(zhí)行x–后 x=-1
調(diào)用myMethod方法,x執(zhí)行x++結果為-1(后++),但x=0,++x結果1,x=1 ,則y=0
x+y+ ++x,先執(zhí)行x+y,結果為1,執(zhí)行++x結果為2,得到最終結果為3
7.下列代碼輸出結果為( )
class Animal{
public void move(){
System.out.println(“動物可以移動”);
}
}
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:動物可以移動
狗可以跑和走
狗可以吠叫
B:動物可以移動
動物可以移動
狗可以吠叫
C:運行錯誤
D:編譯錯誤
題解:
父類中沒有bark方法,b.move會調(diào)用子類的move因為父類也有move,子類可以覆蓋掉,但是父類沒有bark,不存在覆蓋的情況,所有編譯錯誤。
8.下列描述錯誤的是?
正確答案: B D
類只能繼承一個父類,但是可以實現(xiàn)多個接口
抽象類自身可以定義成員而接口不可以
抽象類和接口都不能被實例化(忽略匿名內(nèi)部類)
一個類可以有多個父類和多個基接口
9.下面關于面向對象的一些理解哪些是錯誤的( )
正確答案: C
A:面向對象的最重要的特性是支持繼承、封裝和多態(tài)
B:系統(tǒng)設計應該遵循開閉原則,系統(tǒng)應該穩(wěn)定不不可修改,但應支持通過繼承、組合等方式進行擴展
C:函數(shù)式的語言必然是面向對象的語言
D:面向對象設計時,每個類的職責應該單一,不要再一個類中引入過多的接口
E:過程式語言和面向對象的語言各有其優(yōu)勢,過程式語言更加靈活,面向對象語言更加強調(diào)抽象和封裝
F:Java和C++都是靜態(tài)類型的面向對象編程語言
10.關于Java中的數(shù)組,下面的一些描述,哪些描述是準確的:( )
正確答案: A C F
數(shù)組是一個對象,不同類型的數(shù)組具有不同的類
數(shù)組長度是可以動態(tài)調(diào)整的
數(shù)組是一個連續(xù)的存儲結構
一個固定長度的數(shù)組可類似這樣定義: int array[100]
兩個數(shù)組用equals方法比較時,會逐個便利其中的元素,對每個元素進行比較
可以二維數(shù)組,且可以有多維數(shù)組,都是在Java中合法的
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
jvm中指定時區(qū)信息user.timezone問題及解決方式
同一份程序使用時間LocalDateTime類型,在國內(nèi)和國外部署后,返回的時間信息前端使用出問題,這篇文章主要介紹了jvm中指定時區(qū)信息user.timezone問題及解決方法,需要的朋友可以參考下2023-02-02Springboot+SpringSecurity實現(xiàn)圖片驗證碼登錄的示例
本文主要介紹了Springboot+SpringSecurity實現(xiàn)圖片驗證碼登錄的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04通過Spring Boot + Mybatis + Redis快速搭建現(xiàn)代化Web項目
本篇文章介紹了如何通過Spring Boot、Mybatis以及Redis快速搭建一個現(xiàn)代化的Web項目,并且同時介紹了如何在Spring Boot下優(yōu)雅地書寫單元測試來保證我們的代碼質(zhì)量。具體內(nèi)容詳情大家通過本文學習下吧2017-12-12使用SpringMVC的@Validated注解驗證的實現(xiàn)
這篇文章主要介紹了使用SpringMVC的@Validated注解驗證的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08