728x90
1. [Call by Value와 Call by Reference의 차이]
- Call by Value: 함수 호출 시 값을 복사해서 전달. 값을 복사해야하므로 생성한 변수마다 스택에 메모리 할당.
- Call by Reference: 함수 호출 시 참조하고있는 주소를 전달. 원본데이터에 접근해서 수정 가능함.
2. [자바는 Call by Value방식이다]
- Primitive Type(원시 자료형) (int,short,long,float,double,char,boolean) 에서는 값 자체를 복사하고 함수에 전달된다.
- Reference Type(참조 타입) (Array, Class Instance) 에서는 주소 값을 복사하고 함수에 전달. 값을 복사하고 전달하는 방식이기 때문에 Call by Value 방식이지만 주소 값을 통해 원본 객체에 접근할 수 있으므로, 함수에서 객체의 속성을 변경하면 원본 객체도 변경됨.
예시) Reference Type에서 원본 객체 속성 변경 예시
public class Example {
public static void modifyArray(int[] arr) {
arr[0] = 10; // 전달된 배열의 첫 번째 값을 수정
}
public static void main(String[] args) {
int[] numbers = {1, 2, 3};
modifyArray(numbers); // 배열의 참조 값이 전달됨
System.out.println(numbers[0]); // 결과: 10
}
}
728x90
'백앤드 > JAVA' 카테고리의 다른 글
[JAVA] ==는 주소 값, equals는 값 비교 (0) | 2024.10.18 |
---|---|
[JAVA] 객체지향 프로그래밍 (OOP,Object Oriented Programming) (0) | 2024.10.18 |
[JAVA] String, StringBuilder, StringBuffer 차이 (0) | 2024.10.18 |
[JAVA] 컴파일 과정+JVM (2) | 2024.10.18 |
[JAVA] 입출력 포맷 (0) | 2023.07.17 |