Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2013, 23:01   #1
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию Типы данных byte, short

Добрый день!
Скажите пожалуйста вот например в java есть следующие типы данных
byte - 1b
short - 2b
int - 4b
long - 8b
Тут недавно высказали такую мысль. "какой бы тип я не выбрал ... byte или short, система (виртуальная машина - VM) будет его адаптировать под тип int, т.к. наприм. системе с 32 битной архитектурой удобней его воспринимать (из соображений производительности)". Соответственно, если я создам переменную типа byte, под нее выделится 32 бита. Вопрос в чем, а для чего нужны эти типы переменных (byte, short), если выделится все равно 4 байта??? Меньше места переменная занимать не будет....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 09.08.2013 в 23:23.
Bugrimov вне форума Ответить с цитированием
Старый 09.08.2013, 23:40   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

они нужны для того чтоб работать с переменными этих типов, а как JVM будет их хранить, с выравниванием(для повышения производительности вашего приложения!) или без, не важно.
размер переменной и диапазон от этого не меняются.

а если нет нужды в ограничении оных, то int, и вперед.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.08.2013, 23:53   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Так вот я о том же. Получается int - универсальный тип. Может громко сказано, но все же, целесообразней использовать его, нежели byte или short
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.08.2013, 00:11   #4
darknim
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Так вот я о том же. Получается int - универсальный тип. Может громко сказано, но все же, целесообразней использовать его, нежели byte или short
А ты посчитай, если тебе надо будет в памяти хранить миллиард единиц, каким типом лучше воспользоваться.
darknim вне форума Ответить с цитированием
Старый 10.08.2013, 01:27   #5
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

А еще следует помнить, что есть не только процы х86-32... и на них Java тоже есть.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 10.08.2013, 07:07   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
А еще следует помнить, что есть не только процы х86-32... и на них Java тоже есть.
Об этом я никогда не забываю...
Вопрос в другом byte вообще используется и в каких случаях (когда эффективнее использовать byte???) Зачемто же его создавали
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.08.2013, 08:59   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Об этом я никогда не забываю...
Вопрос в другом byte вообще используется и в каких случаях (когда эффективнее использовать byte???) Зачемто же его создавали
чтоб хранить числа в размером один байт, числа 0-255, ваш кэп
в том числе отпадает контроль за переполнением в коде и тп.
зависит от применения где и как, как массив байтов они будут выделены по своей стоимости скорее всего, как отдельная переменная скорее всего с выравниванем.
как части классов мне не известно.

описывать структуры данных лучше и проще в тех же типах что и заданы.
так же при сохранении интов допустим в файл(бинарный) у нас опять же выйдет несостыковка если не тот тип.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.08.2013, 09:08   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Такое разнообразие типов как по мне просто предусмотрительная перестраховка.
А вдруг понадобится
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.08.2013, 10:20   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Такое разнообразие типов как по мне просто предусмотрительная перестраховка.
А вдруг понадобится
Действительно, а вдруг
На мой взгляд Java является одним из эффективнейших языков. И не ожидаешь увидить что-нибудь вроде byte (Возникают вопросы Зачем??? Почему???)
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.08.2013, 10:28   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если у вас возникает вопрос зачем, то вам они не нужны.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типы данных sp@ker Общие вопросы Delphi 8 26.04.2011 20:48
Для типов данных char, short, int, long с квалификаторами signed, unsigned составить программу, которая, listiksasha Фриланс 4 21.02.2011 12:26
Для типов данных char, short, int, long с квалификаторами signed, unsigned составить программу, которая, listiksasha Помощь студентам 2 20.02.2011 12:57