我在大学学习Java,然后我被一家C#店雇用,从那时起就开始使用它.我花了我的第一个星期才意识到这两种语言几乎完全相同,接下来的两个月才弄清楚这些差异.在大多数情况下,我注意到Java所具有的C#没有的东西,因此大部分都受挫.(例如:enum类型是完整的类,而不仅仅是带有新涂层的整数)我已经开始欣赏C#世界了,但我不能说我已经很好地认识了Java以便真正地对比这两个所以我我很想获得一个社区横断面.
C#和Java的优点和缺点是什么?这包括从语言结构到可用IDE和服务器软件的所有内容.
比较和对比两者之间的语言可能非常困难,因为在很多方面,您使用的关联库与最能展示彼此之间各种优势的语言相关联.
所以我会尽量列出我能记住的或者已经发布的东西,并注意我认为谁有优势:
GUI开发(粗或细).C#与.NET结合是目前最好的选择.
自动数据源绑定.C#在LINQ方面具有很强的领先优势,同样丰富的第三方库也给予了优势
SQL连接.Java的
自动装箱.两种语言都提供它,但C#Properties为setter和getter提供了更好的设计
注解/属性.C#属性是一种更强大,更清晰的实现
内存管理 - 我所做的所有测试中的Java VM远远优于CLR
垃圾收集 - Java是另一个明显的赢家.使用C#/ .NET框架的非托管代码使这成为一场噩梦,尤其是在使用GUI时.
泛型 - 我相信这两种语言基本上都是绑在一起......我看到好的一点表明任何一方都更好.我的直觉是Java更好,但没有任何逻辑基础.我也只使用了C#generics ALLOT和Java泛型......
枚举.Java一直都是,就我而言,C#实现是不可避免的.
XML - 在这里折腾.您使用.NET获得的XML和序列化功能本身就可以胜过eclipse/Java开箱即用的功能.但是这两种产品都有很多库来帮助XML ...我已经尝试了一些,并且对它们中的任何一个都没有真正满意.我坚持使用原生的C#XML和我自己创建的一些自定义库,我已经习惯了,所以很难在这一点上给出一个很大的比较...
IDE - 对于非GUI工作,Eclipse优于Visual Studio.所以Java赢得非GUI和Visual Studio赢得GUI ...
这些都是我目前无法想到的所有项目......我相信你可以逐字挑选数百种物品来比较和对比这两项.希望这个列表是更常用功能的横截面......