簡體   English   中英

原始類型只是不從java.lang.Object繼承的類型嗎?

[英]Are primitive types only types not inherited from java.lang.Object?

我正在審查java角色的原始類型面試問題。 我在測試期間被問到這樣的陳述。

基本類型是不從java.lang.Object繼承的任何類型。

還有其他類型不擴展java.lang.Object 例如, null是一個值,因此它不會擴展它。 雖然抽象類可以,但接口也不會擴展它。

關於原始類型,答案是肯定的,不是。 當你編寫它們時,原始類型不會從java.lang.Object 但是,在將java代碼編譯為java字節碼時,編譯器會執行一項稱為自動裝箱的操作

簡而言之,在編譯時,編譯器將所有原始值轉換為它們的包裝類( Integer為int, Boolean值為Boolean值等)。 但是,他有效地做到了這一點,因為它轉換了int i = 0; into Integer i = Integer.valueOf(0); 在幕后,包裝類型的valueOf函數是一個Flyweight Factory,它最多只有一個Integer 0的實例,一個Integer 1等...

因此,在編碼時使用基本類型,但JVM使用原始類型的包裝器,它實現了java.lang.Object

不,他們不是。 接口也不從java.lang.Object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM