rog.log
로그인
rog.log
로그인
변수와 메서드(3)
roglog
·
2021년 6월 14일
팔로우
0
Java의 정석
recursive call
기본형
매개변수
재귀호출
참조형
0
java의 정석
목록 보기
6/36
7. JVM의 메모리 구조
응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리
1. 메서드 영역(method area)
프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장
클래스의 클래스변수도 이 영역에 함께 생성됨
2.힙 (heap)
인스턴스가 생성되는 공간
인스턴스변수들이 생성되는 공간
3. 호출스택(call stack, execution stack)
호출스택은 메서드의 작업에 필요한 메모리 공간을 제공
메서드가 작업을 마치면 할당되었던 메모리공간은 반환되어 비워짐
호출스택의 특징
메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당 받음
메서드가 수행을 마치고나면 사용했던 메모리를 반환하고 스택에서 제거
호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드
아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드
8. 기본형 매개변수(parameter)와 참조형 매개변수
기본형 매개변수: 변수의 값을 읽기만 할 수 있음
참조형 매개변수: 변수의 값을 읽고 변경할 수 있음
참조형 매개변수는 값이 아니라 값이 저장된 주소를 넘겨줌
참조형 매개변수 예: 객체, 배열 등
참조형 매개변수를 사용해서 return값이 있는 메서드를 return값이 없는 메서드로 바꿀 수 있음
9. 참조형 반환타입
반환타입도 참조형이 될 수 있음
반환타입이 참조형이라는 것은 메서드가 객체의 주소를 반환한다는 것을 의미함
10. 재귀호출(recursive call)
메서드 내부에서 메서드 자신을 다시 호출하는 것
재귀 메서드: 재귀호출을 하는 메서드
반복문 vs 재귀호출
대부분의 재귀호출은 반복문으로 작성하는 것이 가능
재귀호출은 메서드를 호출하는 것이기 때문에 매개변수 복사와 종류 후 복귀할 주소 저장 등 추가로 필요한 것들이 있기 때문에 반복문보다 수행시간이 더 오래 걸림
재귀호출이 주는 논리적 간결함의 이득이 큰 경우에만 사용하는 것이 좋음
main메서드도 재귀호출 가능
java의 정석 chapter6
roglog
Full Stack Developer 📚
팔로우
이전 포스트
변수와 메서드(1)
다음 포스트
변수와 메서드(4)
0개의 댓글
댓글 작성
관련 채용 정보