С# делает различие этих двух. Ява делает то же или по-другому?
Является ли Java различием между типом значений и ссылочным типом
Ответ 1
В Java все объекты и перечисления являются ссылочными типами, и все примитивы являются типами значений. Различие между ними такое же, как и в С# относительно семантики копирования, но вы не можете определить новый тип значения в Java.
Ответ 2
Фактически, все в Java передается по значению, а ссылки являются особым типом значения, так же как указатели являются значениями в C. Подробнее о семантике здесь:
http://javadude.com/articles/passbyvalue.htm
С#, с другой стороны, имеет реальные ссылки a la С++, которые не связаны с ссылочными значениями... Может ли это запутать больше, чем это?
Ответ 3
В Java примитивы являются типами значений, классы и массивы являются ссылочными типами.