引導語:應聘技術類的崗位都是需要經過筆試考察這一個環節的,以下是小編整理的java程式設計筆試面試題,歡迎參考閱讀!
簡答題:
01、switch語句能否作用在byte上,能否作用在long上,能否作用在String上?
答:
在switch(expr1)中,expr1只能是一個整數表示式或者列舉常量(更大字型),
整數表示式可以是int基本型別或Integer包裝型別,
由於,byte,short,char都可以隱含轉換為int,
所以,這些型別以及這些型別的包裝型別也是可以的。
顯然,long和String型別都不符合switch的語法規定,
並且不能被隱式轉換成int型別,
所以,它們不能作用於swtich語句中。
02、short s1 = 1; s1 = s1 + 1;有什麼錯?short s1 = 1; s1 += 1;有什麼錯?
答:
對於short s1 = 1; s1 = s1 + 1; 由於s1+1運算時會自動提升表示式的型別,
所以結果是int型,再賦值給short型別s1時,編譯器將報告需要強制轉換型別的錯誤。
對於short s1 = 1; s1 += 1;由於+= 是java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。
03、簡述Java中構造方法的概念及特點。
答:
構造方法:構造方法是一種特殊的方法,用於初始化物件。
特點:
① 構造方法與類同名,可以有引數,也可無引數。
② 構造方法沒有返回值,在方法前也不需要寫void。
③ 建立物件時,系統自動呼叫構造方法。
④ 使用者在程式中不能直接呼叫構造方法,只能通過new操作符呼叫。
⑤ 一個類可以有多個同名構造方法,但引數必須不同。
⑥ 類中可以不定義構造方法,此時Java提供一個預設的無引數構造方法
04、簡述Java中介面的概念及介面的性質?
答:
Java語言規定,類只能實現單繼承,但介面可以實現多重繼承。
介面中定義的方法都是抽象方法,定義的所有域都是常量。
因此介面可以看作是沒有實現的方法和常量的集合。
使用介面主要是解決Java語言不支援多重繼承的問題。
性質:
① 介面不提供程式碼重用性。因為介面中的方法都是沒有實現的方法,因此所有的方法體都要自己編寫。
② 介面可以通過多繼承進行擴充套件。
③ 介面不能升級,即提供給使用者的介面不能再改變。
05、陣列有沒有length()這個方法? String有沒有length()這個方法?
答:
陣列沒有length()這個方法,有length的屬性。String有length()這個方法。
06、構造器Constructor是否可被override?
答:
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被過載Overloading。
07、啟動一個執行緒是用run()還是start()?
答:
啟動一個執行緒是呼叫start()方法,使執行緒所代表的虛擬處理機處於可執行狀態,這意味著它可以由JVM排程並執行。
這並不意味著執行緒就會立即執行。
run()方法可以產生必須退出的標誌來停止一個執行緒。
08、介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類(concrete class)?
答:
介面可以繼承介面。
抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類必須有明確的建構函式。
09、sleep() 和 wait() 有什麼區別?
答:
sleep是執行緒類(Thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控狀態依然保持,到時後會自動恢復。
呼叫sleep不會釋放物件鎖。
wait是Object類的`方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,
只有針對此物件發出notify方法(或notifyAll)後本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。
10、abstract class和interface有什麼區別?
答:
宣告方法的存在而不去實現它的類被叫做抽象類(abstract
class),它用於要建立一個體現某些基本行為的類,併為該類宣告方法,但不能在該類中實現該類的情況。
不能建立abstract 類的例項。
然而可以建立一個變數,其型別是一個抽象類,並讓它指向具體子類的一個例項。
不能有抽象建構函式或抽象靜態方法。
Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。
取而代之,在子類中實現該方法。
知道其行為的其它類可以在類中實現這些方法。
介面(interface)是抽象類的變體。
在介面中,所有方法都是抽象的。
多繼承性可通過實現這樣的介面而獲得。
介面中的所有方法都是抽象的,沒有一個有程式體。
介面只可以定義static final成員變數。
介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。
當類實現特殊介面時,它定義(即將程式體給予)所有這種介面的方法。
然後,它可以在實現了該介面的類的任何物件上呼叫介面的方法。
由於有抽象類,它允許使用介面名作為引用變數的型別。
通常的動態聯編將生效。
引用可以轉換到介面型別或從介面型別轉換,instanceof 運算子可以用來決定某物件的類是否實現了介面。