成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談C#和Java比較

開發 后端
本文介紹C#和Java比較,包括委托,屬性,真正的泛型,索引器,類初始化器,分部類,操作符重載,struct,unsafe代碼,IDisposable等。

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比較

【編輯推薦】

  1. C#數據庫查詢和操作大全
  2. 淺析C#擴展方法
  3. C# Singleton的使用及優缺點探討
  4. 詳細分析C#數據庫連接池
  5. C#數據庫備份及還原的實現代碼
責任編輯:佚名 來源: IT168
相關推薦

2009-08-11 14:57:11

比較C#和Java

2009-08-18 09:06:41

C#對象和集合

2009-08-26 14:27:03

C# Framewor

2009-08-10 10:04:25

C#抽象類C#接口

2009-08-11 10:12:21

2009-08-21 14:22:22

C# new和over

2011-09-21 10:56:31

C#結構

2009-08-20 18:30:33

C# ReaderWr

2009-08-27 10:54:09

C# const和st

2009-08-18 15:15:29

C#安裝服務

2009-08-26 14:05:19

C#值類型和引用類型

2015-04-01 14:34:37

C#dynamicDictionary性

2009-09-04 17:34:11

C#CC++

2009-08-26 13:15:38

C#選擇控制

2009-08-26 15:46:01

C#匿名類型

2009-08-25 16:16:43

C# oledbcon

2009-08-14 17:58:05

C#接口方法

2009-08-20 10:24:52

C#開發WinForm

2009-09-02 15:41:21

C# HTTPWebR

2009-08-06 15:30:23

C#類型系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产色婷婷久久99精品91 | 国产综合久久久久久鬼色 | 国产精品久久久久久一区二区三区 | 999观看免费高清www | 国产毛片久久久 | 久久精品国产亚洲一区二区 | 国产激情视频网址 | av天天干 | 毛片网站在线观看 | 日韩欧美国产一区二区三区 | 国产精品日韩欧美一区二区 | 99精品国产一区二区青青牛奶 | 超碰国产在线 | 超碰伊人| 精品日韩一区二区三区av动图 | 国产一级淫片a直接免费看 免费a网站 | 欧美日韩三级在线观看 | 日韩视频在线一区 | 亚洲欧美精品在线 | 伊大人久久 | 国产高清精品一区二区三区 | 国产一区二区美女 | 国产精品国产精品国产专区不卡 | 久久国产麻豆 | 亚洲欧美日韩国产综合 | 成人永久免费视频 | 日韩福利视频 | 天天摸天天干 | 久久91av | 久在线 | 午夜电影网站 | 国产91丝袜在线播放 | 国产成人福利视频 | 国产一区二区三区四区三区四 | 国产一区二区三区四区 | 九九免费观看视频 | 日本一级淫片免费啪啪3 | 国产精品一区二区精品 | 国产999精品久久久久久 | 亚洲天堂中文字幕 | 国产精品高清在线 |