in below code although I am updating StringBuilder roar3 inside roar(String roar1, StringBuilder roar3) method but how it affects roar2 in main() method? Same thing does not affect int x or y in intUpdate(int x, int y) also not for String roar1.
public class TestReference {
    public void roar(String roar1, StringBuilder roar3) {
        roar1.concat("!!!");
        roar3.append("!!!");
    }
    public void intUpdate(int  x, int y) {
        x=1;
        y=2;
    }
    public static void main(String[] args) {
        String roar1 = "roar";
        StringBuilder roar2 = new StringBuilder("roar");
        new TestReference().roar(roar1, roar2);
        System.out.println(roar1 + " " + roar2);
        int x=-1,y=-2;
        new TestReference().intUpdate(x, y);
        System.out.println(x + " " + y);
    }
}
 
    