Где и когда использование примитивных типов данных в Java эффективно?

Рассмотрим следующие два сегмента кода на Java,

Integer x=new Integer(100);
Integer y=x;
Integer z=x;


System.out.println("Used memory (bytes): " +   
(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()));

в которых использовалось использование памяти при тестировании в моей системе : Используемая память (байты): 287848


и

int a=100;
int b=a;
int c=a;

System.out.println("Used memory (bytes): " + 
(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()));

, в которых использование памяти было при тестировании в моей системе : Используемая память (байты): 287872



и следующие

Integer x=new Integer(100);       
System.out.println("Used memory (bytes): " +  
(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()));

и

int a=100;        
System.out.println("Used memory (bytes): " + 
(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()));

в обоих вышеупомянутых случаях использование памяти было точно таким же при тестировании в моей системе : Используемая память (байты): 287872



Оператор

System.out.println("Used memory (bytes): " + 
(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()));

отобразит общий объем памяти, используемый в настоящее время [Общая доступная память - Свободная доступная в настоящее время память], (в байтах).


В качестве альтернативы я проверил с помощью вышеупомянутых методов, что в первом случае использование памяти (287848) было ниже , чем во втором (287872) , в то время как в остальной части в двух случаях это было точно так же (287872) . Конечно и очевидно, что это должно быть так, потому что в самом первом случае y и z содержат копию ссылки, хранящейся в x, и все они (x, y и z) указывают на один и тот же / общий объект (местоположение), что означает, что первый случай лучше и более подходящий , чем второй, а в остальных двух случаях есть эквивалентные утверждения с точно таким же использованием памяти (287872) . Если это так, то использование примитивных типов данных в Java должно быть бесполезным и предотвратимым, хотя в основном они были разработаны для лучшего использования памяти и большей загрузки ЦП.все же почему в Java существуют примитивные типы данных?


Вопрос, отчасти похожий на этот, уже был размещен здесь, но не имел такого сценария.

Этот вопрос здесь.

5
задан Community 23 May 2017 в 12:29
поделиться