메모리 구조(static, stack, heap)

김경태·2022년 9월 22일

Java 기초

목록 보기
7/7

static

하나의 java 파일은 필드, 생성자, 메서드로 구성된다. 그 중 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형) static 영역에 저장한다. static 영역의 데이터는 프로그램의 시작부터 종류가 될때까지 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때 까지 어디서든 사용이 가능한 이유기도 하다. 따라서 전역변수를 무분별하게 많이 사용하다 보면 메모리가 부족할 우려가 있어 필요한 변수만 사용할 필요가 있다.

기본형과 참조형

기본형(primitive type) 변수

  • boolean, char, byte, short, int, long, float, double
  • 기본형 변수에 저장되는 값은 리터럴, 즉, 실제 값이 저장된다.
  • 10, A, true 등 있는 그대로의 값을 stack에 저장한다.
  • stack: 속도 빠르지만 공간 좁(기본형 data)

참조형(reference type) 변수

  • 기본형 8가지를 제외한 나머지 타입
  • 참조형 변수는 실제 값이 아닌 주소 값을 heap에 저장한다.
  • heap: 속도 느리지만 공간 넓(참조형 data)
  • stack에는 변수만 저장

주소 값

  • 컴퓨터의 메모리에 주소별로 저장 공간이 배정되어 있다.
  • 이 주소는 사용자가 확인은 할 수 있지만 직접 정하거나 바꿀 수는 없다.

String 쓸 때 주의점

  • == 비교연산자를 사용하면 주소값을 비교해서 다르다고 판단할 수 있음.
  • class에서 선언된 String의 주소값과 main에서 선언된 것이 다르기 때문에 error가 남.
  • equals써야 함.

https://m.blog.naver.com/heartflow89

profile
잊지 않기 위해 기록

0개의 댓글