반응형
C언어에서는 포인터를 이용해서 매개변수의 주소값을 넘겨 "참조(Reference)"할 수 있다.
JAVA에서는 포인터가 따로 없으며, 일단 기본적인 매개변수는 Call by Value라고 생각한다.
하지만, 예외적으로 배열(Array)과 클래스(Class)는 참조변수로 Call by Reference로 작동한다.
그렇다면, 전달받은 배열이나 클래스는 어떻게 Call by Value처럼 기존의 참조값을 건들지 않고 사용할까?
예시를 하나 들어보겠다.
Call by Reference
void dfs(boolean[] check){
check[0] = true;
//dfs(....)
}
Call by Reference -> Call by Value 처럼 사용하는법
void dfs(boolean[] check){
boolean[] callByValueCheck = check;
callByValueCheck[0] = true;//check참조가 아님.
//check[0] = true;
//dfs(....)
}
배열이나 객체를 참조로 넘길때는 "참조"인지 "값만 가져올것인지"
판단해서 매개변수를 유의하며 사용해야한다.
반응형
'코딩테스트 > Java 문법 정리' 카테고리의 다른 글
Deque(덱, Double-Ended Queue) (0) | 2021.05.03 |
---|---|
정규표현식 정리(Java,JS,Python 등) (0) | 2021.03.01 |
[Java] 자바 정규 표현식 (Pattern, Matcher) (0) | 2021.01.13 |
List, Map,Set 정리 (0) | 2021.01.07 |
[JAVA] 큐/스택 정리 (0) | 2020.09.11 |