글 작성자: 취업중인 피터팬
728x90
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

배열(3)와 같이 참조값을 매개변수로 전달하지 않는 경우를 만들어본다.


 

 

 

코드
package ex06array;

/*
 Call by value(값에 의한 호출)
 		: 메소드 호출과 관련된 개념으로 매개변수를 통해 값을 전달할 때
 		메모리의 '복사'를 통해 값이 전달된다.
 		그래서 다른 메소드(지역)에서 값의 변경이 있더라도 호출한 메소드의 값에는 전혀 영향을 미치지 않는다.
 		
 		메모리적 관점에서 보면 스택영역만 사용하는 케이스로
 		main과 호출된 메소드는 서로 다른 지역으로 서로에게
 		영향을 미치지 않는 것이 특징이다.
 */
public class E03CallByValue {

	public static void main(String[] args) {
		int first = 100, second = 200;
		
		System.out.println("[main메소드 안 - 호출전] first = " + first + ", second = " + second);
		callByValue(first, second);
		
		System.out.println("[main메소드 안 - 호출후] first = " + first + ", second = " + second);
	}
	
	public static void callByValue(int fNum, int sNum) {
		
		/*
		Swap: 두개의 변수가 할당받은 값을 서로 교환하는 것을
				말한다. 교환시에는 임시변수(temp) 하나가 추가로 필요하다.
		 */
		int temp;
		temp = fNum;
		fNum = sNum;
		sNum = temp;
		
		System.out.println("[callByValue 메소드 안] first=" + fNum + ", second = " + sNum);
	}

}

 

참조값을 전달하지 않는 즉, heap영역을 건들이지 않고 stack만 건드리는 기본 자료형을 선언했으므로 값이 변경되지 않는 부분입니다. 엄청 쉽지만 뒤에 내용을 이해하기 위해 필요한 코딩입니다. 머리식히는 느낌으로 공부해 봅시다.

 

결과 값

 

'Java > Java_기초부터 _끝까지' 카테고리의 다른 글

Java 기초 2차원 배열(1)  (0) 2020.10.22
Java 기초 배열(3-2) - 응용  (0) 2020.10.22
Java 기초 배열(3)  (0) 2020.10.22
Java 기초 배열(2)  (0) 2020.10.21
Java 기초 배열(1)  (0) 2020.10.21