欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java反射機制怎么理解-創(chuàng)新互聯(lián)

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

為零陵等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及零陵網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計、零陵網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1. 簡介

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

作用:動態(tài)(運行時)獲取類的完整結(jié)構(gòu)信息 & 調(diào)用對象的方法

類的結(jié)構(gòu)信息包括:變量、方法等

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

2. 特點

2.1 優(yōu)點

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

編譯方式說明:

1. 靜態(tài)編譯:在編譯時確定類型 & 綁定對象。如常見的使用new關(guān)鍵字創(chuàng)建對象

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

2.2 缺點

執(zhí)行效率低

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

因為接口的通用性,Java的invoke方法是傳object和object[]數(shù)組的?;绢愋蛥?shù)需要裝箱和拆箱,產(chǎn)生大量額外的對象和內(nèi)存開銷,頻繁促發(fā)GC。

編譯器難以對動態(tài)調(diào)用的代碼提前做優(yōu)化,比如方法內(nèi)聯(lián)。

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

容易破壞類結(jié)構(gòu)

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

3. 應(yīng)用場景

動態(tài)獲取類文件結(jié)構(gòu)信息(如變量、方法等) & 調(diào)用對象的方法

常用的需求場景有:動態(tài)代理、工廠模式優(yōu)化、Java JDBC數(shù)據(jù)庫操作等

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

4. 具體使用

4.1 Java反射機制提供的功能

Java反射機制怎么理解

4.2 實現(xiàn)手段

反射機制的實現(xiàn) 主要通過操作java.lang.Class類

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

4.2.1 java.lang.Class 類

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

作用:存放著對應(yīng)類型對象的 運行時信息

Java反射機制怎么理解

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

Java反射機制怎么理解

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

Java反射機制怎么理解

4.3 使用步驟

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

1. 獲取 目標(biāo)類型的Class對象

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

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

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

步驟1:獲取 目標(biāo)類型的Class對象

Java反射機制怎么理解

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

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

這些類型包括:

Java反射機制怎么理解

之間的關(guān)系如下

Java反射機制怎么理解

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

Java反射機制怎么理解

Java反射機制怎么理解

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

Java反射機制怎么理解

4.4 特別注意:訪問權(quán)限問題

背景

反射機制的默認(rèn)行為受限于Java的訪問控制

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

沖突

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

若強制讀取,將拋出異常

解決方案

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

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

Java反射機制怎么理解

到此,相信大家對“Java反射機制怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享名稱:Java反射機制怎么理解-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://aaarwkj.com/article34/cogese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、App開發(fā)、品牌網(wǎng)站制作、網(wǎng)站排名面包屑導(dǎo)航、建站公司

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
亚洲精品一区二区影院| 久章草在线免费视频播放| 国产激情在线四五区观看| 国产亚洲欧美日韩看国产| 久久久久久成人亚洲| 中文人妻熟妇乱又伦精品| 欧美日韩视频一区二区| 视频播放一区二区三区毛片| av电影在线中文字幕| 国产日韩欧美一区二区丝袜| 欧美一区二区三区情色| 热99精品视频在线观看| 国产精品一区二区啪啪| 黄色亚洲一区二区三区四区| 国产亚洲一区二区三区在线| 亚洲成av人在线观看福利| 综合资源网日韩天天操| 久久亚洲中文字幕丝袜长腿| 激情毛片av在线免费看| 四虎永久精品在线视频| 欧美日韩精品一区二区三| 白浆熟女精品国产91| 成人色视频免费在线观看| 国产精品亚洲精品久久| 日韩性视频激情在线一区| 免费日本高清色噜噜视频| 亚洲国产精品性色av| 高清一区高清二区高清三区| 97色伦综合在线欧美视频| 国产老妇伦国产熟女高清| 欧美成人一区二区三区片| 亚洲精品??一区二区| 亚洲欧美综合精品二区| 日本黄色高清视频一区| 粉嫩护士国产在线观看| 日本在线一区二区中文| 日本新任女教师在线播放| 亚洲欧美日韩国产一区二区三区| 蜜臀av在线国产一区| 国产精品亚洲国产精品| 国产精品亚洲av在线|