Originariamente inviato da ale60
Hai ragione parlavo di java da quel che ho capito se io continuo ad allocare dinamicamente
occupo spazio sulla heap fino a riempirla se poi io dealocco libero spazio ma visto che metto gli elementi uno di seguito all'altro non mi rivela lo spazio che ho liberato e qui interviene la deframentazione che ad esempio shifta tutti gli elementi da una parte in modo tale che quando dovrò inserire un nuovo elemento ci sarà lo spazio?
semplicemente questo è il compito del garbage collector, quella tu chiami deframmentazione è semplicemente "l'allarme" che fa scattare il garbage collector e la macchina virtuale di java si adopera per ottimizzare l'uso della memoria; la memoria è solitamente RAM, quindi volatile.

ci sono linguaggi che hanno e altri che non hanno il garbage collector, non è una funzionalità scontata.