반응형
인프런Do it! 자바 프로그래밍 입문 클래스와 객체1 (2) 복습 내용 중
url은 여기로! 참고로 무료 강의임
예약어와 Void
- 매개변수(아래 코드에서는 int n1, int n2를 의미한다)
- 예약어 return이 없는 경우가 있다 → 그 때, 클래스 명을 void로 받는다.
그 코드는 아래와 같다
public static void addNum(int n1, int n2){
int result = n1 + n2;
그러나 이것을 예약어 return으로 받았을때
public static void addNum(int n1, int n2){
int result = n1 + n2;
return result;
에러가 난다.
Stack 메모리
package classpart;
public class FunctionTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int sum = addNum(num1, num2);
System.out.println(num1 + " + " + num2 + " = " + sum + "점입니다");
}
public static int addNum(int n1, int n2){
int result = n1 + n2;
return result;
}
}
main 함수가 addnum()을 호출하고, 함수가 사용하는 메모리를 stack이라고 한다.
stack은 택배 상자처럼 위로 쌓이는 구조라고 생각을 하면 된다.
main 함수
- num1
- num2
- sum
이 4byte 씩 12byte를 차지하고 있고
그 위로 addNum 함수
- n1
- n2
- result 함수
가 쌓인다.
그렇기 때문에 함수가 호출이 한번 끝나고 나서 addNum의 메모리는 사라진다. 이것이 stack 메모리 구조! mathod도 이러한 메모리 구조를 가진다. 사라지기 때문에 지역변수라 불린다.
반응형
'개발 > JAVA' 카테고리의 다른 글
공부하기 괜찮은 입문자 JAVA 텍스트 강의 추천 (0) | 2022.07.14 |
---|---|
변수의 자료형 : 기본 자료형, 참조 자료형 (0) | 2022.07.07 |
생성자(constructor) (0) | 2022.07.05 |
class와 instance, 참조변수, heap 메모리, 인스턴스화 (0) | 2022.07.05 |
예시로 보는 간단한 get, set 사용법 / 함수를 사용하는 이유 (0) | 2022.07.05 |
댓글