自从我上次使用Java以来已经有几年了.你能告诉我在Java中可以更优雅地解决哪些问题吗?
我知道Java的以下好处:
Java'到处运行',
Java支持单位和措施
(据说)Java中的延迟更好
J2EE(我不认为.Net中有等价物)
对泛型的不同方法(使用奇怪的循环定义,如"Enum>",见Ken Arnold)
什么是泛型 - 是否有优雅的Java示例无法用C#表示?或其他API或库?
谢谢,
吉日
PS一些一般链接:
维基百科比较文章
比较Java和C#Generics - Jonathan Pryor的网络日志
Jon Skeet.. 7
Java泛型与C#泛型非常不同.是的,有些地方意味着它可以更优雅 - 通常在通配符和方差方面.在另一方面,通配符一般知之甚少(我很肯定自己包括在营地)和类型擦除的全业务意味着在一般我远远更喜欢.NET泛型.
Java"赢得"IMO的一个相当不同的地方是它的枚举支持.C#枚举基本上是命名数字 - Java更加面向对象.类似的效果可大多使用C#中的嵌套类来实现,但更多的框架支撑件(一个相当于EnumSet
)和开关支撑将受到欢迎.
我也喜欢在Java中限制对包(命名空间)的可见性的能力 - 尽管这是我更喜欢C#的Java访问规则的唯一方面.
多年来我已经广泛使用了Java和C#,我自己的感觉是在语言层面上C#远远领先于Java.实际上,良好的跨平台支持和大量现有代码库是Java在此时优于C#和.NET的两个显着优势.
Java泛型与C#泛型非常不同.是的,有些地方意味着它可以更优雅 - 通常在通配符和方差方面.在另一方面,通配符一般知之甚少(我很肯定自己包括在营地)和类型擦除的全业务意味着在一般我远远更喜欢.NET泛型.
Java"赢得"IMO的一个相当不同的地方是它的枚举支持.C#枚举基本上是命名数字 - Java更加面向对象.类似的效果可大多使用C#中的嵌套类来实现,但更多的框架支撑件(一个相当于EnumSet
)和开关支撑将受到欢迎.
我也喜欢在Java中限制对包(命名空间)的可见性的能力 - 尽管这是我更喜欢C#的Java访问规则的唯一方面.
多年来我已经广泛使用了Java和C#,我自己的感觉是在语言层面上C#远远领先于Java.实际上,良好的跨平台支持和大量现有代码库是Java在此时优于C#和.NET的两个显着优势.