91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#和Java的對比

發布時間:2021-07-15 15:13:21 來源:億速云 閱讀:209 作者:chen 欄目:編程語言

這篇文章主要介紹“C#和Java的對比”,在日常操作中,相信很多人在C#和Java的對比問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#和Java的對比”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

C#和Java比較

C#和Java比較,號稱90%的相同加上10%的不同。因此當時我學習C#,閱讀兩種代碼完全沒有什么阻礙。

對C#了解得深入以后,來發表下對這兩種語言各自特性的一些看法

比較起Java和C#大相徑庭的那10%,會發現C#五花八門的特性要多很多。比較知名的有:委托,屬性,真正的泛型,索引器,類初始化器,分部類,操作符重載,struct,unsafe代碼,IDisposable等,另外。net framework 3.5還加了一大串純粹由編譯器提供的特性。

委托,這個可以算是C#之于Java的***優勢。雖然Java可以依靠接口,匿名內部類這些特性實現委托一樣的功能,但卻要麻煩許多,如果涉及到N個委托實例相加的情況,那么一個C#里面簡單的"+"號,在Java里就只能用FilterChain,InterceptorStack這種概念了。

屬性,據說屬性信息是帶到運行時的,后查看反射的確有PropertyInfo類,之前說它是編譯器語法糖是受了某篇分析IL代碼的文章誤導,不過這個是不是語法糖都沒什么關系,它和Java普遍做法的get,set各有優劣。屬性寫起來簡捷,但卻比較難看出哪些屬性是只讀,哪些是只寫不讀。

真正的泛型,這個又是一大C#的優勢,同時偽泛型又是Java的一大敗筆。但是Java年代比較長,為兼容性考慮不得不使用假的泛型實現。如果泛型不是在jdk1.5時推出,而是在jdk1.4,和collection framework一起推出,我認為它也會采用真正的泛型實現。

索引器,有了這個很多容器類都可以直接用[]取元素,感覺還不錯,比沒有好,編譯器的小把戲。

類初始化器,典型的懶漢特性。每次用頂多能省下一兩行代碼,又是編譯器的小把戲。

分部類(partial class),純粹為了vs.net的那一大堆圖形化設計器老和人的代碼沖突而搞出來得玩意,又是編譯器的小把戲。

操作符重載,屬于用到得不多,要用時卻顯得特別有用的東西,很奇怪Java為什么不提供這個功能。

struct,在堆棧上的東西,釋放內存那是超級的快,只不過需要用到這個的場合,大概都在使用C++編程。

unsafe代碼,純粹增加語言復雜性的東西。就好像一個人搬家,看這個不舍得扔,那個也不舍得扔,搞到***把瓶瓶罐罐都搬走了。

IDisposable,實現這個接口,配合using塊,非常的強大,終于可以像C++那樣掌握對象的銷毀了。

接著說說Java比C#多的特性:

匿名內部類:真是極端方便的一個東西,還和Java的好多設計模式有關系,不過C#把Java匿名內部類的寫法拿去用作類初始化器了,糟蹋了……

動態代理: Java里面要實現AOP,易如反掌;C#要實現AOP,難如登天,不得不借助Assamble命名空間下的那些動態IL生成工具。這就是動態代理的作用。

希望有一天C#可以擁有匿名內部類和動態代理,變得更完善。也希望Java也可以有委托等。

到此,關于“C#和Java的對比”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平潭县| 庄浪县| 紫阳县| 宜黄县| 靖宇县| 额尔古纳市| 中宁县| 隆德县| 南平市| 锡林浩特市| 靖边县| 安陆市| 都兰县| 凤台县| 莱西市| 托里县| 扎鲁特旗| 炉霍县| 灵石县| 涡阳县| 上蔡县| 普安县| 临洮县| 班玛县| 绿春县| 长寿区| 凯里市| 竹山县| 北宁市| 西盟| 水城县| 宝兴县| 祁东县| 金寨县| 彭阳县| 临沭县| 阿合奇县| 当阳市| 商南县| 高淳县| 彭山县|