포스트

Day13 Java프로그래밍 기초(메서드)

1. 메서드

1.1 메서드의 기본형태

1
2
3
4
5
6
7
8
9
//메서드의 기본 종류

//method signature(fuction prototype)
(static)[return type] method_name(parameter)

//method body
{
	명령문; 
}

1.2 parameter 와 argument

1
2
3
4
5
6
7
8
void names(String name){
		//String name : parameter
}

void main(String[] args){
	name("james");
    // "james" : argument
}
  • parameter : 로컬변수로 메서드를 호출할 때 생성되어 메서드가 종료 될때 JVM stack에서 제거된다.
  • argument : parameter에 전달되는 값

1.3 JVM stack

  • 매서드가 호출 되면 JVM stack 메모리 영역에 메서드 Frame이 생성
  • LIFO 구조로 순차적으로 호출 및 종료 된다.



1.4 메서드 호출과 JVM stack

  • JVM stack 영역에 메서드가 call이 있으면 생성을 하고 return이 있으면 삭제를 한다.



1.5 재귀함수

  • 메서드를 중복해서 호출 할 수 있으며, 이를 재귀함수라고 한다.
  • 재귀함수의 깊이가 깊어지면 stack 메모리를 초과하여 stack overflow를 발생시킨다.



1.6 call by value

  • 메서드를 호출할 때 primitive data type을 파라미터에 넘긴다.
  • 자바에서는 primitive data type에 대해서 메모리(변수) 주소를 넘기는 방법이 없다.



1.7 call by reference

  • 메서드를 호출 할 때 주소를 넘긴다.
1
2
3
4
5
6
7
8
9
10
11
12
13
package study.lang.method;

public class Test09 {
  public static void main(String[] args) {
    int[] values = new int[] {100, 110, 120};
    m1(values);
    System.out.println(values[0]);
  }

  static void m1(int[] value) {
    value[0] = 200;
  }
}



이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.