În limbajul de codare Java®, se fac în mod constant referințe la obiecte, șiruri și variabile, chiar dacă programatorul nu cunoaște acele referințe. Aceste referințe comunică direct cu colectorul de gunoi, o funcție care adună informații inutile și le aruncă, astfel încât să nu mai ocupe memorie. În mod implicit, toate referințele sunt referințe puternice și sunt setate fără nicio codificare, ceea ce înseamnă că nu sunt eliberate colectorului de gunoi. O referință soft permite ca datele să fie aruncate. Este referința de nivel mediu pentru toate referințele care nu sunt puternice.
Ori de câte ori un programator face ceva cu Java®, fie că este la fel de simplu ca crearea unui șir sau crearea de funcții complexe, se face o referință. Programatorul nu trebuie să scrie o comandă de referință; referința se face automat și este, implicit, o referință puternică. Aceasta înseamnă că datele din referință nu pot fi aruncate, deoarece sunt legate de obiecte integrale necesare pentru întregul script.
Totuși, unele date trebuie aruncate, deoarece altfel ocupă multă memorie. De exemplu, dacă un programator construiește un script în care sunt folosite numere de serie sau sunt adunate sau create alte informații temporare, păstrarea acestor informații devine dăunătoare. Programul Java® ar refuza să arunce informațiile, chiar și atunci când nu sunt necesare, iar scriptul ar avea nevoie de din ce în ce mai multă memorie pentru a funcționa.
Specificând un șir sau o secțiune ca referință soft, care trebuie plasată în codificare, aceasta îi spune colectorului de gunoi că datele pot fi eliberate. Odată eliberată, șirul sau secțiunea va citi „null”. Colectorul de gunoi, în funcție de setarea sa, va decide când datele ar trebui aruncate.
Există trei referințe neputernice: referință soft, referință slabă și referință fantomă. Referința slabă este cea mai slabă, iar datele sale sunt aruncate rapid. Referințele soft, care sunt cele mai bune pentru scripturile în care datele temporare pot fi utilizate de mai multe ori, sunt următoarele. O referință fantomă este aruncată aproape automat, într-o secundă, și ar trebui folosită cu moderație.
Durata în care rămâne o referință soft depinde de obicei de cantitatea de memorie din computer. Dacă memoria este plină, atunci colectorul de gunoi va distruge mai întâi toate referințele slabe. Când toate referințele slabe au dispărut și dacă memoria mai trebuie să curețe date, atunci referințele soft vor fi eliminate în continuare.