BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

《论C#与Java之异同》一文已更新

| 作者 Hartmut Wilms 关注 0 他的粉丝 ,译者 李剑 关注 1 他的粉丝 发布于 2007年5月5日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

2001年的时候,Dare Obasanjo写过一篇文章,名为《论C#与Java之异同(Comparison of Microsoft's C# Programming Language to Sun Microsystems' Java Programming Language)》,该文以其详尽与精确成为了同类文章中的佼佼者。现在,他又根据两种语言的最新版本——Microsoft C# 2.0Java Standard Edition 6——对原文进行了修改。

Dare Obasanjo在文中对二者的特性与概念进行了客观的分析。他的文章与其它文章的区别就在于,他从统揽全局的角度上对两种语言及各自在对应平台上的实现进行了完整的论述。因此,该文几乎可以用来当作C#和Java的参考手册。在文中,他还对关键实现做了说明,并分析了两种语言的优缺点。

文章结构如下所示:

  1. C#和Java的共同点是什么?
  2. 哪些特性是在两种语言中并存,但是有着细微差别的?
  3. 哪些概念是在两种语言中并存,但是相差甚远的?
  4. 哪些特性或者概念是只在C#中存在,而在Java中不存在的?
  5. 哪些特性或者概念是只在Java中存在,而在C#中中不存在的?
  6. 结论

其中关于泛型(Generics)元数据Annotations(Metadata Annotations)的比较最为引人注意,因为这些特性虽然在实际应用中看起来很相似,但是在Java和C#的各自实现中,却有着很明显的细小差异。该文中另外一处亮点则是Dare Obasonjo引用了他在2001年时所得出的结论,来阐述Java和C#在发展方向上的变化:

[...] 自2001年以来,C#和Java中都引入了一些共同的特性,诸如泛型、foreach循环、列举、自动装箱、可变长度参数列表和元数据Annotations。但是在几年之后,我们却发现C#和Java却走上了两条不同的路。C# 3.0的当前计划的重点是语言集成查询(LINQ)项目,它是要把一些面向数据的特性,包括查询、数据集操作、数据转换和类型推断,直接引入到C#中来。再加上C#中已有的一些特性,例如匿名方法和nullable types,C#在未来的几年内,与Java的区别将会越来越大。

Dare Obasanjo的文章给那些想从Java换成C#的开发人员提供了大量信息,反之亦然。对于那些想获得当前语言的更多特性与概念的开发人员来说,这篇文章也是很好的参考。

查看英文原文:A Comparison of C# to Java, Updated


译者简介:李剑中国Eclipse社区插件开发版版主,在JavaEye拥有RCP专栏, 北航软件工程硕士。现就职于Ethos,热衷于设计模式,敏捷软件开发的研究与实践。为InfoQ中文站贡献内容,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT