作者 Hartmut Wilms译者 李剑 发布于 2007年5月4日 上午8时0分
Dare Obasanjo在文中对二者的特性与概念进行了客观的分析。他的文章与其它文章的区别就在于,他从统揽全局的角度上对两种语言及各自在对应平台上的实现进行了完整的论述。因此,该文几乎可以用来当作C#和Java的参考手册。在文中,他还对关键实现做了说明,并分析了两种语言的优缺点。
文章结构如下所示:
- C#和Java的共同点是什么?
- 哪些特性是在两种语言中并存,但是有着细微差别的?
- 哪些概念是在两种语言中并存,但是相差甚远的?
- 哪些特性或者概念是只在C#中存在,而在Java中不存在的?
- 哪些特性或者概念是只在Java中存在,而在C#中中不存在的?
- 结论
其中关于泛型(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。
分享到:
相关推荐
2001年的时候,Dare Obasanjo写过一篇文章,名为《论C#与Java之异同(Comparison of Microsoft's C# Programming Language to Sun Microsystems' Java Programming Language)》,该文以其详尽与精确成为了同类文章...
c#与java异同.docx c#与java异同.docx c#与java异同.docx c#与java异同.docx c#与java异同.docx
NIIT SM2 ISAS C#与JAVA的异同
C# To Java converter是一款将C#代码片段或者C#项目转换为JAVA的工具。 转换所有版本的C#代码 评估所有引用的程序集和.NET项目,以便更完整地解析外部引用 许多转换和格式化选项 将C#代理和lambdas转换为Java接口...
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...
一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。软件已破解,去除了未注册版最多只能转换1000行的...
C#与JAVA通用DES: 1、C#平台上的加密与解密 2、JAVA平台上的加密与解密 3、C#平台上的加密,能在JAVA平台上解密 4、JAVA平台上的加密,能在C#平台上解密 这个工具类,是基于平台的,不调用任何第三方软件,已经运用...
C#调用Java接口演示
C#与java平台RSA加密解密签名验签互通案例,解决RSA在C#与java加密算法不同导致验签不过情况
C#调用java类、jar包方法C#调用java类、jar包方法C#调用java类、jar包方法C#调用java类、jar包方法C#调用java类、jar包方法。
C# to Java Converter完美破解,不再有转换行数限制。完美利器!
RSA加密算法实现以及C#与java互通加解密,解决RSA算法在java与C#相互通用
C# To Java converter是一款将C#代码片段或者C#项目转换为JAVA的工具。 别人的资源赚点积分。
详细描述了C#和JAVA两种语言的各自功能与它们之间的区别。对于要选择学C#还是JAVA的初学者,有意义。
文档讲述了"易语言.飞扬”与 JAVA、C#、C++ 的异同
列举java与C#的异同让大家能更好的进行对比,从而加深印象。 是初学者必需掌握的技能,绝对物有所值; C#与Java的异同.ppt
C#调用JAVA 方法,实现步骤:https://blog.csdn.net/a748448660/article/details/81776193
分别用C#、Java实现的RSA和DES加解密算法,包含demo源码,经实际项目验证。
C#RSA加密与JAVA解密,实现相互通信,对字符进行加密,java解密,对密文字节进行编码
c#调用java带身份验证webservice