JAVA
[JAVA] 클래스, 객체, 인스턴스
준몽쓰
2024. 12. 16. 16:20

클래스 (Class)
- 객체를 정의 한 틀
- 객체를 생성하는데 사용
객체 (Object)
- 물리적으로 존재하거나 추상적
- 클래스에 선언된 모양 그대로 생성된 실체
- 클래스의 타입으로 선언되었을 때 객체라고 부름
인스턴스 (instance)
- 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
- 객체를 실체화 하면 인스턴스라 함
- 실체화 된 인스턴스는 힙 메모리에 할당 됨.


GC란?
- JVM의 heap 영역에 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 제거
- 자바에서는 개발자가 메모리를 직접 해제할 수 없기 때문에 GC가 필요
Heap이란?
- JVM이 객체를 저장하는 공간
- 프로그램 실행 중 동적으로 생성된 객체가 저장되는 곳

- new Dog()를 실행하면 Dog 클래스의 객체가 힙 영역에 생성
- 인슽언스 변수를 위한 메모리 할당 (age,gender,breed)
- 변수 dog는 스택 영역에 저장되며 힙 영역에 생성된 Dog 객체의 참조 값을 가짐
dog.age = 2;
dog.gender = "M";
dog.breed = "poodle";
힙 영역에 있는 Dog 객체의 age 필드에 값 2
힙 영역에 있는 Dog 객체의 gender 필드에 값 "M"
문자열 "poodle"은 힙 영역의 String 풀에 저장