[JAVA] 변수의 메모리 할당 시점과 삭제 시점 [메모리 할당 시점, 삭제 시점, 블록 내에서의 메모리 재사용]

2023. 5. 8. 03:15·◎ Java/Java☕
728x90


- 변수의 메모리 할당 시점과 삭제 시점

1. 메모리 할당 시점

변수가 선언되면 해당 변수에 대한 메모리 공간이 할당되며, 이 때 변수의 타입에 따라 할당되는 메모리의 크기가 결정된다. 변수가 선언된 블록에서만 사용할 수 있으며 해당 블록이 실행될 때 메모리에 할당된다.

2. 삭제 시점

변수의 생명 주기는 해당 변수가 선언된 블록의 실행이 끝날 때까지이며, 블록이 실행되는 동안 변수는 유효하다. 블록이 실행을 마치면, 해당 블록에서 선언된 모든 변수들은 메모리에서 삭제된다. 객체가 변수일 경우, 해당 객체에 대한 참조 카운트가 0이 되면 가비지 컬렉터(Garbage Collector)가 메모리에서 삭제한다.

3. 블록 내에서의 메모리 재사용

Java는 스택(Stack)과 힙(Heap) 영역으로 메모리를 관리한다. 지역 변수는 스택에, 객체는 힙에 메모리가 할당된다. 블록이 실행될 때마다 스택의 상단이 변경되므로, 지역 변수는 스택의 상단에 계속해서 메모리가 재사용된다.

이 때문에 지역 변수의 메모리 할당과 삭제는 매우 빠르다. 그러나 객체의 경우, 힙에 메모리를 할당하므로 객체의 생성 및 삭제는 상대적으로 느리다.

728x90
'◎ Java/Java☕' 카테고리의 다른 글
  • [JAVA] short 타입과 byte 타입을 연산하면 어떤 결과가 나올까? [Java 연산 처리 최소 단위와 산술 변환]
  • [JAVA] long 타입에 접미사 'L'이 없으면 무슨 타입으로 인식될까? [변수의 타입과 접미사의 중요성]
  • [JAVA] 향상된 for문 사용 시 주의사항 [개선된 for문, foreach문]
  • [JAVA] 추상클래스(abstract class)와 인터페이스(interface)의 차이 [추상클래스 VS 인터페이스, 예제를 통한 차이 비교]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (938) N
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (90) N
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (11) N
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    백준
    Oracle
    자바스크립트
    javascript
    코딩
    Error Note
    프로그래밍
    BOJ
    Java
    CSS
    Project
    html
    spring
    Database
    코딩 테스트
    jsp
    백준 티어
    꿀팁
    SQL
    일상
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[JAVA] 변수의 메모리 할당 시점과 삭제 시점 [메모리 할당 시점, 삭제 시점, 블록 내에서의 메모리 재사용]
상단으로

티스토리툴바