我使用遺留庫並需要使用將對象轉換爲集合。 爲了避免異常,我想使用instanceof。 所以問題二: 1.如果我使用instanceof - 需要使用try .. catch拋出異常以避免異常? 2.它是否達到性能? 謝謝。使用instanceof幫助和java cast類型異常是否會影響性能?
0
A
回答
5
如果使用
instanceOf
那麼你不需要try-catch(ClasscastException e)
。即使有null
s,instanceOf
也能保證正常工作。在當今的虛擬機中,鑄造不會顯示出任何可衡量的性能影響。相反,如果您發現過於頻繁投擲,那麼請重新訪問您的設計。
注意:instanceof
由於類型擦除而不適用於泛型。
1
Instanceof對現代JVM中的性能沒有影響,任何影響都可以忽略不計。
這裏的an article on this subject與一些數字!
1
有時,在運行時知道對象的類型是很有用的,特別是在投射時。在Java中,無效轉換會導致運行時錯誤。編譯時會捕捉到許多無效的轉換。但是,涉及類層次結構的強制轉換可能會產生只能在運行時才能檢測到的無效強制轉換。 Java提供運行時操作員instanceof來回答這個問題。它沒有任何例外。 現代JVM/JIC編譯器已刪除的大部分性能損失傳統的「慢」業務,其中包括的instanceof,異常處理,反射等
因此去的instanceof沒有任何擔心,但是你不能在收藏中使用它們,他們不在那裏工作。 java generics and instanceof
相關問題
- 1. 變量是否會影響性能?
- 2. $(this)是否會影響性能,如$([selector])?
- 3. java:組合instanceof和cast?
- 4. Java中較弱/較不特定的類型是否會影響性能?
- 5. Hows是否會影響性能?
- 6. Java異常幫助
- 7. 調用空類方法是否會影響性能?
- 8. 在Java中使用泛型會影響性能嗎?
- 9. 檢查java上的列表是否爲空會影響性能?
- 10. Java Visual VM是否會影響受監控的JVM的性能?
- 11. 使用'Commit Retaining'是否會影響Firebird性能?
- 12. 加載不使用的.php文件是否會影響性能?
- 13. 是否重複使用Android Shared Preference存儲會影響性能?
- 14. 在生產中使用ActionCable時,性能是否會影響?
- 15. 使用多個nib文件是否會影響性能?
- 16. 主鍵數據類型是否影響性能? SQL Server 2008
- 17. Windows性能計數器是否會影響性能?
- 18. 縮小catch塊的類型是否有性能影響?
- 19. SQL中的隱式數據類型轉換是否會影響性能?
- 20. 爲什麼異常類型會影響和不會編譯的內容?
- 21. 使用jaxb XMLAdapter會影響性能嗎?
- 22. 實體上的Blob屬性是否會影響查詢性能?
- 23. 未使用的導入和對象是否會對性能產生影響
- 24. 異常的生命週期是否受其他異常影響?
- 25. 向所有類中添加[DataContract]和[DataMember]是否會影響性能
- 26. NSClassFromString會影響性能嗎?
- 27. 在函數內調用require時是否會影響性能?
- 28. JAR文件的大小是否會影響JVM的性能?
- 29. CreateThread是否會影響VirtualAlloc的使用?
- 30. java class cast異常錯誤
instanceof和cast的性能非常好。我發佈了一些Java7中的時間圍繞這個問題的不同方法:http://stackoverflow.com/questions/16320014/java-optimization-nitpick-is-it-faster-to-cast-something-and-let-it-it-投擲excep/28858680#28858680 – Wheezil