十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
一、基本數(shù)據(jù)類型和封裝類有什么區(qū)別
(更多面試題推薦:java面試題)
原始類型是類,引用類型是對象。
原始類型大小比較用"==",引用類型大小比較用"equals"。
引用類型可以被序列化,原始類型不行。
在集合類中只能使用引用類型,不能使用原始類型。
基本數(shù)據(jù)類型不用new,封裝類需要new。
基本數(shù)據(jù)參數(shù)傳遞是以值傳遞,封裝類型是以地址傳遞的。
二、String、StringBuffer、StringBuilder三者之間的區(qū)別
String是字符串常量,StringBuffer、StringBuilder是字符串變量。
String創(chuàng)建的字符內(nèi)容不可變(String底層char數(shù)組是final的),StringBuffer、StringBuilder的字符內(nèi)容是可加長的。
StringBuffer是線程安全的,StringBuilder線程不安全的,但是速度快(因?yàn)樗粫榫€程安全消耗性能)。
三、String為什么不可變?
雖然String、StringBuffer和StringBuilder都是final類,它們生成的對象都是不可變的,而且它們內(nèi)部也都是靠char數(shù)組實(shí)現(xiàn)的。
但是不同之處在于,String類中定義的char數(shù)組是final的,而StringBuffer和StringBuilder都是繼承自AbstractStringBuilder類,它們的內(nèi)部實(shí)現(xiàn)都是靠這個(gè)父類完成的,而這個(gè)父類中定義的char數(shù)組只是一個(gè)普通是私有變量,可以用append追加。
(相關(guān)教程推薦:java入門教程)
因?yàn)锳bstractStringBuilder實(shí)現(xiàn)了Appendable接口。
四、運(yùn)行時(shí)異常和非運(yùn)行時(shí)異常的區(qū)別
運(yùn)行時(shí)異常是運(yùn)行時(shí)報(bào)錯(cuò):比如ClassCastException(類轉(zhuǎn)換異常)、IndexOutOfBoundsException(數(shù)組越界)、NullPointerException(空指針)、ArrayStoreException(數(shù)據(jù)存儲異常,操作數(shù)組時(shí)類型不一致)、IO操作的BufferOverflowException異常。
(視頻教程推薦:java視頻教程)
非運(yùn)行時(shí)異常是還未運(yùn)行可見的錯(cuò)誤,可以用try、catch捕獲異常。
五、簡述一下面向?qū)ο蟮奶卣鳎⑴e例說明你對面向?qū)ο蟮睦斫?/p>
面向?qū)ο蟮奶卣鳉w結(jié)為封裝繼承多態(tài),把現(xiàn)實(shí)世界的事物的屬性、行為特征抽象出來放到一個(gè)容器里(類),比如人類,人的走、聽、吃、說等動作可以歸結(jié)為類里的方法,但又是人類的共同點(diǎn),人有身高、體重歸結(jié)為類里的屬性。
封裝:就是設(shè)計(jì)者把不愿意透露給使用者的那部分代碼就是封裝過的,通過修飾詞private(權(quán)限最小)、public(權(quán)限)、protected、default(屬性前默認(rèn)為該類型),這些才能起到限制類對象權(quán)限的作用。
繼承:子類繼承父類的過程,繼承者可以擁有父類全部方法屬性。好處是提高代碼復(fù)用性,子類只需要寫特有的功能或者字段可以把公共的代碼抽出到父類里面。
多態(tài):通過父類統(tǒng)一子類方法屬性,然后通過調(diào)用,可以任意使用子類方法,優(yōu)化代碼量,原理是子類對父類方法進(jìn)行重寫。
網(wǎng)站題目:多年開發(fā)經(jīng)驗(yàn)總結(jié)的Java面試題——(一)
標(biāo)題路徑:http://m.jiaotiyi.com/article/cjsiop.html