본문 바로가기

Back-End/JAVA

[JAVA][자바] 자바 메모리 구조, 자바 변수의 종류

~ 목차 ~

    1. 자바 메모리 구조
      • 메소드(Method) 영역, 스택(Stack) 영역, 힙(Heap) 영역
        • 메소드 영역( Static영역 ) : 전역 변수와 정적 멤버변수(static 변수)가 저장되는 영역
        • 스택 영역 : 지역변수, 인자값, 리턴값이 저장되는 영역, 메소드 안에서 사용되는 기본형 변수들이 값과 함께 저장되고 Heap영역에 생성된 객체들을 참조하는 주소값이 할당
        • 힙 영역 : 모든 인스턴스 변수(객체)들이 저장되는 영역, new를 사용하여 객체를 생성하면 힙 영역에 저장. 메모리 공간이 동적으로 할당되고 해제되며 메모리의 낮은 주소에서부터 높은 주소로 할당됨.
    2. 자바 변수의 종류
      • 클래스변수, 인스턴스변수, 지역변수, 매개변수
        • 클래스 변수( static 변수) :클래스 영역에서 타입 앞에 static이 붙는 변수,
                                                   객체를 공유하는 변수로 여러 객체에서 공통으로 사용하고 싶을 때 
          정의
        • 인스턴스 변수 : 클래스 영역에서 static이 아닌 변수,
                                    개별적인 저장 공간으로 객체/인스턴스마다 다른 값 저장 가능
        • 지역 변수(local변수) : 메서드 내에서 선언되고 메서드 수행이 끝나면 소멸되는 변수,
                            초기값을 지정한 후 사용할 수 있음

        • 매개 변수(parameter) : 메서드 호출 시 '전달하는 값'을 가지고 있는 인수,
                                               지역 변수처럼 선언된 곳부터 수행이 끝날 때까지 유효함
      • 변수 생성시기 
        • 클래스변수 : 클래스가 메모리에 올라갈 때
        • 인스턴스변수 : 인스턴스가 생성되었을 때
        • 지역변수 / 매개변수 : 위치하고 있는 메서드가 수행되었을 때
      • 객체 : 모든 인스턴스를 대표하는 포괄적 의미
      • 인스턴스 : "어떤 클래스"로부터 만들어진 것인지를 강조하는 구체적 의미 (객체 ⊃ 인스턴스)
      • 속성(property) : 멤버변수, 특성, 필드, 상태 (ex. 나이 28)
      • 기능(function) : 메서드, 행위, 함수 (ex. 달리는 상태)
      • class-> object(객체)-> 인스턴스(실제 메모리에 올라와서 실행되고 있는 상태)
        - 멤버변수(접근o), 로컬변수(접근x) ,글로벌 변수(어디서든 접근 가능), static은 다 접근가능

https://whatisthenext.tistory.com/36
자바 메모리 구조

 

 

출처: https://inpa.tistory.com/entry/JAVA-☕-그림으로-보는-자바-코드의-메모리-영역스택-힙 [Inpa Dev 👨‍💻:티스토리]

https://whatisthenext.tistory.com/36

728x90