一、String、StringBuffer與StringBuilder的差異
(相關教學推薦:java面試題)
String的值是不可變的,這就導致每次對String的運算都會產生新的String物件。
StringBuffer 和StringBuilder 類別的物件能夠被多次的修改,並且不產生新的未使用物件
速度快慢為:StringBuilder > StringBuffer > String
# StringBuilder 類別和StringBuffer 之間的最大不同在於StringBuilder 的方法不是線程安全的。
看圖:
(推薦教學:java入門程式)
二、所有的類別都繼承於object類,你用過的object類別的直接子類別有哪些,object類別常用的方法有哪些?
Boolean
#Character
Class
##System
##三、什麼是泛型,怎麼使用的,有什麼好處?
是一種把類型明確的工作延後到建立物件或呼叫方法的時候才去明確的特殊的型別。
參數化類型,把類型當作參數一樣的傳遞。是一種設計模式,非常好的支援了多態,例如各種容器。
###好處:######把運行時期的問題提前到了編譯期間,避免了強制型別轉換。 #########四、java物件序列化為什麼要使用serialversionUID? #########1、什麼要序列化物件############把物件轉換為位元組序列的過程稱為物件的序列化######## #####把位元組序列恢復為物件的過程稱為物件的反序列化############2、物件的序列化主要有兩種用途:##### #(1)把物件的位元組序列永久地保存到硬碟上,通常存放在一個檔案中;######(2)在網路上傳送物件的位元組序列。 ######3、為什麼要使用SerialversionUID######如果使用者沒有自己宣告一個serialVersionUID,介面會預設產生一個serialVersionUID,如果物件發生新增字段,則系統指派的serialversionUID會發生變化,導致反序列化異常。 ######(影片教學推薦:###java影片教學###)#########五、反射的優缺點#########1、優點## ####反射提高了Java程式的靈活性和擴展性,降低耦合性,提高自適應能力。它允許程式創建和控制任何類別的對象,無需提高硬編碼目標類別。 ######反射是其他一些常用語言,如C、C 、Fortran或Pascal等所不具備的。 ######Java反射技術應用領域很廣,如軟體測試、JavaBean等。 ######許多流行的開源框架例如Struts、Hibernate、Spring在實作過程中都採用了該技術。 ######2、缺點######(1)效能第一個 Performance Overhead######反射包含了一些動態類型,所以JVM無法對這些程式碼進行最佳化。因此,反射操作的效率比那些非反射操作低得多。我們應該避免在經常被 執行的程式碼或對效能要求很高的程式中使用反射。 ######(2)安全限制 Security Restrictions######使用反射技術要求程式必須在一個沒有安全限制的環境中執行。如果一個程式必須在有安全限制的環境中運行,例如Applet,那麼這就是個問題了。 。 ######(3)內部暴露Exposure of Internals######由於反射允許程式碼執行一些在正常情況下不被允許的操作(例如存取私有的屬性和方法),所以使用反射可能會導致意料之外的副作用。程式碼有功能上的錯誤,降低可移植性。反射程式碼破壞了抽象性,因此當平台改變的時候,程式碼的行為就有可能也隨著改變。 ###以上是java經典面試題集錦(三)的詳細內容。更多資訊請關注PHP中文網其他相關文章!