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

Какова цель long, double, byte, char в Java?

Итак, я изучаю java, и у меня есть вопрос. Кажется, что типы int, boolean и string будут полезны практически для всего, что мне когда-либо понадобится с точки зрения переменных, за исключением, возможно, float может использоваться, когда десятичные числа необходимы в числе.

Мой вопрос в том, являются ли другие типы, такие как long, double, byte, char и т.д. когда-либо используемые в обычном, повседневном программировании? Какие практические вещи они могут использовать? Для чего они существуют?

4b9b3361

Ответ 1

За возможным исключением "коротких", которые, возможно, являются пустой тратой пространства - иногда буквально, они все лошади для курсов:

  • Используйте int, когда вам не нужны дробные числа, и у вас нет причин использовать что-либо еще; на большинстве процессоров/конфигураций ОС это размер числа, с которым машина может справиться наиболее эффективно;
  • Используйте double, когда вам нужны дробные числа, и у вас нет причин использовать что-либо еще;
  • Используйте char, когда вы хотите представить символ (или, возможно, редкие случаи, когда вам нужна двухбайтная беззнаковая арифметика);
  • Используйте байт, если вам нужно просто манипулировать подписанным байтом (редко!) или когда вам нужно перемещаться вокруг блока байтов,
  • Используйте boolean, когда вам нужен простой флаг "да/нет";
  • Используйте длинный для тех случаев, когда вам нужно целое число, но где величина может превышать 2 миллиарда (размеры файлов, измерения времени в миллисекундах/наносекундах, в расширенном использовании для уплотнения нескольких частей данные в одно число);
  • Используйте float для тех редких случаев, когда вы либо (a) храните огромное количество из них, либо экономия памяти, или (b) выполняют огромное количество вычислений и могут позволить себе потерю точности. Для большинства приложений "float" предлагает очень низкую точность, но операции могут быть в два раза быстрее - стоит проверить это на вашем процессоре, однако, чтобы найти, что это действительно так! [*]
  • Используйте короткий, если вам действительно нужна 2-байтная арифметика. Существует не так много случаев...

[*] Например, в Hotspot на архитектурах Pentium f loat и двойные операции обычно занимают ровно одно и то же время, за исключением деления.

Не используйте слишком много ошибок в использовании этих типов памяти, если вы этого не понимаете. Например:

  • размер каждого объекта округлен до 16 байтов в Hotspot, поэтому объект с одним байтовым полем будет занимать точно такое же пространство, как и один объект с длинным или двойным полем;
  • при передаче параметров методу каждый тип занимает 4 или 8 байтов в стеке: вы ничего не сэкономите, изменив параметр метода, например, с помощью int до короткого! (Я видел, как люди это делают...)

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

Обратите внимание, что String не является примитивным типом, поэтому он действительно не принадлежит этому списку.

Ответ 2

java int - 32 бита, а long - 64 бита, поэтому, когда вам нужно представлять целые числа больше 2 ^ 31, длинный ваш друг. Для типичного примера использования long см. System.currentTimeMillis()

Байт - это 8 бит и наименьший адресуемый объект на большинстве современных аппаратных средств, поэтому он необходим при чтении двоичных данных из файла.

Двойной размер в два раза больше поплавка, поэтому вы обычно используете двойной, а не float, если у вас нет ограничений по размеру или скорости, а поплавок имеет достаточную емкость.

Короткий - это два байта, 16 бит. На мой взгляд, это наименее необходимый тип данных, и я действительно не видел этого в реальном коде, но, опять же, он может быть полезен для чтения форматов двоичных файлов или выполнения низкоуровневых сетевых протоколов. Например, номера портов ip - 16 бит.

Char представляет собой один символ, который составляет 16 бит. Это тот же размер, что и короткий, но короткий подписан (от -32768 до 32767), а char - без знака (от 0 до 65535). (Это означает, что номер ip-порта, вероятно, более корректно представлен как char, чем короткий, но это, кажется, вне намеченной области для символов...)

Для действительно авторитетного источника этих данных, спецификация java language.

Ответ 3

Вы можете посмотреть здесь о примитивных типах в Java.

Основной интерес между этими типами - использование памяти. Например, int использует 32 бита, тогда как байт использует только 8 бит.

Представьте, что вы работаете с большой структурой (массивами, матрицами...), тогда вам лучше позаботиться о типе, который вы используете, чтобы уменьшить использование памяти.

Ответ 4

Я предполагаю, что существует несколько целей для типов такого типа:

1) Они применяют ограничения на размер (и знак) переменных, которые могут быть сохранены в них.

2) Они могут добавить немного ясности в код (например, если вы используете char, тогда любой, кто читает код, знает, что вы планируете хранить в нем).

3) Они могут сэкономить память. если у вас есть большой массив чисел, все из которых будут без знака и ниже 256, вы можете объявить его как массив байтов, сохраняя некоторую память по сравнению с тем, если вы объявили массив ints.

4) Вам нужно долго, если числа, которые вам нужно сохранить, больше 2 ^ 32 и двойной для очень больших чисел с плавающей запятой.

Ответ 5

Требуются примитивные типы данных, поскольку они являются основой для каждого сложного набора.

long, double, byte и т.д. используются, если вам нужно только небольшое целое (или что-то еще), которое не пустит ваше пространство кучи.

Я знаю, в наше время достаточно ОЗУ, но вы не должны тратить его впустую.

Мне нужны "маленькие" для операций с базой данных и потоками.

Ответ 6

Целые числа должны использоваться для чисел в целом.
Двулокальные - это базовый тип данных, используемый для представления десятичных знаков.
Строки могут содержать по существу любой тип данных, но проще использовать ints и запутывают использование строки, за исключением текста.
Шары используются, когда вы хотите сохранить только одну букву, хотя они по существу только для ясности.
Шорты, longs и float могут не понадобиться, но если вы, например, создаете массив размером 1,00000, который должен содержать только номера менее 1000, тогда вы хотели бы использовать шорты, просто для экономии места.

Ответ 7

Это относительно данных, с которыми вы имеете дело. Нет смысла использовать тип данных, который резервирует большую часть памяти, когда вы имеете дело только с небольшим количеством данных. Например, многие типы данных сохраняют память до их использования. Например, возьмите массивы, они зарезервируют значение по умолчанию (скажем, 256 байт < - пример!), Даже если вы используете только 4 байта.

Посмотрите эту ссылку для ответа