- 자바 메모리 구조
- 메소드(Method) 영역, 스택(Stack) 영역, 힙(Heap) 영역
- 메소드 영역( Static영역 ) : 전역 변수와 정적 멤버변수(static 변수)가 저장되는 영역
- 스택 영역 : 지역변수, 인자값, 리턴값이 저장되는 영역, 메소드 안에서 사용되는 기본형 변수들이 값과 함께 저장되고 Heap영역에 생성된 객체들을 참조하는 주소값이 할당
- 힙 영역 : 모든 인스턴스 변수(객체)들이 저장되는 영역, new를 사용하여 객체를 생성하면 힙 영역에 저장. 메모리 공간이 동적으로 할당되고 해제되며 메모리의 낮은 주소에서부터 높은 주소로 할당됨.
- 메소드(Method) 영역, 스택(Stack) 영역, 힙(Heap) 영역
- 자바 변수의 종류
- 클래스변수, 인스턴스변수, 지역변수, 매개변수
- 클래스 변수( static 변수) :클래스 영역에서 타입 앞에 static이 붙는 변수,
객체를 공유하는 변수로 여러 객체에서 공통으로 사용하고 싶을 때 정의 - 인스턴스 변수 : 클래스 영역에서 static이 아닌 변수,
개별적인 저장 공간으로 객체/인스턴스마다 다른 값 저장 가능 - 지역 변수(local변수) : 메서드 내에서 선언되고 메서드 수행이 끝나면 소멸되는 변수,
초기값을 지정한 후 사용할 수 있음 - 매개 변수(parameter) : 메서드 호출 시 '전달하는 값'을 가지고 있는 인수,
지역 변수처럼 선언된 곳부터 수행이 끝날 때까지 유효함
- 클래스 변수( static 변수) :클래스 영역에서 타입 앞에 static이 붙는 변수,
- 변수 생성시기
- 클래스변수 : 클래스가 메모리에 올라갈 때
- 인스턴스변수 : 인스턴스가 생성되었을 때
- 지역변수 / 매개변수 : 위치하고 있는 메서드가 수행되었을 때
- 객체 : 모든 인스턴스를 대표하는 포괄적 의미
- 인스턴스 : "어떤 클래스"로부터 만들어진 것인지를 강조하는 구체적 의미 (객체 ⊃ 인스턴스)
- 속성(property) : 멤버변수, 특성, 필드, 상태 (ex. 나이 28)
- 기능(function) : 메서드, 행위, 함수 (ex. 달리는 상태)
- class-> object(객체)-> 인스턴스(실제 메모리에 올라와서 실행되고 있는 상태)
- 멤버변수(접근o), 로컬변수(접근x) ,글로벌 변수(어디서든 접근 가능), static은 다 접근가능
- 클래스변수, 인스턴스변수, 지역변수, 매개변수
출처: https://inpa.tistory.com/entry/JAVA-☕-그림으로-보는-자바-코드의-메모리-영역스택-힙 [Inpa Dev 👨💻:티스토리]
728x90
'Back-End > JAVA' 카테고리의 다른 글
[JAVA] 스프링 IP 주소 가져오기 (0) | 2024.05.17 |
---|---|
[JAVA] 자바 기초 - 의존성(Dependency), 생성자&수정자, 빌더패턴(Builder) (1) | 2024.05.10 |
[JAVA] 반복문 - FOR문, FOREACH문 (0) | 2023.11.02 |
[프로그래머스 JAVA]문자열에서 대소문자 바꿔서 출력하기 (0) | 2023.09.28 |
[Java] 출력 방법 알아보기 (0) | 2023.09.27 |