日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

在Java里面使用instanceof的性能影响

發(fā)布時間:2023/11/29 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Java里面使用instanceof的性能影响 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題:在Java里面使用instanceof的性能影響

我正在寫一個應(yīng)用程序,其中一種設(shè)計方案包含了instanceof操作的大量使用。雖然我知道面向?qū)ο笤O(shè)計通常試圖避免使用instanceof,但那是另一回事了,這個問題純粹只是討論與性能有關(guān)。我想知道這是否會對性能產(chǎn)生任何影響?它和 ==一樣快速嗎?

例如,我有一個有10個子類的父類。在接受父類作為參數(shù)的單個函數(shù)中,我檢查這個類是否是子類的實例,并執(zhí)行一些程序。

我想到的解決它的另一種方法是使用一個“type id”原始整型代替,并使用掩碼表示子類的類別,然后只讓子類“type id”和一個常量掩碼做一次掩碼的比較,比較的結(jié)果就用來表示類別。

instanceof是否被JVM優(yōu)化到比這更快?我想堅持使用Java,但是這個應(yīng)用程序的性能是至關(guān)重要。如果以前有過類似經(jīng)歷的人能提供一些建議,那就太棒啦。我是不是太挑剔了,或者說把注意力放在優(yōu)化錯誤的東西上面了?

回答

現(xiàn)代的JVM/JIT編譯器已經(jīng)消除了大多數(shù)傳統(tǒng)的“慢”操作(包括實例化、異常處理、反射等。)產(chǎn)生的性能影響。

正如Donald Knuth所寫,“我們應(yīng)該忘記小的效率問題,可以說大約97%的情況下:過早的優(yōu)化是萬惡之源。”instanceof的性能可能還沒有成為一個問題,所以不要浪費時間去想一些復(fù)雜的解決方案,除非你確定這已經(jīng)出現(xiàn)問題了。

文章翻譯自Stack Overflow:https://stackoverflow.com/questions/103564/the-performance-impact-of-using-instanceof-in-java

總結(jié)

以上是生活随笔為你收集整理的在Java里面使用instanceof的性能影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。