最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ū)別的評論 (共 條)

分享到微博請遵守國家法律
忻城县| 广德县| 唐河县| 宜川县| 日喀则市| 武功县| 清涧县| 永昌县| 仲巴县| 凭祥市| 武安市| 拜泉县| 兴安县| 湖北省| 溧阳市| 宣城市| 重庆市| 陆河县| 定南县| 林州市| 屯留县| 九寨沟县| 渑池县| 孟连| 郁南县| 舟山市| 奉化市| 绥化市| 北票市| 西充县| 兴城市| 博罗县| 白沙| 高要市| 朝阳市| 资兴市| 共和县| 龙游县| 苏尼特右旗| 南郑县| 丹巴县|