亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

《论 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:001334
用户头像

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

关注

评论

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

JavaScript刷LeetCode拿offer-双指针技巧(上)

Geek_07a724

JavaScript LeetCode

JavaScript刷LeetCode拿offer-分治

Geek_07a724

JavaScript LeetCode

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

Wallys/DR7915/MT7915/MT7975/industrial mini pcie card 2T2R

Cindy-wallys

MT7915 MT7975 / 2.4G&5G

信息论与编码:信道编码的基本概念

timerring

11月月更 信息论

【案例】数字化浪潮中,云科通明湖如何助力能源行业弯道超车?

云科通明湖

负载均衡

mysql经典面试题

@下一站

MySQL 编程 dba 11月月更

《大厂面试》之JVM篇21问与答

钟奕礼

Java java程序员 java面试 java编程

汇总LED显示屏专业知识

Dylan

LED LED显示屏 led显示屏厂家

【LeetCode】字母大小写全排列Java题解

Albert

算法 LeetCode 11月月更

【11.11-11.18】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动

腾讯会议后台研发效能提升之路

博文视点Broadview

前端leetcde算法面试套路之回溯

js2030code

JavaScript LeetCode

适合小白Web前端入门JS基础知识梳理汇总

千锋IT教育

开源共建 | Dinky 扩展批流统一数据集成框架 ChunJun 的实践分享

袋鼠云数栈

某邮储银行数据归集系统在HTAP场景下的选型与实践

OceanBase 数据库

阿里P8整理的新版手抄本,所有Java知识操作

钟奕礼

Java java程序员 java面试 java编程

让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5%

Serverless Devs

阿里云 Serverless

为什么你的敏捷总是不成功?

敏捷开发

BI口碑分析,Quick BI何以连续入选魔力象限

巷子

StartDT奇点云通过CMMI5全球软件领域最高级别成熟度认证

奇点云

CMMI 奇点云

如何通过Java代码给Word文档添加水印?

在下毛毛雨

Java word 水印

让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5%

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

Spring Bean的生命周期(详细解读)

千锋IT教育

日志异常检测准确率低?一文掌握日志指标序列分类

云智慧AIOps社区

深度学习 日志分析 时间序列 指标预测 日志异常

用javascript分类刷leetcode3.动态规划(图文视频讲解)

Geek_07a724

JavaScript LeetCode

3.1版本【HarmonyOS 第一课】正式上线!参与学习赢官方好礼>>

HarmonyOS开发者

HarmonyOS

【计算讲谈社】第十二讲|数据中心那些事儿

大咖说

数据中心 碳中和

MyBatis 延迟加载代码详解

千锋IT教育

国标解读|从关键信息基础设施安全国标看软件供应链安全

墨菲安全

SBOM 软件供应链安全

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