Подтвердить что ты не робот

Является ли Java различием между типом значений и ссылочным типом

С# делает различие этих двух. Ява делает то же или по-другому?

4b9b3361

Ответ 1

В Java все объекты и перечисления являются ссылочными типами, и все примитивы являются типами значений. Различие между ними такое же, как и в С# относительно семантики копирования, но вы не можете определить новый тип значения в Java.

Ответ 2

Фактически, все в Java передается по значению, а ссылки являются особым типом значения, так же как указатели являются значениями в C. Подробнее о семантике здесь:

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

С#, с другой стороны, имеет реальные ссылки a la С++, которые не связаны с ссылочными значениями... Может ли это запутать больше, чем это?

Ответ 3

В Java примитивы являются типами значений, классы и массивы являются ссылочными типами.