Java는 Pass by Value 일까 Pass by Reference 일까 - 메모리 구조 이해하기
프로그래밍 하다가 우리가 작성한 메소드 안에서 객체의 상태를 변경했는데, 호출부의 원복 객체까지의도치 않게 바뀌어 버린 경험 한 번쯤 있으신가요 다들 특히 List나 사용자 정의 객체를 메서드에 넘겼을 때 자주 발생하죠.반면, Primitive Type 변수는 아무리 바꿔도 원본 값이 같습니다.이 현상 때문에 Java가 Pass-by-Value인지 Pass-by-Reference인지 오랜 논란이 생겨납니다.이 글에서는 Java가 오직 Pass-by-Value로만 동작함에도 불구하고,왜 객체를 넘길 때는 원본 객체의 값이 바뀌는지그 근본 원리를 정리해 보겠습니다. 1. Pass by Value (값에 의한 호출)메서드에 변수를 넘길 때, 변수 값의 복사본을 전달하는 방식입니다.즉, 원본 데이터는 절대 ..
2025. 12. 2.
최근댓글