What is a ResourceBundle and what it is used for?

John Zukowski

A ResourceBundle is like a specialized form of a Hashtable that maps strings to values. That doesn't sound too exciting by itself, but the magic of ResourceBundle allows you to have different lookup tables based upon what Locale (language/country) a user is coming in from. And, if a setting doesn't change between languages/countries, there is no need to repeat the setting in the customized bundle, as the runtime will search through several bundles until it finds a mapping (though in theory it could find none). Resource bundles also support another level of variants beyond language/country, such that you can have customized labels/messages for people in California and New York.