Must Have 이재환의 자바 프로그래밍 입문 책을 읽고 정리한 글입니다.
new
연산자에 의해 힙 영역에 동적으로 생성됨public class Ex02_MemoryInHeap1{
public static void main(String[] args){}
}
main()
메서드를 첫 메서드로 실행시킴main()
메서드가 반드시 있어야 하고 public
으로 접근 가능해야 함static
지시자 표시를 하여 메모리의 특정 영역에 따로, 미리 로딩시켜놓음Book book1 = new Book();
new
연산자와 Book()
생성자를 이용하여 객체를 힙 영역에 만듦
객체를 참조할 수 있게 객체를 관리하는 내부적인 표에 자기 위치를 등록시킴 (id - 힙 영역 위치)
힙 영역에 Book
객체를 동적으로 만들어 저장함
(생성되는 객체의 크기는 클래스마다 천차만별이기 때문에 힙 영역에 동적으로 만들어 저장됨)
스택 영역에 book1
변수를 만들고, 그 객체를 참조할 수 있는 id값을 대입 받음
(스택 영역에는 정해진 크기의 값들만 저장됨 ex.id, book1을 참조 변수라고도 함)
Book book2 = new Book();
book1
과 book2
는 서로 다른 id값을 참조함book1
과 book2
는 힙 영역의 서로 다른 객체를 참조함book1 = null;
null
을 대입하는 것을 참조를 끊는다고 표현함Book book3 = book1;
book3
과 book1
은 같은 기존 객체를 가리키게 됨