Java Data Type
ㄴ Primitive Type
ㄴ Boolean Type(boolean)
ㄴ Numeric Type
ㄴ Integral Type
ㄴ Integer Type(short, int, long)
ㄴ Floating Point Type(float, double)
ㄴ Character Type(char)
ㄴ Reference Type
ㄴ Class Type
ㄴ Interface Type
ㄴ Array Type
ㄴ Enum Type
ㄴ etc.
자바에서 메서드를 호출할 때 매개변수가 원시타입이면 값이 복사되고 참조타입이면 주소가 복사됩니다
원시타입 매개변수 : 변수의 값을 읽기만 할 수 있다.(read only)
참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다.(read & write)
class Data { int x; }
class PrimitiveParamEx{
public static void main(String[] args)
{
Data d = new Data();
d.x = 10;
System.out.println("main() : x =" + d.x);
change(d.x);
System.out.println("After change(d.x)");
System.out.println("main() : x = " + d.x);
}
static void change(int x) //기본형 매개변수
{
x = 1000;
System.out.println("change() : x = " + x);
}
}

class Data { int x; }
class ReferenceParamEx{
public static void main(String[] args)
{
Data d = new Data();
d.x = 10;
System.out.println("main() : x =" + d.x);
change(d);
System.out.println("After change(d)");
System.out.println("main() : x = " + d.x);
}
static void change(Data d) //참조형 매개변수
{
d.x = 1000;
System.out.println("change() : x = " + d.x);
}
}

모든 참조형 타입의 값을 '객체의 주소'이므로 그저 정수값이 반환되는 것일 뿐 특별할 것이 없습니다
"반환타입이 '참조형'이라는 것은 메서드가 '객체의 주소'를 반환한다는 것을 의미한다."