Помните, массивы - ссылочные типы, даже массивы примитивов. И помните, что примитивы передаются по значению, ссылочные типы (экземпляры классов, массивы, enum-ы) - по ссылке:
А теперь вернем что-нибудь из метода:
public class RefValueQuiz {
public static void main(String[] args) {
int x = 0;
int[] arr = {20};
f(x, arr);
System.out.println(x + " " + arr[0]);
g(x, arr);
System.out.println(x + " " + arr[0]);
}
private static void f(int x, int[] arr) {
x += 30;
arr[0] = 40;
}
private static void g(int x, int[] arr) {
x = 50;
arr = new int[]{60};
}
}
>> 0 40
>> 0 40
А теперь вернем что-нибудь из метода:
public class RefValueQuiz1 {
public static void main(String[] args) {
int x = 0;
int[] arr = {20};
x = f(x, g(x, arr));
System.out.println(x + " " + arr[0]);
}
private static int f(int x, int[] arr) {
x += 30;
arr[0] = 40;
return 42;
}
private static int[] g(int x, int[] arr) {
x = 50;
arr = new int[]{60};
return arr;
}
}
>> 42 20