[자바] 변수

nayoon·2021년 6월 19일
0

computer

목록 보기
19/25

변수

값을 저장할 수 있는 메모리 공간

형태

데이터 타입 + 변수 명

데이터 타입

분류

  • 기본 타입
    정수, 실수, 문자, 논리 리터럴을 저장하는 타입
    스택(Stack) 영역에 생성


    정수 타입: byte, short, char, int, long
    실수 타입: float, double
    논리 타입: boolean

  • 참조 타입
    객체의 주소를 참조(저장)하는 타입
    힙(Heap) 영역에 생성


    참조 타입: 문자열, 배열, 열거형, 클래스, 인터페이스

메모리 사용 영역

jvm이 사용하는 메모리 영역

jvm이 시작되면 운영체제에게서 할당받은 메모리 영역을 아래와 같은 세부 영역으로 구분해서 사용한다.

메소드 영역

코드에서 사용되는 클래스(.class)들을 로더(Loader)로 읽어서 클래스별로 런타임 상수풀, 필드 데이터, 메소드 데이터, 메소드 코드, 생성자 코드 등으로 분류해서 저장한다.

JVM이 시작할 때 생성되고 모든 스레드가 메소드 영역을 공유한다.

힙 영역

객체와 배열이 생성되는 영역 -> 참조 타입 변수가 저장되는 영역

참조하는 변수나 필드가 없다면, 의미 없는 객체(=쓰레기)로 분류되어 가비지 컬렉터가 자동으로 제거한다.
(객체를 직접 제거하는 방법을 자바에서 제공하지 않음)

Thread의 존재와 상관없이 단 하나의 힙 영역만 존재한다.

힙 영역에 있는 Object들을 가리키는 레퍼런스 변수가 스택에 올라간다.

스택 영역

힙 영역에 생성된 Object 타입의 데이터의 참조값이 할당.

원시타입의 데이터가 값과 함께 할당 -> 기본 타입 변수가 저장되는 영역

각 스레드마다 자신만의 스택 영역이 존재한다.
스레드가 시작할 때 할당된다.

==, != 연산

기본 타입

변수의 값이 같은지 검사한다.

참조 타입

동일한 객체를 참조하는 지 검사한다.
-> 주소가 같은 지 확인.

참고 사이트

  1. Java 자바 - 메모리 사용영역, 참조 타입 변수 특징
  2. 자바 메모리 관리 - 스택 & 힙
profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글