В Java все аргументы метода передаются по значению, то есть копируется значение переменной (даже если она ссылочного типа). Однако у ссылочных переменных копируется лишь значение ссылки, а не объекта, на который она ссылается. Поэтому, если произойдет изменение состояния объекта, на который ссылается переданная ссылка, то эти изменения будут отражены на объекте, на который ссылается исходная переменная. Таким образом, то, что большинство людей называют "передачей по ссылке", на самом деле называется "передачей значения ссылки"...
Если объект, на который указывает конечная ссылочная переменная, является изменяемым объектом, то состояние этого объекта может быть изменено через эту переменную. Конечная ссылочная переменная это такая переменная, которую мы объявляем с ключевым словом final. Это означает, что мы не можем изменить ссылку на объект, на который ссылается эта переменная, после ее инициализации. Однако, сам объект, на который ссылается переменная, может быть изменен, если он является изменяемым объектом. Вот пример: public class MyClass {
private int x;
public MyClass(int x) {
this...