본문 바로가기
개발자 꿈나무의 하루/01_Boot Camp

(네이버클라우드 부트캠프) 13일차 - Java프로그래밍 기초(메서드)

by kk_naks 2024. 6. 12.

1. 메서드

  1.1 메서드의 기본형태

//메서드의 기본 종류

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

//method body
{
	명령문; 
}

 

  1.2 parameter 와 argument

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

- 메서드를 호출 할 때 주소를 넘긴다.

 

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;
  }
}