写点什么

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

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

关注

评论

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

跨境电商如何通过打好数据底座,实现低成本稳步增长

OceanBase 数据库

跨境电商 oceanbase

OpenKruise v1.2:新增 PersistentPodState 实现有状态 Pod 拓扑固定与 IP 复用

阿里巴巴云原生

阿里云 云原生 开源项目

不止于观测|阿里云可观测技术峰会正式上线

阿里巴巴云原生

阿里云 开源 云原生 可观测峰会 行业实践

《阅读的方法》:怎么找阅读的乐趣?

郭明

读书笔记

控制并发线程数的Semaphore

急需上岸的小谢

6月月更

java面向对象之多态(向上转型和向下转型)

写代码两年半

面向对象 javase 多态 6月月更

AQUANEE尚处初期,已获币安等顶尖机构青睐

BlockChain先知

python偏函数

红毛丹

Python 6月月更

在线摩斯密码在线翻译转换工具

入门小站

工具

Hoo研究院 | OlympusDao调研报告

区块链前沿News

DAO Hoo 算法稳定

Vue 组件如何在设置 Props

devpoint

Vue Vue3 InfoQ极客传媒15周年庆

数据库每日一题---第6天:删除重复的电子邮箱

知心宝贝

数据库 程序员 前端 后端 6月月更

在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格

蒋川

低代码 Vue3 组件 表格 Element Plus

3分钟初识网络功能虚拟化NFV

穿过生命散发芬芳

6月月更 NFV

API 网关 Apache APISIX 在 Amazon Graviton3 上的安装与性能测试

亚马逊云科技 (Amazon Web Services)

apisix;Tech 专栏

架构实战营第三模块课后作业

Geek_53787a

课后总结

linux去掉空行的几种方法

入门小站

Linux

架构设计-外包学生管理系统

Roy

架构实战营

在这些根技术里,读懂华为的“三观”

脑极体

架构实战营模块 3 作业

Naoki

架构实战营

选择数字资产托管人时,要问的 6 个问题

BlockChain先知

Redux之利用 distinct 属性进行性能优化

岛上码农

flutter ios 安卓开发 跨平台应用 6月月更

Spring Data JPA 极速入门

Geek_rze78a

spring data 6月月更

数据结构与算法之时间复杂度与空间复杂度

未见花闻

6月月更

学生管理系统详细架构

intelamd

关于volitile相关知识

北洋

6月月更

RPA能否创造新业态?如何优化组织结构?如何助力疫情中的企业?

王吉伟频道

人工智能 RPA 机器人流程自动化 机器人开发 爱死机

vue指令-4

小恺

6月月更

GameFi如何破圈,AQUANEE靠真正“P2E”展现风采

股市老人

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