无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

反射和new的區(qū)別

2020-11-19 16:05 作者:每天一個禿頂小技巧  | 我要投稿

什么是反射,什么是new
相信學(xué)過C#基礎(chǔ)和設(shè)計模式的小伙伴都聽說過和使用過“實例化”類 這個我們做項目必不可少的過程 那么小伙伴們必不可少的實例化方法一定用過這兩種 1.使用配置文件+反射的方法

2.直接new的方法
所以我覺得大家可能也會有相同的疑問:這兩個到底有什么區(qū)別呢?接下來小編給大家仔細(xì)的講解一下。


首先說一下我們最先學(xué)到的實例化方法 new():
new對象屬于靜態(tài)編譯 也就是說當(dāng)代碼生成EXE文件的時候會將所有模塊都編譯進(jìn)去,當(dāng)你啟動這個EXE文件的時候,所有模塊就會進(jìn)行一個加載的過程(初始化)這個過程在小程序中不會有什么區(qū)別,但是當(dāng)生成程序是一個比較大的程序的時候,這個加載過程就會比較吃力了,這樣你的程序就會對硬件配置產(chǎn)生額外負(fù)荷,這是我們需要避免的。
還有就是new對象是不能調(diào)用該類里面私有的東西


最重要的是new對象一定要知道類名,當(dāng)你不知道類名的時候就沒辦法進(jìn)行new對象了
舉例:spring框架是事先就寫好的框架,他內(nèi)部的處理并不知道用戶要寫哪些類,應(yīng)為那是以后由用他的人來定的,這時候你還能在spring內(nèi)部去new嗎?所以用戶在用的時候才去配置文件中配置類路徑,這是一個典型反射的例子,在很多面試中就問道了這個問題。(關(guān)于這點是從網(wǎng)上大牛借鑒來的,當(dāng)大家學(xué)習(xí)框架以后就會明白了)
但是如果在已知類名的情況下還是new的效率更高一些


下面是反射方法:


反射屬于動態(tài)編譯,編譯過程中并不會將模塊編譯進(jìn)去,這樣初始化的時候就會減少負(fù)荷,只有在運行過程中,需要哪些模塊的時候才進(jìn)行調(diào)用
例如你做了一個網(wǎng)頁:里邊有聽歌,看圖片,閱讀等功能,動態(tài)編譯是說,當(dāng)你打開網(wǎng)頁的時候,并不會將三個功能全部進(jìn)行加載,只會在你點擊其中一項的時候才會加載選中的模塊供用戶使用


動態(tài)編譯相比較靜態(tài)編譯具有速度快,節(jié)省系統(tǒng)資源,利于擴(kuò)展的優(yōu)點


舉例說明


如果用出去旅行來舉例的話,new相當(dāng)于買了一個自行車 走到哪帶到哪 而反射相當(dāng)于在哪里需要車子,就在哪租一個,不需要一直帶在身上
這個比較夸張的比喻希望能夠幫到大家理解new 和 反射

如果你對反射知識感興趣可以點擊:


反射和new的區(qū)別的評論 (共 條)

分享到微博請遵守國家法律
新津县| 汽车| 鄯善县| 余庆县| 镇宁| 谢通门县| 从江县| 河源市| 阳谷县| 松潘县| 琼结县| 湘阴县| 个旧市| 磐石市| 华坪县| 天水市| 天气| 延川县| 印江| 武威市| 贞丰县| 颍上县| 资兴市| 洪泽县| 江孜县| 南阳市| 韩城市| 溧阳市| 峡江县| 德庆县| 博白县| 新河县| 武城县| 甘谷县| 麻城市| 福泉市| 四子王旗| 新疆| 醴陵市| 台中市| 蓬溪县|