Я заметил, что всегда использовал int и удваивается, независимо от того, насколько маленьким или большим должно быть число. Так в java, более эффективно использовать byte
или short
вместо int
и float
вместо double
?
Итак, предположим, что у меня есть программа с множеством целых и двойных чисел. Стоит ли проходить и заменять мои байты или шорты, если я знаю, что число будет соответствовать?
Я знаю, что у java нет беззнаковых типов, но могу ли я что-нибудь сделать, если бы знал, что число будет только положительным?
Под эффективным я в основном имею в виду обработку. Я бы предположил, что сборщик мусора будет намного быстрее, если все переменные будут иметь половинный размер и что вычисления, вероятно, тоже будут несколько быстрее. (Я думаю, так как я работаю на Android, мне нужно немного беспокоиться о оперативной памяти)
(Я бы предположил, что сборщик мусора имеет дело только с объектами, а не с примитивами, но все же удаляет все примитивы в оставленных объектах, верно?)
Я попробовал это с небольшим приложением Android, которое я имею, но действительно не замечал разницы вообще. (Хотя я ничего не "с научной точки зрения" измерял.)
Я ошибаюсь, полагая, что это должно быть быстрее и эффективнее? Я не хотел бы проходить и менять все в массивной программе, чтобы узнать, что я потратил впустую свое время.
Стоит ли делать это с самого начала, когда я начинаю новый проект? (Я имею в виду, я думаю, что каждый маленький кусочек мог бы помочь, но с другой стороны, если так, то почему не кажется, что кто-то делает это)