Oczywiście że tak nie da się skopiować tablicy.
[dygresja]
Problemem Javy jest to, że każdy twierdzi, iż nie ma tam wskaźników, podczas gdy tak naprawdę, to prawie wszystko to wskaźnik, tylko że ukryty. I tak właśnie trzeba traktować każdy "obiekt", który tak na prawdę jest wskaźnikiem na właściwy obiekt.
[/dygresja]
Biorąc to pod uwagę, można bez problemu zrozumieć, co się dzieje gdy piszemy tab2 = tab1. Jedyne co wtedy kopiujemy, to adres tab2 do tab1, co skutkuje tylko tym, że oba obiekty(czyli wskaźniki) wskazują na ten sam obiekt tablicy(tak, w Javie tablica to też obiekt).
Aby skopiować tablicę, można użyć metody System.arraycopy():
https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object-int-int-
lub jednej z metod copy() klasy Arrays:
https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html
To jest pierwszy krok. Skopiowaliśmy tablicę. Ale zaraz, co jest w środku tablicy? Otóż obiekty klasy String, czyli wskaźniki na właściwe obiekty. Skopiowalismy tylko wskaźniki.
W tym przypadku jednak to wystarczy, ponieważ String jest obiektem stałym, nie da się go zmienić. W ogólnym przypadku, trzebaby jednak ręcznie skopiować obiekty, na przykład jakimś rodzajem konstruktora kopiującego.