Mi sto preparando per un esame: dunque chiedo

in un'operazione del genere:

String a = new String ("Adriano");

cosa viene memorizzato nella stack e cosa nell'heap?