본문 바로가기
Back-End/Java

[Java] 함수(Function), Stack 메모리

by nanee_ 2021. 8. 26.
728x90
반응형
SMALL

함수 (function)

하나의 기능을 수행하는 일련의 코드이다.

구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환된다.

함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어서 사용될 수 있다.

 

함수 정의 방법

접근제어지시자 return데이터타입 함수명(매개변수1, ...){ // body
	실행할 코드(기능);
    return ...;
}

접근제어지시자

: 4가지 종류가 있는데 이후에 포스팅할 예정이다.

 모든 패키지에서 접근이 가능한 public 이라는 지시자를 쓸 것이다.

 

return데이터타입

: return 으로 반환할 데이터타입이 정해져 있는 경우에 int, double, boolean 등과 같이 써주면 되지만, 

출력함수로 반환하는 경우에는 void 라는 빈 값의 의미를 가지고 있는 명령어를 사용한다.

 

함수명

: 카멜표기법으로 addNum 과 같이 소문자로 시작해서 단어가 새로 시작되는 첫 알파벳을 대문자로 표기하는 방법으로 표기하고, 되도록이면 동사로 적도록 한다.

 

매개변수

: 함수 안에서 사용할 변수 중 입력받아야 하는 즉, 정보를 가져와야하는 변수를 데이터타입 변수명의 형태로 적어준다.

 

body

: { } 안의 영역을 지칭하는 말로, 함수의 몸체라는 의미를 가진다.

 

return

: 반환할 값

 

 

두 수를 더하는 add함수 정의

public calss FunctionTest{

  // main 함수
  public static void main(String[] args){
	int sum = add(100, 20);
        System.out.println(sum);
  } // end of main
  
  // add 함수 생성
  public static int add(int num1, int num2){
    int result;
    result = num1 + num2;
    return result;
  }

 
 } // end of class

 

 

함수 호출 과정

1. Run(실행) - 코드를 실행한다.

2. main 함수를 찾는다.

 

------stack 영역--------

 

3. main 함수가 사용할 메모리 공간이 stack에 생성된다.

4. main 함수에서 add() 함수를 호출한다.

5. add() 함수가 사용할 메모리 공간이 스택(stack)에 쌓인다.

 

 

6. add() 함수이 수행한 후 사용한 stack 메모리 공간은 자동으로 사라진다.

7. main 함수의 수행이 마칠 때 까지 main()의 공간은 유지되다가

8. main() 함수의 수행이 마치면 stack 메모리 공간도 해제된다.

 

 

 

 

* 스택 (stack) 메모리

: 함수가 호출될 때 지역 변수들이 사용하는 메모리로

  함수의 수행이 끝나면 자동으로 반환되는 메모리이다.

                      

728x90
반응형
LIST

'Back-End > Java' 카테고리의 다른 글

[Java] 인스턴스 (Instance), 힙(Heap) 메모리  (0) 2021.08.26
[Java] 메서드 Method  (0) 2021.08.26
[Java] 객체 지향 언어(OPP) - 객체, 클래스  (0) 2021.08.23
[Java] continue 키워드  (0) 2021.08.20
[Java] break 키워드  (0) 2021.08.20