지난 포스팅에 이어 메서드 관련 내용을 정리한다.
2.3 메서드
- 정의
메서드는 어떤 작업을 수행하기 위한 명령문의 집합이다. 주로 어떤 값을 입력받아
서 처리하고 그 결과를 돌려준다. 경우에 따라서는 입력받는 값이 없을 수도 있고
(void), 결과를 반환하지 않을 수도 있다.
- 장점
- 작성지침
- 작성방법
메서드는 위의 그림과 같이 선언분와 구현부로 나눌 수 있다. 선언부에는 리턴타
입, 메서드 이름, 그리고 괄호()안에 매개변수를 선언하고, 구현부에는 메서드가 호
출되었을 때 수행되어야 할 코드를 넣어주면 된다. 또한 리턴타입은 메서드의 수행
결과를 어떤 타입(자료형)으로 반환할 것인지를 알려준다.
- 호출(사용)방법
2.4 JVM 메모리 구조
응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를
할당받고 JVM은 이 메모리를 용도에 따라 다음과 같이 나누어 관리한다.
1. 메서드 영역
프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일을 읽어서
분석하여 클래스에 대한 정보를 이곳에 저장한다.
2. 힙
인스턴스 변수가 생성되는 공간, 프로그램 실행 중 인스턴스 변수는 모두 이 곳에
생성된다.
3. 호출스택
메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되며, 이 메모리는
메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간결과 등을 저장하
는데 사용된다.
- 메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당받는다.
- 메서드가 수행을 마치고 나면 사용했던 메모리를 반환하고 스택에서 제거된다.
- 호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드이다.
- 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다.
cf. 클래스 메서드와 인스턴스 메서드
- 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야 하는 것에 static
을 붙인다.
- 클래스 변수는 인스턴스를 생성하지 않아도 사용할 수 있다.
- 클래스 메서드는 인스턴스 변수를 사용할 수 없다.
- 클래스 메서드가 인스턴스를 가지고 있는지 확신할 수 없기 때문이다.
- 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.
- 메서드 호출시간이 짧아지기 때문에 효율이 높아진다.
'Dev. Java' 카테고리의 다른 글
public static void main(String[] args) 의미는? (0) | 2014.05.10 |
---|---|
[자바 기본기] 3. 메서드 오버로딩 (0) | 2014.05.09 |
[자바 기본기] 2. 변수와 메서드(1) (0) | 2014.05.07 |
[자바 기본기] 1. 클래스와 객체 (0) | 2014.05.06 |
데이터 바인딩의 개념 및 특징 (0) | 2014.04.28 |