A configuration is an object that stores your common (application level) settings and defines certain variables that you want to be available in all templates. Also it deals with the creation and caching of Template instances. A configuration is a freemarker.template.Configuration instances, that you can create with its constructor. An application typically uses only a single shared Configuration instance.
Configurations are used by the Template methods, especially by process method. Each Template instance has exactly one Configuration instance associated with it, which is assigned to the Template instance by the Template constructor; you can specify a Configuration instance as its parameter. Usually you obtain Template instances with Configuration.getTemplate (not by directly calling the Template constructor), in which case the associated Configuration instance will be the one whose getTemplate method has been called.