EEALL@ONCE
☕ 원시형 매개변수 vs 참조형 매개변수 본문
728x90
원시형 매개변수(Primitive Parameters)와 참조형 매개변수(Reference Parameters)는 자바에서 메서드 호출 시 매개변수를 전달하는 두 가지 방법입니다.
1. 원시형 매개변수 (Primitive Parameters): 원시값은 '복사해서' 가져옴
- 원시 자료형 (예: int, float, double 등)으로 선언된 매개변수를 전달할 때 사용됩니다.
- 메서드로 전달된 값은 메모리에 복사되어 저장됩니다.
- 메서드 내부에서 해당 매개변수의 값을 변경하더라도 원래 변수에는 영향을 미치지 않습니다.
public static void modifyValue(int value) {
value = 10;
}
public static void main(String[] args) {
int originalValue = 5;
modifyValue(originalValue);
System.out.println(originalValue); // 출력: 5
}
2. 참조형 매개변수 (Reference Parameters): 참조값은 주소값이므로 원본 그 자체를 가리킴
- 객체 또는 배열과 같은 참조 자료형을 전달할 때 사용됩니다.
- 메서드로 전달된 객체의 참조(주소)가 전달됩니다.
- 메서드 내부에서 해당 매개변수의 값을 변경하면 원래 객체에도 영향을 미칩니다.
public static void modifyArray(int[] array) {
array[0] = 10;
}
public static void main(String[] args) {
int[] originalArray = {5, 6};
modifyArray(originalArray);
System.out.println(originalArray[0]); // 출력: 10
}
효율성
원시형 매개변수:
- 메모리 복사로 인해 추가 오버헤드가 발생할 수 있으나, 원본 데이터에 영향을 미치지 않으므로 안전하게 사용할 수 있습니다.
참조형 매개변수:
- 객체의 참조를 전달하므로 메모리 효율성이 높을 수 있습니다.
- 메서드 내부에서의 변경이 원본 객체에 영향을 미치므로 주의가 필요합니다. (SIDE EFFECT가 있을 수 있음)
728x90
'언어💻 > 자바☕' 카테고리의 다른 글
☕InputStream (0) | 2023.08.17 |
---|---|
☕ Scanner / System.in (0) | 2023.08.17 |
☕메소드 오버로딩(Method Overloading) (0) | 2023.08.16 |
☕메소드"(`method`) / "함수"(`function`) (0) | 2023.08.16 |
☕Charset : 코딩 및 디코딩을 담당하는 클래 (0) | 2023.08.11 |