JAVA의 정석 기초편 연습문제 6-16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class Exercise6_16 {
public static void change(String str) {
str += "456";
}
public static void main(String[] args) {
String str = "ABC123";
System.out.println(str);
change(str); // 메서드 실행-종료 후 메모리에서 지워짐.
System.out.println(str); // 실행결과 : ABC123
System.out.println(change(str)); // change메서드에서 실행 된 값을 호출하여 출력 : ABC123456
}
}
|
cs |
실행순서
1. main메서드 안에서 String str = "ABC123"; 생성.
2. change메서드 매개변수로 메인메서드의 str이 넘어감.
3. change메서드 구현부에서 str = "ABC123456" 으로 새로 생성 되고 주소값 변경 됨.
4. change메서드 종료 후, 메서드에서 작업하던 내용들이 메모리에서 제거 됨.
5. main메서드에서 실행된 sysout(str)에서는 main안의 기존 변수였던 str의 주소값 ABC123이 출력 됨.
change 메서드가 사라지기 전에 출력하고 싶으면! sysout(change(str)); 로 작성한다.
sysout메서드가 change메서드를 호출하면서 change는 대기상태가 되고, sysout에서 change의 수행값을 출력한 뒤 main을 제외하고 모두 메모리에서 제거된다.
'JAVA' 카테고리의 다른 글
배열에 저장된 정수의 합 구하기 (0) | 2021.07.23 |
---|---|
isNumber - 문자열이 숫자로만 이루어졌는지 확인하는 메서드 (0) | 2021.07.23 |
절대값 구하기 (0) | 2021.07.23 |
정수 배열 안에서 가장 큰 값 반환하기 (0) | 2021.07.11 |