使い終わったインスタンスの参照にはnullを入れて速やかにメモリを
開放するのが良い、という解説をよく見るのですが、
基本的なところがよく分かってないので教えて下さい。

例えば、

File f;

private void aaa() {

  f = new File(xxx);

}

というメソッドaaaを繰り返し実行した場合、メソッドの最後でfにnullを
入れなくてもメソッドの実行時に変数fの参照先が変わるので
同じことだと理解していますが、

private void aaa() {

  File f = new File(xxx);

}

という形の場合、一度作られたインスタンスはずっと参照されたままなのでしょうか?
それとも、メソッドの実行が終わったときか、次に実行されるときに
破棄されるのでしょうか?

また、上記の形でも破棄されるのだとすれば、使ってないのに参照したままの
インスタンスがあるためにどんどんメモリ使用量が増えていくような
プログラム例はどういうものがありますか?