Java - Referências de string e array

Apenas comecei a aprender Java e vi que tanto string quanto array são tipos de referência. Não entendo o seguinte problema:

    String a = "a1";
    String b = "a2";
    a=b;
    a = "rrr";

    System.out.println(a);
    System.out.println(b);

    int[] arr1 = {1,2,3};
    int[] arr2 = arr1;
    arr2[0]= 19;
    System.out.println(arr1[0]);

Quando imprimo, recebo:"rrr" "a2" 10

ao usar matrizes - eu entendo que elas estão apontando para o mesmo objeto, portanto, se eu alterar a célula -, vejo a diferença em arr1 e arr2.

sobre "string" - pelo que entendi quando faço: a = b não deve ser: "deixea apontar para o mesmo objeto queb está apontando "- o que significa que, se eu alterar um, ambos também precisam ser alterados?

Obrigado!!

questionAnswers(4)

yourAnswerToTheQuestion