Java: différence entre une référence forte / douce / faible / fantôme

J'ai lu cet article sur le sujet, mais je ne le comprends pas vraiment. Veuillez me donner quelques conseils et des exemples pour décrire les concepts.