Java筆試面試題目(二)

來源:互聯網
上載者:User

標籤:el運算式   hibernate   書籍   題目   組件   作用   就是   運行   ted   

每日一句:人生充滿著期待,夢想串連著未來!

java應屆生或自學初學者筆試面試題目總結,希望對大家有協助,題目來自自己學習總結和老師講解,網路資源,書籍資料。敲出來大家看,每次更新10+道題目,希望大家能找到一份好工作。

第一部分:基礎部分

基礎部分的包括:基本文法,類似相關的文法,內部類、繼承、異常、線程、集合、IO、虛擬機器、其他。

11. “==”和equals方法有什麼區別
==操作符專門用來比較兩個變數的值是否相等,也就是用於比較變數所對應的記憶體中所儲存的數值是否相同,要比較兩個基本類型的資料或兩個引用變數是否相等,只能用==操作符。

如果一個變數指向的資料是物件類型的,那麼,這個時候涉及了兩塊記憶體,對象本身佔用一塊記憶體(堆記憶體),變數也佔用一塊記憶體,例如Object obj = new Object();變數obj是一塊記憶體,new Object()是另一塊記憶體,此時,變數obj所對應的記憶體中儲存的數值就是對象佔用的那塊記憶體的首地址。對於指向物件類型的變數,如果要比較兩個變數是否指向同一個對象,既要看這兩個變數所對應的記憶體中的數值是否相等,這時候就需要用==操作符進行比較。

equals方法是用來比較兩個獨立對象的內容是否相同,就好比去比較兩個人的長相是否相同,他比較的兩個對象是獨立的。例如,對於下面的代碼:

String a = new String("tumbler");String b = new String("tumbler");

兩條new語句建立了兩個對象,然後用a,b這兩個變數分別指向了其中的一個對象,這是兩個不同的對象,他們的首地址是不同的,即a和b中儲存的值是不相同的,所以運算式a==b將返回false,而這兩個對象中的內容是相同的,所以,運算式a.equals(b)將返回true。

在實際開發中,我們經常要比較傳遞進來的字串內容是否相等,例如,String input = ...; input.equals("tumbler"); 許多人稍不注意就寫成了==進行比較,這是錯誤的,字串的比較基本都是用equals方法。

如果一個類沒有定義自己的equals方法,那麼它將繼承Object類的equals方法,Object類的equals方法實現如下:

boolean equals(Object o){    return this == o;}

這說明,如果一個類沒有自己定義的equals方法,它預設的equals方法就是使用==操作符,也就是在比較兩個變數指向的對象是否是同一對象,這時候使用equals和使用==會得到相同的結果,如果比較兩個獨立的對象,則總是返回false。如果你編寫的類希望能夠比較該類建立的兩個執行個體對象的內容是否相同,那麼你必須覆蓋equals方法。

## 12. 靜態變數和執行個體變數的區別
文法定義區別:靜態變數用static關鍵字修飾,而執行個體變數則不用。

程式運行時區別:執行個體變數屬於某個對象的屬性,必須建立了執行個體對象,其中的執行個體變數才會被分配空間,才能使用這個執行個體變數。靜態變數不屬於某個對象,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用穿件任何執行個體對象,靜態變數就會被分配空間,就可以被使用。總之,執行個體變數必須建立對象後才可以通過這個對象來使用,而靜態變數則可以直接使用類名來使用。

例如:對於下面的代碼,無論建立多少個執行個體對象,永遠都只會分配了一個staticVal變數,並且每建立一個執行個體對象,這個staticVal就會+1;但是,每建立一個執行個體對象,就會分配一個instanceVal,即可能分配多個instanceVal,並且每個instanceVal的值都只自加了一次。

public class VariantTest{    public static int staticVal = 0;    public int instanceVal = 0;    public VariantTest(){        staticVal++;        instanceVal++;        System.out.println("staticVal="+staticVal+",instanceVal="+instanceVal);    }}

13. 是否可以從一個static方法內部發出對非static方法的調用?
不可以。因為非static方法是要與類對象關聯在一起使用,必須建立一個對象後,才可以在該對象上進行方法的調用,而static方法調用時不需要建立對象,可以直接調用。也就是說,當一個static方法被調用,那個非static方法是關聯到哪個對象上的?邏輯無法成立,所以答案是不可以。

14. Integer與int的區別
int是java提供的8種未經處理資料類型之一。Java為每一個原始類型提供了封裝類,Integer是int的封裝類。int的預設值是0,而Integer的預設值是null,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,想要表達出沒有參加考試和考試成績為0的區別,則只能用Integer。在JSP開發中,Integer的預設為null,所以用el運算式在文字框中顯示時,值為空白字串,而int預設值為0,所以用el運算式在文字框中顯示時,結果為0,所以,int不太適合作為web層的表單資料的類型。

在Hibernate中,如果將OID定義為Integer類型,那麼Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為int類型,還需要在hbm對應檔中設定其unsaved-value屬性值為0。

另外,Integer提供了多個與整數相關的操作方法,例如,將一個字串轉換成整數,Integer中還定義了表示整數的最大值和最小值操作。

15. Math.round(11.5)等於?Math.round(-11.5)等於?
Math 提供了三種與取整有關的方法:ceil、floor、round,這些方法的作用與他們的英文名含義相近,例如:ceil(天花板),該方法就表示向上取整,所以,Math.ceil(11.3)結果為12,Math.ceil(-11.3)的結果為-11;floor(地板),Math.floor(11.6)=11,Math.floor(-11.6)=-12;round表示四捨五入,演算法為Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整,Math.round(11.5)=12,Math.round(-11.5)=-11。

16. 下面的代碼有什麼錯誤?

1.if(username.equals("tumbler"){}2.int x = 1;  return x = 1?true:false

第一個缺少一個右括弧;第二個正確;

17. 說出範圍public、private、protected以及不寫時的區別。
範圍 當前類 同一package 子孫類 其他package

範圍 當前類 同一package 子孫類 其他package
public
protected ×
friendly × ×
private × × ×

18. Overload和Override的區別,Overload的方法是否可以改變傳回值的類型?
Overload是重載的意思,Override是重寫覆蓋的意思。

重載Overload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數列表各不相同(參數個數或參數類型不同)。

重寫Override表示子類中的方法可以與父類中的方法名稱和參數完全相同,通過子類建立的執行個體對象調用這個方法時,將調用子類中定義的方法,這相當於把父類中定義的那個完全相同的方法給覆蓋了,這也是物件導向編程的多態性的一種體現。子類覆蓋父類的方法時,只能比父類拋出更少的異常,或者是拋出父類拋出異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。子類方法的存取權限只能比父類的更大不能更小。如果父類的方法時private修飾的,那麼,子類則不能覆蓋,相當於子類中增加了一個全新的方法。

19. 一個房子裡有椅子,椅子有腿和背,房子與椅子是什麼關係,椅子與腿和背是什麼關係?
如果房子有多個椅子,就是彙總關係,否則就是一種關聯關係,當然,彙總是一種特殊的關聯。椅子與腿和背是組合關係。

20. 說說is a和has a的區別。
is a表示的是屬於的關係。比如貓屬於一種動物(繼承關係)。

has a表示組合、內含項目關聯性。比如貓包含有腿、頭等組件。

Java筆試面試題目(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.