bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Java反射機制怎么理解

本篇內容主要講解“Java反射機制怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java反射機制怎么理解”吧!

成都創新互聯公司是一家企業級云計算解決方案提供商,超15年IDC數據中心運營經驗。主營GPU顯卡服務器,站群服務器,成都服務器托管,海外高防服務器,成都機柜租用,動態撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。

1. 簡介

定義:Java語言中 一種動態(運行時)訪問、檢測 & 修改它本身的能力

作用:動態(運行時)獲取類的完整結構信息 & 調用對象的方法

類的結構信息包括:變量、方法等

正常情況下,Java類在編譯前,就已經被加載到JVM中;而反射機制使得程序運行時還可以動態地去操作類的變量、方法等信息

2. 特點

2.1 優點

靈活性高。因為反射屬于動態編譯,即只有到運行時才動態創建 &獲取對象實例。

編譯方式說明:

1. 靜態編譯:在編譯時確定類型 & 綁定對象。如常見的使用new關鍵字創建對象

2. 動態編譯:運行時確定類型 & 綁定對象。動態編譯體現了Java的靈活性、多態特性 & 降低類之間的藕合性

2.2 缺點

執行效率低

因為反射的操作 主要通過JVM執行,所以時間成本會高于直接執行相同操作

因為接口的通用性,Java的invoke方法是傳object和object[]數組的。基本類型參數需要裝箱和拆箱,產生大量額外的對象和內存開銷,頻繁促發GC。

編譯器難以對動態調用的代碼提前做優化,比如方法內聯。

反射需要按名檢索類和方法,有一定的時間開銷。

容易破壞類結構

因為反射操作饒過了源碼,容易干擾類原有的內部邏輯

3. 應用場景

動態獲取類文件結構信息(如變量、方法等) & 調用對象的方法

常用的需求場景有:動態代理、工廠模式優化、Java JDBC數據庫操作等

下文會用實際例子詳細講解

4. 具體使用

4.1 Java反射機制提供的功能

Java反射機制怎么理解

4.2 實現手段

反射機制的實現 主要通過操作java.lang.Class類

下面將主要講解 java.lang.Class 類

4.2.1 java.lang.Class 類

定義:java.lang.Class類是反射機制的基礎

作用:存放著對應類型對象的 運行時信息

Java反射機制怎么理解

每種類型的Class對象只有1個 = 地址只有1個

Java反射機制怎么理解

Java反射機制的實現除了依靠Java.lang.Class類,還需要依靠:Constructor類、Field類、Method類,分別作用于類的各個組成部分:

Java反射機制怎么理解

4.3 使用步驟

在使用Java反射機制時,主要步驟包括:

1. 獲取 目標類型的Class對象

2. 通過 Class 對象分別獲取Constructor類對象、Method類對象 & Field 類對象

3. 通過 Constructor類對象、Method類對象 & Field類對象分別獲取類的構造函數、方法&屬性的具體信息,并進行后續操作

下面,我將詳細講解每個步驟中的使用方法。

步驟1:獲取 目標類型的Class對象

Java反射機制怎么理解

此處額外講一下java.lang.reflect.Type類

java.lang.reflect.Type是 Java中所有類型的父接口

這些類型包括:

Java反射機制怎么理解

之間的關系如下

Java反射機制怎么理解

步驟2:通過 Class 對象分別獲取Constructor類對象、Method類對象 & Field 類對象

Java反射機制怎么理解

Java反射機制怎么理解

步驟3:通過 Constructor類對象、Method類對象 & Field類對象分別獲取類的構造函數、方法 & 屬性的具體信息 & 進行操作

Java反射機制怎么理解

4.4 特別注意:訪問權限問題

背景

反射機制的默認行為受限于Java的訪問控制

如,無法訪問( private )私有的方法、字段

沖突

Java安全機制只允許查看任意對象有哪些域,而不允許讀它們的值

若強制讀取,將拋出異常

解決方案

脫離Java程序中安全管理器的控制、屏蔽Java語言的訪問檢查,從而脫離訪問控制

具體實現手段:使用Field類、Method類 & Constructor類對象的setAccessible()

Java反射機制怎么理解

到此,相信大家對“Java反射機制怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

當前標題:Java反射機制怎么理解
文章分享:http://vcdvsql.cn/article30/ggppso.html

成都網站建設公司_創新互聯,為您提供網站收錄定制網站域名注冊網站制作微信小程序網站策劃

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設