最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析Java 反射機制的用途和缺點

 更新時間:2018年07月22日 15:16:35   作者:Alfredonwr  
這篇文章給大家分析了Java 反射機制的用途和缺點以及相關(guān)知識點內(nèi)容,有興趣的朋友可以參考學(xué)習(xí)下。

反射的用途 Uses of Reflection

Reflection is commonly used by programs which require the ability to examine or modify the
runtime behavior of applications running in the Java virtual machine. This is a relatively advanced
feature and should be used only by developers who have a strong grasp of the fundamentals of the language. With that caveat in mind, reflection is a powerful technique and can enable applications to perform operations which would otherwise be impossible.
反射被廣泛地用于那些需要在運行時檢測或修改程序行為的程序中。這是一個相對高級
的特性,只有那些語言基礎(chǔ)非常扎實的開發(fā)者才應(yīng)該使用它。如果能把這句警示時刻放在心
里,那么反射機制就會成為一項強大的技術(shù),可以讓應(yīng)用程序做一些幾乎不可能做到的事情。

反射的缺點 Drawbacks of Reflection

Reflection is powerful, but should not be used indiscriminately. If it is possible to perform an
operation without using reflection, then it is preferable to avoid using it. The following concerns
should be kept in mind when accessing code via reflection.
盡管反射非常強大,但也不能濫用。如果一個功能可以不用反射完成,那么最好就不用。
在我們使用反射技術(shù)時,下面幾條內(nèi)容應(yīng)該牢記于心:

性能第一 Performance Overhead

Because reflection involves types that are dynamically resolved, certain Java virtual machine
optimizations can not be performed. Consequently, reflective operations have slower performance
than their non-reflective counterparts, and should be avoided in sections of code which are called
frequently in performance-sensitive applications.
反射包括了一些動態(tài)類型,所以 JVM 無法對這些代碼進行優(yōu)化。因此,反射操作的效
率要比那些非反射操作低得多。我們應(yīng)該避免在經(jīng)常被 執(zhí)行的代碼或?qū)π阅芤蠛芨叩某?
序中使用反射。

安全限制 Security Restrictions

Reflection requires a runtime permission which may not be present when running under a
security manager. This is in an important consideration for code which has to run in a restricted
security context, such as in an Applet.
使用反射技術(shù)要求程序必須在一個沒有安全限制的環(huán)境中運行。如果一個程序必須在有
安全限制的環(huán)境中運行,如 Applet,那么這就是個問題了。

內(nèi)部暴露 Exposure of Internals

Since reflection allows code to perform operations that would be illegal in non-reflective
code, such as accessing private fields and methods, the use of reflection can result in
unexpected side-effects, which may render code dysfunctional and may destroy portability.
Reflective code breaks abstractions and therefore may change behavior with upgrades of the
platform.
由于反射允許代碼執(zhí)行一些在正常情況下不被允許的操作(比如訪問私有的屬性和方
法),所以使用反射可能會導(dǎo)致意料之外的副作用--代碼有功能上的錯誤,降低可移植性。
反射代碼破壞了抽象性,因此當(dāng)平臺發(fā)生改變的時候,代碼的行為就有可能也隨著變化。

相關(guān)文章

  • SpringBoot集成MaxCompute的示例代碼

    SpringBoot集成MaxCompute的示例代碼

    這篇文章主要介紹了SpringBoot集成MaxCompute的實例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • SpringCloud微服務(wù)基礎(chǔ)簡介

    SpringCloud微服務(wù)基礎(chǔ)簡介

    今天帶大家學(xué)習(xí)一下SpringCloud微服務(wù)的相關(guān)知識,文中有非常詳細(xì)的圖文示例及介紹,對正在學(xué)習(xí)SpringCloud微服務(wù)的小伙伴們很有幫助哦,需要的朋友可以參考下
    2021-05-05
  • SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式

    SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式

    這篇文章主要介紹了SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot上傳圖片到指定位置并返回URL的實現(xiàn)

    SpringBoot上傳圖片到指定位置并返回URL的實現(xiàn)

    本文主要介紹了SpringBoot上傳圖片到指定位置并返回URL,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>
    2022-03-03
  • 使用SpringBoot中整合Redis

    使用SpringBoot中整合Redis

    這篇文章主要介紹了使用SpringBoot中整合Redis,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot依賴注入的三種方式

    SpringBoot依賴注入的三種方式

    本文將通過代碼示例詳細(xì)介紹SpringBoot依賴注入的三種方式,對學(xué)習(xí)依賴注入有一定的參考價值,需要的朋友可以參考一下
    2023-04-04
  • MyBatis-Plus結(jié)合Layui實現(xiàn)分頁方法

    MyBatis-Plus結(jié)合Layui實現(xiàn)分頁方法

    MyBatis-Plus 使用簡單,本文主要介紹使用 service 中的 page 方法結(jié)合 Layui 前端框架實現(xiàn)分頁效果,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • 詳解RabbitMQ中延遲隊列結(jié)合業(yè)務(wù)場景的使用

    詳解RabbitMQ中延遲隊列結(jié)合業(yè)務(wù)場景的使用

    這篇文章主要介紹了詳解RabbitMQ中延遲隊列結(jié)合業(yè)務(wù)場景的使用,延遲隊列中的元素都是帶有時間屬性的,延遲隊列就是用來存放需要在指定時間被處理的元素的隊列,需要的朋友可以參考下
    2023-05-05
  • Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題

    Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題

    這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼

    Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼

    這篇文章主要介紹了Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12

最新評論

兴安县| 灵丘县| 长宁县| 新巴尔虎左旗| 安化县| 鹤壁市| 龙胜| 大庆市| 莆田市| 宜兴市| 郯城县| 荆门市| 荥经县| 榆中县| 银川市| 新野县| 龙井市| 咸宁市| 沂水县| 新乐市| 奎屯市| 蒙自县| 蕉岭县| 商河县| 新乐市| 台安县| 温宿县| 嘉义县| 长宁区| 宜都市| 浪卡子县| 湘潭市| 成都市| 乌鲁木齐县| 沾化县| 成武县| 太仆寺旗| 琼海市| 钟祥市| 长葛市| 加查县|