1.JAVA語(yǔ)言的特點(diǎn)?
1.簡(jiǎn)單易學(xué)
2.面向?qū)ο螅ǚ庋b繼承多態(tài))
3.平臺(tái)無(wú)關(guān)性
4.GC垃圾回收機(jī)制
5.異常處理機(jī)制
6.支持多線(xiàn)程
7.支持方便的網(wǎng)絡(luò)編程
8.編譯和解釋并存
2.面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別?
1.面向過(guò)程的性能更高
2.面向?qū)ο笠拙S護(hù)、易復(fù)用、易拓展。使系統(tǒng)更靈活、更易于維護(hù)。
3.JAVA和C++的區(qū)別?
1.JAVA不提供指針訪(fǎng)問(wèn)內(nèi)存,程序內(nèi)存更安全。
2.JAVA類(lèi)單繼承 C++多繼承 但JAVA的接口可以多繼承
3.JAVA自帶內(nèi)存管理
4.JAVA沒(méi)有結(jié)束符
4.byte short int long float double char boolean
5.基本類(lèi)型和引用類(lèi)型的區(qū)別
1.基本類(lèi)型直接賦值 引用類(lèi)型先用new創(chuàng)建對(duì)象,然后把對(duì)象賦予對(duì)應(yīng)的值。
2.==號(hào)比較的時(shí)候,基本類(lèi)型比較的是值,引用類(lèi)型比較的是引用地址。
3.傳參時(shí),基本類(lèi)型是值傳遞,引用類(lèi)型是地址傳遞。
4.JVM中的位置,基本類(lèi)型直接存儲(chǔ)在棧中,而引用類(lèi)型,現(xiàn)在棧上分配一塊內(nèi)存,再把信息存在堆內(nèi)存上,然后由棧上面的引用指向堆中對(duì)象的地址。
6.重載與重寫(xiě)
重載發(fā)生在同一類(lèi)中,方法名必須相同,參數(shù)類(lèi)型、個(gè)數(shù)、順序,方法返回值和訪(fǎng)問(wèn)修飾符可以不同。
重寫(xiě)是子類(lèi)對(duì)父類(lèi)允許訪(fǎng)問(wèn)的方法的實(shí)現(xiàn)過(guò)程中進(jìn)行的重新編寫(xiě),發(fā)生在子類(lèi)中,方法名,參數(shù)類(lèi)型必須相同,返回值范圍小于等于父類(lèi),拋出的異常范圍小于等于父類(lèi),訪(fǎng)問(wèn)修飾范圍大于等于父類(lèi)。另外,如果父類(lèi)方法訪(fǎng)問(wèn)修飾符為private,子類(lèi)就不能重寫(xiě)該方法。也就是說(shuō)方法提供的行為改變,而方法的外貌并沒(méi)有改變。
7.封裝繼承多態(tài)
8.final修飾的類(lèi)不能被繼承,方法不能被重寫(xiě),變量不可被更改。
9.String StringBuffer StringBuilder的區(qū)別
String的值不可改變 另外兩個(gè)可以改變
StringBuffer線(xiàn)程安全效率低,StringBuilder線(xiàn)程不安全效率高。
10.為什么String要設(shè)置不可變?
1.為了實(shí)現(xiàn)字符串常量池
2.為了線(xiàn)程安全
3.為了保證同一變量調(diào)用hashcode都產(chǎn)生相同的值,這也是Map的key使用String的原因。
10.JAVA異常體系
ERROR是錯(cuò)誤
EXCEPTION表示程序本身可以處理的異常
checked exception是可檢查的異常(IDE中會(huì)報(bào)錯(cuò)的異常)
unchecked Exception
11.接口和抽象類(lèi)的區(qū)別
1.接口默認(rèn)的方法是public,所有方法在接口中不能有實(shí)現(xiàn)(Java 8 開(kāi)始接口方法可以有默認(rèn)實(shí)現(xiàn)),而抽象類(lèi)可以有非抽象的方法。