Defining page here as a single route, and the app as all routes combined.
controllers
are instantiated every time they're injected into something, through a route or by using ngController. You'll get a new one every time you visit a page so data you're storing on them will perish between page changes.
services
are singletons so are instantiated only the first time and then persist throughout the life of the app, which ends when the site itself is refreshed or the user surfs away. Factories
are not instantiated so they too can be used for persistent data.
templates
are not instances, they're just html that is parsed against scope variables.