Java是否区分值类型和引用类型

时间:2011-03-05 02:57:44

标签: c# java value-type reference-type

C#区分了这两者。 java是做同样的还是不同的?

3 个答案:

答案 0 :(得分:22)

在Java中,所有对象和枚举都是引用类型,所有基元都是值类型。两者之间的区别与C#中的复制语义相同,但您无法在Java中定义新的值类型。

答案 1 :(得分:4)

实际上,Java中的所有内容都是通过值传递的,引用是一种特殊类型的值,就像指针是C中的值一样。更多关于语义的信息:

http://javadude.com/articles/passbyvalue.htm

另一方面,C#确实有一个实际的引用,它与参考值无关......它能不会比这更令人困惑?

答案 2 :(得分:2)

在Java中,基元是值类型,类和数组是引用类型。