En vanlig variabel lagras i minnet så länge programmet håller på och exekverar det kodblock som den deklarerades i. Ett sådant kodblock omges av { och }. Om du tex har en if-sats och sedan ett kodblock som ska utföras om villkoret var uppfyllt kommer en variabel som deklareras inne i det blocket att tas bort ur minnet när raden efter if-satsen ska utföras. Om du nu av någon anledning vill deklarera en variabel som inte försvinner kan du använda new.
Generellt kan man säga att new ska användas så lite som möjligt. Om det är möjligt, försök strukturera om programmet istället så att variabler kan deklareras på ett naturligt sätt. I vissa fall går det inte att undvika new, tex om du vill ha en variabel/datatyp som det ska gå att ändra storleken på efter det att den deklarerats. Det kan handla om någon typ av listklass tex.
