Перейти к библиотеке AbacusUtil . Он предоставляет точный API, который вы хотите, и многое другое:
IntStream.iterate(1, n -> n + 1).takeWhile(n -> n < 10).forEach(System.out::println);
Объявление: Я разработчик AbacusUtil.
За возможным исключением "коротких", которое возможно является определенной тратой пространства - иногда буквально, они - все лошади для курсов:
[*], Например, в Горячей точке на архитектуре Pentium, float и двойные операции обычно занимают точно то же время , за исключением подразделения.
не становятся слишком срываемыми в использовании памяти этих типов, если Вы действительно не понимаете его. Например:
, Очевидно, существуют определенные вызовы API (например, различные призывы к не-ЦП интенсивные задачи, которые по некоторым причинам берут плавания), куда просто необходимо передать его тип, который он просит...!
Примечание, что Строка не является типом примитива, таким образом, это действительно не принадлежит этого списка.
Интервал Java составляет 32 бита, в то время как длинными составляют 64 бита, поэтому когда необходимо представить целые числа, больше, чем 2^31, долго друг. Для типичного примера использования длинных см. System.currentTimeMillis ()
, байт А составляет 8 битов, и самый маленький адресуемый объект на самых современных аппаратных средствах, таким образом, это необходимо при чтении двоичных данных из файла.
А дважды имеет дважды размер плавания, таким образом, Вы обычно использовали бы двойное, а не плавание, если у Вас нет некоторых ограничений на размер или скорость, и плавание имеет достаточную способность.
короткий А составляет два байта, 16 битов. По-моему, это - наименее необходимый тип данных, и я действительно не видел, что в фактическом коде, но снова, это могло бы быть полезно для чтения форматов двоичного файла или выполнения низкоуровневых сетевых протоколов. Например, IP номера портов составляют 16 битов.
Символ представляет отдельный символ, который составляет 16 битов. Это - тот же размер как короткое, но короткое подписывается (-32768 к 32 767), в то время как символ не подписан (от 0 до 65 535). (Это означает, что IP номер порта, вероятно, более правильно представлен как символ, чем короткое, но это, кажется, вне намеченного объема для символов...)
Для действительно authorative источник на этих деталях, se спецификация языка .
JavaЭто относительно данных, с которыми Вы имеете дело. Нет никакого смысла с помощью типа данных, который резервирует значительную часть памяти, когда Вы только имеете дело с небольшим количеством данных. Например, много типов данных резервирует память, прежде чем они даже использовались. Возьмите массивы, например, они зарезервируют сумму по умолчанию (скажите, 256 байтов < - пример!), даже если Вы только используете 4 байта из этого.
См. эту ссылку для Вашего ответа
Я предполагаю, что существует несколько целей к типам того вида:
1) Они осуществляют ограничения на размер (и знак) переменных, которые могут быть сохранены в них.
2) Они могут добавить немного ясности для кодирования (например, если Вы используете символ, тогда любой читающий код знает то, что Вы планируете сохранить в нем).
3) Они могут сохранить память. если у Вас есть большой массив чисел, все из которых будут не подписаны и ниже 256, можно объявить его как массив байтов, сохранив некоторую память по сравнению с тем, если Вы объявили массив ints.
4) Вам нужно долго, если числа, которые необходимо сохранить, больше, чем 2^32 и двойное для очень больших чисел с плавающей точкой.
Можно взглянуть здесь о типах примитивов в Java.
главный интерес между этими типами использование памяти. Например, интервал использование 32 бита, в то время как байт только использование 8 битов.
Предполагают, что Вы работаете над большой структурой (массивы, матрицы...), тогда Вы будете лучше заботиться о типе, который Вы используете для сокращения использования памяти.
Примитивные типы данных требуются, потому что они - основание каждого сложного набора.
длинный, дважды, байт и т.д. используется при необходимости в только маленьком целом числе (или безотносительно), который не тратит впустую пространство "кучи".
я знаю, существует достаточно RAM в наши времена, но Вы не должны тратить впустую ее.
мне нужны "маленькие" для базы данных и операций с потоками.