В Java есть две области памяти: стек и куча. В куче хранятся объекты, а в стеке хранятся вызовы методов и локальные переменные. Переменные экземпляра объявляются внутри класса, но не внутри метода. Переменные экземпляра обитают внутри объектов, которым принадлежат.
Локальные переменные объявляются внутри методов, это касается и параметров метода. Они являются временными, существуют, пока метод находится в стеке, то есть пока метод не достиг закрывающейся скобки. Если локальная переменная ссылается на объект, то в стек помещается только она, то есть ссылка (или пульт управления), а объект находится в куче.