본문 바로가기

DEVELOPER/Java

인스턴스 생성과 힙 메모리

반응형

인스턴스 (instance)


: new 키워드를 사용하여 클래스를 메모리에 생성한 상태

new 키워드를 사용하여 생성자를 통해 생성한 객체를 인스턴스 생성

 

힙 메모리


생성된 인스턴스는 동적 메모리(heap memory)에 할당

C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제시켜야 함(free() 나 delete 이용)

자바에서 Gabage Collector가 주기적으로 사용하지 않는 메모리를 수거

하나의 클래스로 부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주소를 갖게 됨.

다른 heap메모리에 저장된 instance

참조 변수, 참조 값


참조 변수 : 메모리에 생성돈 인스턴스를 가리키는 변수

참조 값 : 생성된 인스턴스의 메모리 주소 값

		Student studentLee = new Student(); //생성자를 통해 생성한 객체를 instance
		
		studentLee.studentId= 12345;
		studentLee.setStudentName("Lee");
		studentLee.address = "서울 강남구";
		
		studentLee.showStudentInfo();
		
		Student studentKang = new Student();
		studentKang.studentId = 54321;
		studentKang.studentName ="Kang";
		studentKang.address = "경기도 성남시";
		
		studentKang.showStudentInfo();
		
		//참조값
		System.out.println(studentLee);
		System.out.println(studentKang);

 

위 코드에 의한 실행 결과

위와 같이 Student인 타입으로 생성된 instance는 결과를 통해 다른 동적 메모리(heap)에 위치하는 것을 알 수 있다.

ex) studentLee는 ch04라는 패키지에 Student 클래스에 4926097b라는 참조값(reference value)을 갖는다.

반응형

'DEVELOPER > Java' 카테고리의 다른 글

생성자 오버로딩 (overloading)  (2) 2021.04.19
생성자(Constructor)  (0) 2021.04.19
함수와 메서드  (0) 2021.04.19
객체와 객체 지향 프로그래밍  (2) 2021.04.19
Break문 & Continue문  (0) 2021.04.18