From API about setDefault method: "Sets the default locale for this instance of the Java Virtual Machine." So, as Locale.FRENCH, creates an instance of Locale class, this object can not be collected by GC until the end of the program. Now about static an GC: Static class or value can not be collected by GC. They are defined at compile time and are attached to class code. GC exists to free memory alocated during execution time for class instances (objects). Hope it helps!