天天看點

Java程式員經典面試題集大全(十六)

76、接口可否繼承接口?抽象類是否可實作接口?抽象類是否可繼承實體類?

接口可以繼承接口,抽象類可以實作接口,抽象類可以繼承實體類。

77、int與Integer有什麼差別?

int是java提供的8種原始資料類型之一。Java為每個原始類型提供了封裝類,Integer是java為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中還定義了表示整數的最大值和最小值的常量。

78、可序列化對象為什麼要定義serialversionUID值?

SerialVersionUid,簡言之,其目的是序列化對象版本控制,有關各版本反序列化時是否相容。如果在新版本中這個值修改了,新版本就不相容舊版本,反序列化時會抛出InvalidClassException異常。如果修改較小,比如僅僅是增加了一個屬性,我們希望向下相容,老版本的資料都能保留,那就不用修改;如果我們删除了一個屬性,或者更改了類的繼承關系,必然不相容舊資料,這時就應該手動更新版本号,即SerialVersionUid。

79、寫一個Java正則,能過濾出html中的< a href=”url”>title< /a>形式中的連結位址和标題.

< a\b[^>]+\bhref="([^" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" ]*)"[^>]*>([\s\S]*?)< /a>

< a\b[^>]+\bhref="([^" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" ]*)"[^>]*>([\s\S]*?)< /a>

80、十進制數72轉換成八進制數是多少?

答: 110

Java零基礎全套教程(含面試題)