JVM메모리구조
Method Area
- 클래스가 로드되며 클래스변수, 클래스메서드가 같이 생성된다.
- 메소드는 변수를 이용해서 일을 하기 때문에 로드시 클래스 변수 먼저 그려주는게 좋다.
Call Stack
Heap Area
- 인스턴스가 생성되며 인스턴스변수, 인스턴스메서드가 같이 생성된다.
그리는 방법
- 콜스택에 메소드 호출시 인자값같이 넣어주기
- 클래스에 클래스변수,클래스메소드 로드시 메소드 안에 매개변수 타입과 갯수 적어주기
- 메소드 호출되면 메소드에어리어에 그 메소드에 별 표시하기
- 콜스택 메인()안에 반환값 받을 매개변수 잘 표시하기
- return 있으면 메소드 중괄호 닫힐때까지 안가고 반환값 돌려주고 바로 종료됨
- 콜스택 메소드 안에 매개변수를 인자값으로 초기화해주는것 잊지말기
- 예)
int add3(int c){
int result = this.c + c;
return result;
}
이렇게있으면 콜스택 add3()안에 c=(인자값)으로 초기화 후 result=~~ 이렇게
- 대입연산자가 있으니 왼쪽부터
- 왼쪽: Data클래스 타입의 지역변수 d1이 main()안에 선언됨
- 오른쪽: new 연산자에 의해 Heap 영역에 Data클래스의 인스턴스가 생성됨 -> 인스턴스변수와 인스턴스메서드가 자동로드
- 대입연산자: 참조변수에 대입됨