Я читал о значениях и ссылочных типах, и вопрос, на который я не мог найти четкого ответа, состоял в том, почему примитивы типа int/double и т. Д. Не являются ссылочными типами, например, строками. Я знаю, что строки/массивы/другие объекты могут быть довольно большими по сравнению с ints (который я видел, был основным pro of reference), поэтому единственная причина не делать ссылочный тип этих примитивов - это потому, что это было бы чрезмерно убито?Почему примитивы не являются ссылочным типом?
1
A
ответ
1
Это относится только к некоторым языкам программирования, и это обычно делается как оптимизация (во избежание необходимости выполнять разметки или распределения памяти для таких простых типов). Тем не менее, существуют языки, которые делают базовые числовые типы, а объекты, определенные программистом, выглядят и ведут себя одинаково, иногда выбирая между истинным объектом и простым объектом автоматически в компиляторе или интерпретаторе, чтобы поддерживать эффективность, когда объектные возможности не используются.
Python и Scala - примеры, где основные целые и обычные объекты неразличимы; Java, C++ и C - примеры, в которых встроенные типы отличаются от типов, определенных программистом.
Смежные вопросы
- 1. Разница между ссылочным типом и типом объекта?
- 2. Строка является ссылочным типом
- 3. Являются ли переменные объекта javascript только ссылочным типом?
- 4. Пустой финал с ссылочным типом
- 5. Может ли тип быть ссылочным типом и типом значения одновременно?
- 6. Является статическим булевым ссылочным типом в Swift?
- 7. Как целочисленный массив может быть ссылочным типом?
- 8. В массиве строк C# отдельные элементы массива являются ссылочным типом или типом значения?
- 9. Являются ли примитивы Java неизменяемыми?
- 10. Являются ли примитивы синхронизации AtomicInteger?
- 11. Является ли объект ссылочным типом или типом значения?
- 12. C++ - экземпляр шаблона со ссылочным типом
- 13. Ошибка: тип «TEntity» должен быть ссылочным типом
- 14. Как сделать выражение типа выражения ссылочным типом?
- 15. Действительно запутано между объектом и ссылочным типом
- 16. Необязательный параметр должен быть ссылочным типом
- 17. Является ли Static Class ссылочным типом или типом значения?
- 18. Is Guid считается типом значения или ссылочным типом?
- 19. Создание объекта с другим ссылочным типом и типом экземпляра
- 20. jdt: Проверьте, является ли IField ссылочным типом
- 21. Конфликт в том, что объект является ссылочным типом
- 22. Если P не является ссылочным типом: если A является ссылочным типом, ref-определитель типа A игнорируется для вывода типа
- 23. Почему объект [] хранит примитивы?
- 24. Являются ли примитивы Java первоклассными гражданами?
- 25. Является ли C# динамическим POD значением или ссылочным типом?
- 26. C# Разница между ссылочным типом и концепцией «Mutable»?
- 27. Массив в C# является ссылочным типом, почему они действуют как типы значений?
- 28. Почему бокс-примитивы не поддерживает всех операторов?
- 29. Почему JavaScript-примитивы не instanceof Object?
- 30. Почему Chrome рассматривает прототип объекта, ссылочным типом которого является Date как «Object {}», а не «Date {}»?
Какой язык программирования вы говорите? –
C# и java в основном – relysis