Как хранить double
Задался вчера интересным вопросом, как экономнее всего хранить числа с плавающей точкой. Понятно, что выиграют примитивы, интересно было сравнить
double[]
(массив из одного элемента) и Double
. Результат для меня был неожиданный: double/Double/double[] = 1/2/3
. Получается, что в контейнерах эффективнее хранить класс-обертку, а не массив. Если же можно использовать массивы вместо контейнеров, лучше использовать массивы: выигрыш в памяти составит более 100%!
5 комментариев:
Йех... рано-рано еще списывать С++ со счетов. В С++ можно сделать массив и шаблон из любого типа. Соответственно при этом достигается максимальная эффективность и экономия памяти.
Да, это точно.
А вот тут товарищи как следует перемывают косточки все этой дурацкой системе в Java.
>Результат для меня был неожиданный
Если бы Вы задумались над тем, что массив в Java это тоже объект, то результат неожиданным Вам не показался бы.
Согласен, я об этом задумался уже после, чтобы объяснить результат.
>массив в Java это тоже объект
Это не верно. В JVM живет три сущности - примитивы, массивы и Objectы. Массив, конечно можно кастить к Object, но это скорей грабля JVM. Нет у массива методов Object. Есть свои.
Отправить комментарий