public static void main(String[] args) {

   String str1 = "I love Java";

   String str2 = str1;//обе переменные-ссылки указывают на одну строку.
   System.out.println(str2);

   str1 = "I love Python";//но поведение str1 никак не влияет на str2
   System.out.println(str2);//str2 продолжает указывать на строку "I love Java", хотя str1 уже указывает на другой объект
}
пример из этой статьи: https://javarush.com/groups/posts/1946-neizmennoe-v-java-final-konstantih-i-immutable не понял пример... в какой ситуации вообще может поменяться переменная 2 (без изменения порядка присвоения), если мы меняем переменную 1? мы же не меняем значение в переменной 2... и причём тут immutable... в String Pool создалась просто другая ссылка на новую стрингу... для наглядности пример с примитивными переменными, результат разумеется тот же:
int a = 0;
int b = a;
System.out.println(b); // b == 0
a = 1;
System.out.println(b); // b == 0