Если я скажу, что определяю число, откуда я знаю, что использовать байты, короткие, int или long?
В зависимости от вашего прецедента. Нет огромного штрафа за использование int
, а не short
, если только у вас нет миллиардов номеров. Просто рассмотрите диапазон, который может использовать переменная. В большинстве случаев разумно использовать int
, диапазон которых составляет от 2,147,483,648 до 2,147,483,647, а long
обрабатывает номера в диапазоне +/- 9,22337204 * 10 . Если вы не уверены, long
особо не пострадает.
Единственными причинами, по которым вы можете использовать byte
, является то, что вы храните данные байта, такие как части файла, или делаете что-то вроде сетевой связи или сериализации, где важно количество байтов. Помните, что байты Java также подписаны (от -128 до 127). То же самое для краткости - может быть полезно сохранить 2 ГБ памяти для массива с миллиардными элементами, но не особенно полезно для многих других, чем, опять же, сериализация с определенным выравниванием байтов.
Это означает, что я могу использовать только один из них для определенного числа?
Нет, вы можете использовать любые, которые достаточно велики для обработки этого числа. Конечно, десятичные значения нуждаются в double
или float
. Двойной вариант обычно идеален из-за его высокой точности и нескольких недостатков. Однако некоторые библиотеки (например, трехмерный рисунок) могут использовать float. . Помните, что вы можете привести числовые типы (например, (byte) someInt
или (float) functionReturningADouble();
Прочтите https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – reto
Проверьте [здесь] (http://stackoverflow.com/questions/1539793/in-java-does- any-use-short-or-byte) для случаев, когда полезно использовать 'byte' и' short'. В противном случае большинство разработчиков просто по умолчанию используют 'int', пока им не придется обрабатывать очень большие числа, а затем переключитесь на 'long'. – CubeJockey
Так что, в принципе, 'int' может обрабатывать все числа, если они не слишком длинны? –