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

【Android架構(gòu)師java原理專題詳解】二;反射原理及動(dòng)態(tài)代理模式-創(chuàng)新互聯(lián)

前言;

本篇為Android架構(gòu)師java原理專題二;反射原理及動(dòng)態(tài)代理模式。
大公司面試都要求我們有扎實(shí)的Java語(yǔ)言基礎(chǔ)。而很多Android開(kāi)發(fā)朋友這一塊并不是很熟練,甚至半路初級(jí)底子很薄,這給我們進(jìn)階造成了很大的困擾,很容易就碰到瓶頸。如果我們想提升成為高級(jí)工程師甚至架構(gòu)師,java基礎(chǔ)一定要學(xué)好。

創(chuàng)新互聯(lián)是少有的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型企業(yè)網(wǎng)站、重慶小程序開(kāi)發(fā)、手機(jī)APP,開(kāi)發(fā)、制作、設(shè)計(jì)、買(mǎi)鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,成立與2013年,堅(jiān)持透明化,價(jià)格低,無(wú)套路經(jīng)營(yíng)理念。讓網(wǎng)頁(yè)驚喜每一位訪客多年來(lái)深受用戶好評(píng)
一.反射(Reflect)

反射之中包含了一個(gè)「反」字,所以了解反射我們先從「正」開(kāi)始。

一般情況下,我們使用某個(gè)類(lèi)時(shí)必定知道它是什么類(lèi),是用來(lái)做什么的。于是我們直接對(duì)這個(gè)類(lèi)進(jìn)行實(shí)例化,之后使用這個(gè)類(lèi)對(duì)象進(jìn)行操作。

反射則是一開(kāi)始并不知道我要初始化的類(lèi)對(duì)象是什么,自然也無(wú)法使用 new 關(guān)鍵字來(lái)創(chuàng)建對(duì)象了。這時(shí)候,我們使用 JDK 提供的反射 API 進(jìn)行反射調(diào)用。反射就是在運(yùn)行時(shí)才知道要操作的類(lèi)是什么,并且可以在運(yùn)行時(shí)獲取類(lèi)的完整構(gòu)造,并調(diào)用對(duì)應(yīng)的方法。

Reflection(反射)是Java被視為動(dòng)態(tài)語(yǔ)言的關(guān)鍵,反射機(jī)制允許程序在執(zhí)行期借助于Reflection API取得任何類(lèi)的內(nèi)部信息,并能直接操作任意對(duì)象的內(nèi)部屬性及方法。

Java反射機(jī)制主要提供了以下功能:

  • 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類(lèi)的對(duì)象

  • 在運(yùn)行時(shí)獲取任意一個(gè)類(lèi)所具有的成員變量和方法

  • 在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法(屬性)

Java 是一門(mén)面向?qū)ο蟮恼Z(yǔ)言。在面向?qū)ο蟮氖澜缋铮f(wàn)事萬(wàn)物皆對(duì)象,既然萬(wàn)事萬(wàn)物皆對(duì)象,那么我們的類(lèi)是不是對(duì)象呢?

我們寫(xiě)的每一個(gè)類(lèi)都可以看成一個(gè)對(duì)象,是 java.lang.Class 類(lèi)的對(duì)象。每一個(gè)類(lèi)對(duì)應(yīng)的Class放在哪里呢?當(dāng)我們寫(xiě)完一個(gè)類(lèi)的Java文件,編譯成class文件的時(shí)候,編譯器都會(huì)將這個(gè)類(lèi)的對(duì)應(yīng)的class對(duì)象放在class文件的末尾。

里面都保存了些什么?大家可以理解保存了類(lèi)的元數(shù)據(jù)信息,一個(gè)類(lèi)的元數(shù)據(jù)信息包括什么?有哪些屬性,方法,構(gòu)造器,實(shí)現(xiàn)了哪些接口等等,那么這些信息在Java里都有對(duì)應(yīng)的類(lèi)來(lái)表示。

Class類(lèi)

Class是一個(gè)類(lèi),封裝了當(dāng)前對(duì)象所對(duì)應(yīng)的類(lèi)的信息

一個(gè)類(lèi)中有屬性,方法,構(gòu)造器等,比如說(shuō)有一個(gè)Person類(lèi),一個(gè)Order類(lèi),一個(gè)Book類(lèi),這些都是不同的類(lèi),現(xiàn)在需要一個(gè)類(lèi),用來(lái)描述類(lèi),這就是Class,它應(yīng)該有類(lèi)名,屬性,方法,構(gòu)造器等。Class是用來(lái)描述類(lèi)的類(lèi)。

Class類(lèi)是一個(gè)對(duì)象照鏡子的結(jié)果,對(duì)象可以看到自己有哪些屬性,方法,構(gòu)造器,實(shí)現(xiàn)了哪些接口等等
對(duì)于每個(gè)類(lèi)而言,JRE 都為其保留一個(gè)不變的 Class 類(lèi)型的對(duì)象。一個(gè) Class 對(duì)象包含了特定某個(gè)類(lèi)的有關(guān)信息。

對(duì)象只能由系統(tǒng)建立對(duì)象,一個(gè)類(lèi)(而不是一個(gè)對(duì)象)在 JVM 中只會(huì)有一個(gè)Class實(shí)例

獲取Class對(duì)象的三種方式;
1.通過(guò)類(lèi)名獲取 類(lèi)名.class
2.通過(guò)對(duì)象獲取 對(duì)象名.getClass()
3.通過(guò)全類(lèi)名獲取 Class.forName(全類(lèi)名)

【Android架構(gòu)師java原理專題詳解】二;反射原理及動(dòng)態(tài)代理模式

二.動(dòng)態(tài)代理

代理模式和靜態(tài)代理
代理模式給某一個(gè)對(duì)象提供一個(gè)代理對(duì)象,并由代理對(duì)象控制對(duì)原對(duì)象的引用。通俗的來(lái)講代理模式就是我們生活中常見(jiàn)的中介。

舉個(gè)例子來(lái)說(shuō)明:張三想買(mǎi)某種用品,雖然他可以自己去找,但是這確實(shí)太浪費(fèi)時(shí)間和精力了,或者不好意思去買(mǎi)。于是張三就通過(guò)中介Mark來(lái)買(mǎi),Mark來(lái)幫張三,張三只是負(fù)責(zé)選擇自己喜歡的的size,然后付錢(qián)就可以了。

目的:
(1)通過(guò)引入代理對(duì)象的方式來(lái)間接訪問(wèn)目標(biāo)對(duì)象,防止直接訪問(wèn)目標(biāo)對(duì)象給系統(tǒng)帶來(lái)的不必要復(fù)雜性
(2)通過(guò)代理對(duì)象對(duì)原有的業(yè)務(wù)增強(qiáng);

代理模式一般會(huì)有三個(gè)角色:

【Android架構(gòu)師java原理專題詳解】二;反射原理及動(dòng)態(tài)代理模式

抽象角色:指代理角色和真實(shí)角色對(duì)外提供的公共方法,一般為一個(gè)接口

真實(shí)角色:需要實(shí)現(xiàn)抽象角色接口,定義了真實(shí)角色所要實(shí)現(xiàn)的業(yè)務(wù)邏輯,以便供代理角色調(diào)用。也就是真正的業(yè)務(wù)邏輯在此。

代理角色:需要實(shí)現(xiàn)抽象角色接口,是真實(shí)角色的代理,通過(guò)真實(shí)角色的業(yè)務(wù)邏輯方法來(lái)實(shí)現(xiàn)抽象方法,并可以附加自己的操作。將統(tǒng)一的流程控制都放到代理角色中處理!

而訪問(wèn)者不再訪問(wèn)真實(shí)角色,而是去訪問(wèn)代理角色。

靜態(tài)代理在使用時(shí),需要定義接口或者父類(lèi),被代理對(duì)象與代理對(duì)象一起實(shí)現(xiàn)相同的接口或者是繼承相同父類(lèi)。一般來(lái)說(shuō),被代理對(duì)象和代理對(duì)象是一對(duì)一的關(guān)系,當(dāng)然一個(gè)代理對(duì)象對(duì)應(yīng)多個(gè)被代理對(duì)象也是可以的。

靜態(tài)代理,一對(duì)一則會(huì)出現(xiàn)時(shí)靜態(tài)代理對(duì)象量多、代碼量大,從而導(dǎo)致代碼復(fù)雜,可維護(hù)性差的問(wèn)題,一對(duì)多則代理對(duì)象會(huì)出現(xiàn)擴(kuò)展能力差的問(wèn)題。

三.動(dòng)態(tài)代理

是指在使用時(shí)再創(chuàng)建代理類(lèi)和實(shí)例

優(yōu)點(diǎn)

只需要1個(gè)動(dòng)態(tài)代理類(lèi)就可以解決創(chuàng)建多個(gè)靜態(tài)代理的問(wèn)題,避免重復(fù)、多余代碼

更強(qiáng)的靈活性

缺點(diǎn)

效率低,相比靜態(tài)代理中 直接調(diào)用目標(biāo)對(duì)象方法,動(dòng)態(tài)代理則需要先通過(guò)Java反射機(jī)制 從而 間接調(diào)用目標(biāo)對(duì)象方法

應(yīng)用場(chǎng)景局限,因?yàn)?Java 的單繼承特性(每個(gè)代理類(lèi)都繼承了 Proxy 類(lèi)),即只能針對(duì)接口 創(chuàng)建 代理類(lèi),不能針對(duì)類(lèi)創(chuàng)建代理類(lèi)。

在java的動(dòng)態(tài)代理機(jī)制中,有兩個(gè)重要的類(lèi)或接口,一個(gè)是InvocationHandler接口、另一個(gè)則是 Proxy類(lèi),這個(gè)類(lèi)和接口是實(shí)現(xiàn)我們動(dòng)態(tài)代理所必須用到的。

InvocationHandler接口是給動(dòng)態(tài)代理類(lèi)實(shí)現(xiàn)的,負(fù)責(zé)處理被代理對(duì)象的操作的,而Proxy是用來(lái)創(chuàng)建動(dòng)態(tài)代理類(lèi)實(shí)例對(duì)象的,因?yàn)橹挥械玫搅诉@個(gè)對(duì)象我們才能調(diào)用那些需要代理的方法。

四.總結(jié)

以上為概念介紹,建議理解概念后再去學(xué)習(xí)動(dòng)態(tài)代理實(shí)現(xiàn)原理,原理詳解視頻也可以分享給大家,有興趣的朋友記得把自己去理解其中原理,并且手寫(xiě)一下源碼,依靠復(fù)制粘貼是永遠(yuǎn)不會(huì)有大的成長(zhǎng)的

【Android架構(gòu)師java原理專題詳解】二;反射原理及動(dòng)態(tài)代理模式

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:【Android架構(gòu)師java原理專題詳解】二;反射原理及動(dòng)態(tài)代理模式-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://aaarwkj.com/article10/idjgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、建站公司、網(wǎng)站設(shè)計(jì)網(wǎng)站營(yíng)銷(xiāo)、搜索引擎優(yōu)化網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

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

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
国产有码日产一区在线观看| 少妇互射视频免费视频| 水牛av影视亚洲精品| 超碰欧美黄色免费在线| 国产精品伦一区二区三级| 日本亚洲一级中文字幕| 午夜啪视频免费在线观看| 久久精品高潮999久久久| 国产免费不卡午夜福利在线| 在线青青草视频免费观看| 亚洲av综合色区一区| 国产精品久久久久大屁股精品性色| 成人嚼牙特别黑黄怎么办| 中文字幕高清一区二区三区| 午夜精品人妻一区二区| 中文字幕人妻丝袜乱一区二区| 亚洲人妖视频在线观看| 国产亚洲综合一区二区三区| 国内自拍韩国资源在线| 国产精品—色哟哟视频| 日韩欧美亚洲综合另类| 成人免费亚洲av在线| 亚洲国产中文字幕高清| 色婷婷综合中文久久一本| 日本成人午夜福利在线观看| 在线观看高清免费国产| 丁香六月婷婷激情啪啪综合| 丰满人妻被猛烈进入中文版| 青春草草视频在线观看| 日本在线免费成人高清| 中国美女下面毛茸茸视频| 免费毛片一区二区三区| 日韩经典三级精品自拍| 欧洲亚洲国产一区二区| 亚洲欧美日韩综合久久| 欧美一级特黄大片做受| 中文字幕乱码亚洲精品一区| jvid视频在线观看免费| 男人av天堂手机在线| 国内精品久久大型新型| 黄片免费视频大全在线观看|