長虹筆試真題及答案解析

思而思學(xué)網(wǎng)

1、兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?

不對,有相同的hash code。

2、當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?

是值傳遞。java 編程語言只由值傳遞參數(shù)。當(dāng)一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠不會改變的。

3、swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?

switch(expr1)中,expr1是一個整數(shù)表達式。因此傳遞給 switch 和 case 語句的參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

4、寫一個singleton出來。

singleton模式主要作用是保證在java應(yīng)用程序中,一個類class只有一個實例存在。

一般singleton模式通常有幾種種形式:

第一種形式:定義一個類,它的構(gòu)造函數(shù)為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getinstance方法獲取對它的引用,繼而調(diào)用其中的方法。

public class singleton {private singleton(){}private static singleton instance = new singleton();public static singleton getinstance() {return instance;}}

第二種形式:

public class singleton {private static singleton instance = null;public static synchronized singleton getinstance() {if (instance==null)instance=new singleton();return instance; }}

5、 hashtable和hashmap

hashtable繼承自dictionary類,而hashmap是java1.2引進的map inte[被過濾]ce的一個實現(xiàn),hashmap允許將null作為一個entry的key或者value,而hashtable不允許,還有就是,hashmap把hashtable的contains方法去掉了,改成containsvalue和containskey。因為contains方法容易讓人引起誤解。最大的不同是,hashtable的方法是synchronize的,而hashmap不是,在多個線程訪問hashtable時,不需要自己為它的方法實現(xiàn)同步,而hashmap就必須為之提供外同步。hashtable和hashmap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

熱門推薦

最新文章