Подписанные и неподписанные типы данных в java

У меня есть немного путаницы относительно того, какие неподписанные типы данных поддерживает Java?

Я прочитала этой но я не понимаю его очень сложного объяснения (по крайней мере для меня).

2 ответов


Java поддерживает только подписанные типы (кроме char), потому что предполагалось, что один тип проще для начинающих понять, чем иметь два типа для каждого размера. В C это было воспринято как источник ошибки, поэтому поддержка неподписанных типов не была включена.

Итак, дизайнеры выбрали четыре размера

  • byte, 8 бит
  • short, 16 бит
  • int, 32 бит
  • long, 64 немного.

и чтобы все было последовательно, все они были подписаны так же, как float и double однако подписанный байт редко бывает очень полезен и, учитывая, что они разрешены без знака 16-бит char наличие unsigned byte возможно, имело больше смысла.

где это не работает так хорошо, когда вам нужно взаимодействовать с системами, которые используют целочисленные типы без знака. Это может быть источником путаницы и какой тип использовать, потому что часто это не имеет никакого разница. Java 8 также будет иметь операции для поддержки неподписанных типов. Они добавляются в классы-оболочки, такие как Integer и Long


все числовые типы Java подписаны. Это было решение дизайнеров. Некоторые люди думают, что это была плохая идея подписали байт. Блох в интервью сказал:"Я собираюсь сказать, что самая странная вещь о платформе Java заключается в том, что тип байта подписан."http://www.theserverside.com/news/thread.tss?thread_id=51624