赊了两串冰糖葫芦才写出来的小结
一、選擇題
1.A 派生出子類 B , B 派生出子類 C ,并且在 java 源代碼有如下聲明:
問以下哪個說法是正確的?()
A 只有第一行能通過編譯
B 第1、2行能通過編譯,但第3行編譯出錯
C 第1、2、3行能通過編譯,但第2、3行運(yùn)行時出錯
D 第1行,第2行和第3行的聲明都是正確的
正確答案 : D
解析 : ① 繼承的傳遞性 , B繼承于A,C繼承于B,所以A為B和C共同的父類 ; ② 父類引用指向子類對象 , 子類可以自然地完成向上(到父類的)轉(zhuǎn)型
2.下面代碼將輸出什么內(nèi)容:()
public class SystemUtil{public static boolean isAdmin(String userId){return userId.toLowerCase()=="admin";}public static void main(String[] args){System.out.println(isAdmin("Admin"));} }正確答案 : false
解析 : 在源碼中 toLowerCase 是重新 new String() , "=="是比較身份而非比較值, 所以這兩個對象的地址是不相同的.
3.閱讀如下代碼。 請問,對語句行 test.hello(). 描述正確的有()
package NowCoder; class Test {public static void hello() {System.out.println("hello");} } public class MyApplication {public static void main(String[] args) {// TODO Auto-generated method stubTest test=null;test.hello();} }正確答案 : 能編譯通過,并正確運(yùn)行
解析 : 靜態(tài)方法不依附于對象,這里是直接調(diào)用靜態(tài)方法,類的靜態(tài)成員不依賴實(shí)例對象,靜態(tài)成員在類編譯的時候就已經(jīng)被創(chuàng)建好了,無論是是使用類名,還是使用實(shí)例對象都是可以訪問的
4.在使用super和this關(guān)鍵字時,以下描述正確的是()
A 在子類構(gòu)造方法中使用super()顯示調(diào)用父類的構(gòu)造方法,super()必須寫在子類構(gòu)造方法的第一行,否則編譯不通過
B super()和this()不一定要放在構(gòu)造方法內(nèi)第一行
C this()和super()可以同時出現(xiàn)在一個構(gòu)造函數(shù)中
D this()和super()可以在static環(huán)境中使用,包括static方法和static語句塊
正確答案 : A
解析 : ① super()調(diào)用父類中的某一個構(gòu)造函數(shù),this()是調(diào)用本類中另一種形成的構(gòu)造函數(shù) ② this()和super()都必須出現(xiàn)在構(gòu)造器的第一行,所以兩者不可能出現(xiàn)在同一個構(gòu)造器中 ③ this和super都不能出現(xiàn)了靜態(tài)方法、靜態(tài)塊中
5.如下代碼的 結(jié)果是什么 ?
class Base {Base() {System.out.print("Base");} } public class Alpha extends Base {public static void main( String[] args ) {new Alpha();//調(diào)用父類無參的構(gòu)造方法new Base();} }正確答案 : BaseBase
解析 : 在執(zhí)行new Alpha()時,因?yàn)锳lpha繼承了Base , 在執(zhí)行Alpha類的構(gòu)造方法前 , 會先執(zhí)行父類的構(gòu)造方法,再執(zhí)行相應(yīng)的子類的構(gòu)造方法,所以此處會打印Base,在執(zhí)行new Base()時,會直接執(zhí)行Base中無參構(gòu)造器的代碼,再輸出Base
6.如下代碼的輸出結(jié)果是什么?
public class Test {public int aMethod(){static int i = 0;i++;return i;}public static void main(String args[]){Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);} }正確答案 : 編譯失敗
(來源???大佬解析 : 靜態(tài)變量是先于類的其他而加載的,所以static代碼塊只能是類成員變量,而不能是局部變量,因?yàn)樵趕tatic加載時,方法還沒有分配空間
7.下列哪一種敘述是正確的()
A abstract修飾符可修飾字段、方法和類
B 抽象方法的body部分必須用一對大括號{ }包住
C 聲明抽象方法,大括號可有可無
D 聲明抽象方法不可寫出大括號
正確答案 : D
解析 : abstract只可修飾方法和類 , 不可以修飾字段(類成員變量);抽象方法是沒有被實(shí)現(xiàn)的方法,沒有body部分,也沒有花括號,聲明后面直接就是分號
8.下列說法正確的有:()
A class中的constructor不可省略
B constructor必須與class同名,但方法不能與class同名
C constructor在一個對象被new 時執(zhí)行
D 一個class只能定義一個constructor
正確答案 : C
解析 : . 類中的構(gòu)造方法可以省略不寫的 , 構(gòu)造方法必須跟類名相同,普通的類方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)分就是,構(gòu)造方法沒有返回值 , 構(gòu)造方法都在new 對象的時候調(diào)用的 , 一個類可以定義多個構(gòu)造方法的
9.選項(xiàng)中哪一行代碼可以替換 //add code here 而不產(chǎn)生編譯錯誤
public abstract class MyClass {public int constInt = 5;//add code herepublic void method() {} }A public abstract void method(int a);
B consInt=constInt+5;
C public int method();
D public abstract void anotherMethod(){}
正確答案 : A
解析 : ① 抽象類可以包含抽象方法 , 用abstract修飾,是抽象方法,不能帶方法體(帶有{}的就是方法體,即使里面是空的) ② 類中定義成員和方法,不能直接進(jìn)行運(yùn)算,可以寫在代碼塊{}或者靜態(tài)代碼塊中static{}中 ③ 方法重載需要滿足 , 在同一個類中 , 方法的名稱相同 , 參數(shù)列表不同(參數(shù)的類型,個數(shù),順序) , 與訪問修飾符和返回值類型無關(guān)
(未學(xué))10.java 中哪個關(guān)鍵字可以對對象加互斥鎖?
A transient
B synchronized
C serialize
D static
正確答案 : B
解析 :① transient是反序列化修飾符,序列化的時候,類中的屬性都會被復(fù)制,但是被transient和static修飾的屬性不會被復(fù)制 ② synchronized是同步鎖,被synchronized修飾的方法或者代碼塊,同一時刻只允許被一個線程訪問 ③ serialize是序列化 ④ static是靜態(tài)修飾符。可修飾成員變量和方法,內(nèi)部類/接口,不可修飾局部變量和外部類/接口。
二、編程題
1.標(biāo)題:汽水瓶 | 時間限制:1秒 | 內(nèi)存限制:32768K
有這樣一道智力題:“某商店規(guī)定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以后4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然后你讓老板先借給你一瓶汽水,喝掉這瓶滿的,喝完以后用3個空瓶子換一瓶滿的還給老板。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝?
輸入描述:
輸入文件最多包含10組測試數(shù)據(jù),每個數(shù)據(jù)占一行,僅包含一個正整數(shù)n(1<=n<=100),表示小張手上的空汽水瓶數(shù)。n=0表示輸入結(jié)束,你的程序不應(yīng)當(dāng)處理這一行。
輸出描述:
對于每組測試數(shù)據(jù),輸出一行,表示最多可以喝的汽水瓶數(shù)。如果一瓶也喝不到,輸出0。
示例1:
輸入
3
10
81
0
輸出
1
5
40
2.標(biāo)題:數(shù)組中的逆序?qū)?| 時間限制:3秒 | 內(nèi)存限制:32768K | 語言限制:[Python, C++, C#, Java]
有一組數(shù),對于其中任意兩個數(shù)組,若前面一個大于后面一個數(shù)字,則這兩個數(shù)字組成一個逆序?qū)?。請?jiān)O(shè)計(jì)一個高效的算法,計(jì)算給定數(shù)組中的逆序?qū)€數(shù)。給定一個int數(shù)組A和它的大小n,請返回A中的逆序?qū)€數(shù)。保證n小于等于5000。
測試樣例:
[1,2,3,4,5,6,7,0],8
返回:7
最后一個編程題就是基于選擇排序的理念進(jìn)行改變了一下~
總結(jié)
以上是生活随笔為你收集整理的赊了两串冰糖葫芦才写出来的小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 六安构建智慧城市节水管理平台
- 下一篇: python之路金角大王_python