对于正在盯着学习Java的c#开发人员来说,应该指出两种语言之间存在哪些重大差异?
也许有些人可能认为事情是一样的,但是有一些不容忽视的导入方面?(或者你真的搞砸了!)
也许就OOP结构,GC的工作方式,引用,部署相关等而言.
Jon*_*eet 121
一些问题摆脱了我的头脑:
byte
用Java签名(不幸的是)static
否则它将具有对包含类的实例的隐式引用.sof*_*eda 17
令我感到惊讶的是,没有人提到过属性,这在C#中是非常基础的,但在Java中却没有.C#3及以上版本也自动实现了属性.在Java中,您必须使用GetX/SetX类型方法.
另一个明显的区别是Java中缺少C#3中的LINQ和lambda表达式.
Java中缺少一些其他简单但有用的东西,如verbatim字符串(@""),运算符重载,使用yield和预处理器的迭代器在Java中也缺失.
我在C#中最喜欢的一个是命名空间名称不必遵循物理目录结构.我非常喜欢这种灵活性.
Sne*_*eal 10
有很多不同之处,但我想起了这些:
.NET已经确定了泛型; Java已经删除了泛型.
区别在于:如果你有一个ArrayList<String>
对象,在.NET中,你可以告诉(在运行时)对象有类型ArrayList<String>
,而在Java中,在运行时,对象是类型ArrayList
; 该String
部分丢失.如果您将非String
对象放入其中ArrayList
,则系统无法强制执行该操作,并且在您尝试提取项目后,您只会知道它,并且转换失败.
我在C#中错过的一件事是强制处理已检查的异常.在C#中,人们通常不会意识到方法可能会抛出的异常,并且您需要文档或测试来摆脱它们.在带有已检查异常的Java中不是这样.
归档时间: |
|
查看次数: |
17075 次 |
最近记录: |