`
shanyou
  • 浏览: 86202 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

《论C#与Java之异同》一文已更新[转载]

阅读更多

作者 Hartmut Wilms译者 李剑 发布于 2007年5月4日 上午8时0分

原文:http://www.infoq.com/cn/news/2007/05/comparison-csharp-java-updated

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



分享到:
评论

相关推荐

    论C#与Java之异同

    ### 论C#与Java之异同 #### 引言 Dare Obasanjo撰写的这篇详尽且精准的文章——《论C#与Java之异同》首次发布于2001年,随着时间的推移,它已经成为了一个比较这两门语言的权威资料。基于C# 2.0和Java SE 6的新...

    c#与java异同(绝世之作)

    "C#与Java异同" C#和Java是两种流行的编程语言,都是面向对象的编程语言,但它们之间存在着许多异同点。本文将对C#和Java进行比较,总结它们之间的相同点和不同点,以便更好地理解这两种语言。 一、C#、C++和Java...

    NIIT ISAS C#与JAVA的异同资料及简单ppt

    首先,C#是由微软公司推出的,主要用于.NET框架,而Java由Sun Microsystems(现已被Oracle收购)开发,其目标是实现“一次编写,到处运行”。这使得Java在跨平台兼容性上具有明显优势,因为C#的跨平台支持主要依赖于...

    C# 代码转换为 Java C# To Java Converter

    C# 代码转换为 Java C# To Java Converter 解除限制 C# 代码转换为 Java C# To Java Converter 解除限制 C# 代码转换为 Java C# To Java Converter 解除限制

    C# To JAVA Converter v17.10.6

    C# To Java converter是一款将C#代码片段或者C#项目转换为JAVA的工具。 转换所有版本的C#代码 评估所有引用的程序集和.NET项目,以便更完整地解析外部引用 许多转换和格式化选项 将C#代理和lambdas转换为Java接口...

    C#调用Java接口演示

    然而,对于C#调用Java接口,最常用且推荐的方法是使用`Java Native Interface (JNI)`,它允许Java代码调用本地(非Java)代码,并反之亦然。这里我们将使用IKVM.NET,这是一个开源项目,它实现了.NET运行时的Java...

    C#与JAVA平台通用DES

    C#与JAVA通用DES: 1、C#平台上的加密与解密 2、JAVA平台上的加密与解密 3、C#平台上的加密,能在JAVA平台上解密 4、JAVA平台上的加密,能在C#平台上解密 这个工具类,是基于平台的,不调用任何第三方软件,已经运用...

    C# To JAVA Converter v17.10.6(最新破解版)

    5. 静态与实例方法:C#中的静态成员和Java的静态方法有相似之处,但在类结构和继承上有所不同,转换时要确保语义不变。 6. Lambda表达式:C#的lambda表达式和Java 8及以后版本的Lambda有异曲同工之妙,但语法略有...

    C#与JAVA的比较

    C#与JAVA这两种现代高级编程语言在许多方面都有着显著的相似之处。这些相似性主要源于两者的设计理念和技术背景,特别是它们都受到了C++语言的重要影响。 1. **平台独立性**:C#和JAVA语言编译后的结果(即字节码或...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    C# to Java 代码转换工具

    一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。软件已破解,去除了未注册版最多只能转换1000行的...

    C#和Java实现互通的RSA&DES加解密算法

    C#和Java中都有内置的类库支持RSA加密,如C#的System.Security.Cryptography.RSACryptoServiceProvider和Java的java.security.KeyPairGenerator与java.security.Signature等。 接下来,我们讨论DES(Data ...

    c# 转java工具

    - **语法差异**:虽然C#和Java在很多方面都有相似之处,但它们的语法并不完全相同。例如,C#支持属性(properties),而Java使用getter和setter方法;C#有async/await异步编程模型,Java则使用Future和Callable。 ...

    c# java互相转换工具

    标题中的"C# Java互相转换工具"指的是一个软件或库,旨在帮助开发者在C#和Java之间进行代码迁移或互操作。这个工具可能是为了方便那些在两个不同平台间工作或者需要跨语言共享代码的开发人员。从描述中的链接来看,...

    c#代码转java代码工具

    1. **语法差异**:C#和Java的语法有相似之处,但也有很多不同,如C#的属性(Properties)与Java的getter/setter方法,C#的Lambda表达式与Java 8的Lambda,以及C#的async/await与Java的CompletableFuture。...

    C#和java 之间基于Socket的通信

    本话题主要探讨了两种常用编程语言——Java和C#之间如何利用Socket进行通信。Socket是网络编程的基本接口,允许应用程序通过网络发送和接收数据。以下是关于"Java和C#之间基于Socket的通信"的详细知识点: 1. **...

    [JAVA&C#]C#&Java差异手册.pdf

    《JAVA&C#]C#&Java差异手册》深入解析了C#与Java两种流行编程语言之间的异同,为初学者提供了一个清晰的对比视角。本文将根据提供的标题、描述及部分内文,详细阐述C#与Java的关键差异点,帮助读者理解两者在语言...

    C# to Java Converter 19.6.23.0完美破解版

    C# to Java Converter完美破解,不再有转换行数限制。完美利器!

    C#调用java类、jar包方法

    首先,要理解C#与Java之间的互操作性是通过Java Native Interface (JNI) 实现的,但直接使用JNI会非常复杂。为简化这个过程,我们可以借助一些第三方工具或库,如IKVM.NET。IKVM.NET是一个开源项目,它实现了Java...

    JAVA类库转换成C#类库工具

    - 由于版本差异,有些Java库可能与特定版本的IKVM不兼容,需要不断更新和测试。 6. **替代方案**: - 如果IKVM不能满足需求,可以考虑使用其他技术,如JNBridge、Remoting或Java/.NET Interop服务,这些工具提供...

Global site tag (gtag.js) - Google Analytics