写点什么

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

  • 2007-05-04
  • 本文字数:997 字

    阅读完需:约 3 分钟

2001 年的时候, Dare Obasanjo 写过一篇文章,名为《论C#与Java 之异同(Comparison of Microsoft’s C# Programming Language to Sun Microsystems’ Java Programming Language)》,该文以其详尽与精确成为了同类文章中的佼佼者。现在,他又根据两种语言的最新版本—— Microsoft C# 2.0 Java 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

2007-05-04 08:001439
用户头像

发布了 197 篇内容, 共 54.6 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期 - 第十三周作业

Todd-Lee

极客大学架构师训练营

第九周学习总结

晴空万里

极客大学架构师训练营

第十三周作业

orchid9

【架构师训练营第 1 期 13 周】 学习总结

Bear

极客大学架构师训练营

JVM&秒杀案例

幸福小子

JVM原理

week9 性能优化(三)作业和学习总结

杨斌

作业-第9周

arcyao

redis的I/O多路复用

en

redis 多路复用 epoll

架构师训练营第2期 第9周总结

月下独酌

极客大学架构师训练营

分布式服务框架的选择-《企业IT架构转型之道-阿里巴巴中台战略思想与架构实战》

Man

分布式架构 中台架构

架构师训练营 week10 课后作业

花果山

极客大学架构师训练营

JVM垃圾回收原理

幸福小子

JVM垃圾回收原理

第十二周作业

wanlinwang

极客大学架构师训练营

《JAVA并发编程核心方法与框架》.pdf

田维常

并发编程

架构师训练营 - 第十三周 - 作业一

行者

架构师训练营第二期 Week 9 作业

bigxiang

极客大学架构师训练营

架构师训练营第九周作业

李日盛

架构

南昌“舞动”区块链

CECBC

区块链 基础设施

架构师训练营第 1 期 -- 第十三周作业

发酵的死神

极客大学架构师训练营

第十三周总结

orchid9

成为架构师 - 架构师训练营第 08 周

陈永龙Vincent

互操作性如何助推区块链接入互联网基础设施

CECBC

区块链 密码学

C语言学习你要的都在这里

C语言与CPP编程

c++ 学习 编程 C语言

架构师训练营 week10 学习笔记

花果山

极客大学架构师训练营

面试官:Mybatis里的设计模式有哪些?我一口气答了8种

田维常

mybatis

【架构师训练营第 1 期 13 周】 作业

Bear

极客大学架构师训练营

架构师训练营 2 期 Week09 作业

两个周末整理的垃圾回收知识,我要吐血了

moon聊技术

JVM JVM垃圾回收原理

增强产业链供应链自主可控能力

CECBC

供应链

盘点2020 | 我要为分布式数据库mongodb在国内影响力提升及推广做点事

杨亚洲(专注MongoDB及高性能中间件)

数据库 mongodb 盘点2020 分布式数据库mongodb

成为架构师 - 架构师训练营第 07 周

陈永龙Vincent

《论C#与Java之异同》一文已更新_Java_Hartmut Wilms_InfoQ精选文章