☕Java 참조 변수, 인스턴스와 힙 메모리, 참조 값

hamsang·2022년 5월 14일
0

Java

목록 보기
5/36
post-thumbnail

☕ 참조 변수

  • 메모리에 생성된 인스턴스를 가리키는 변수
Student studentLee = new Student(); //Student 클래스 생성
studentLee.studentName = "이하린"; // 멤버 변수 사용
			
System.out.println(studentLee.studentName);
System.out.println(studentLee.getStudentName()); //메서드 사용
  • 참조 변수를 사용하면 인스턴스의 멤버 변수메서드참조하여 사용할 수 있는데 이때 도트연산자(.)를 이용한다.

☕ 인스턴스와 힙 메모리

📍 힙 메모리란?

힙(heap)은 프로그램에서 사용하는 동적 메모리(dynamic memory) 공간을 말한다. 일반적으로 프로그램은 스택, 힙, 데이터 이렇게 세 영역을 사용하는데, 객체가 생성될 때 사용하는 공간은 힙이다. 힙은 동적으로 할당되며 사용이 끝나면 메모리를 해제해 주어야 한다.
C나 C++ 에서는 프로그래머가 직접 메모리를 해제해야 하지만, 자바에서는 가비지 컬렉터(garbage collecter)가 자동으로 메모리를 해제해 준다.


  • 클래스 생성자를 호출하면 인스턴스가 힙 메모리에 생성된다.
  • 지역변수 StudentLee에 생성된 인스턴스를 대입하는 것은
    studentLee에 인스턴스가 생성된 힙 메모리의 주소를 대입한다는 것과 같은 의미이다.
Student studentLee = new Student(); //Student 클래스 생성

위와 같이 생성된 클래스를 studentLee 변수에 대입하면, 인스턴스가 저장된 메모리를 studentLee 변수가 가리킨다.


Student student1 = new Student(); //Student 클래스 생성
Student student2 = new Student();

생성된 두 인스턴스는 당연히 각각 다른 메모리 공간을 차지한다.

  • 클래스가 생성될 때마다 인스턴스는 다른 메모리 공간을 차지한다. 이런 이유 때문에 클래스에 선언한 멤버 변수를 다른 말로 '인스턴스 변수'라고도 부른다.

☕ 참조 변수와 참조 값

참조 변수는 힙 메모리에 생성된 인스턴스를 가리킨다.

🔼 studentLee 인스턴스 생성 🔼 sutdentLee 참조 변수의 참조값이 출력된다. **클래스이름@주소 값**

☕ 용어 정리

  • 객체 : 생성된 인스턴스
  • 클래스 : 객체를 프로그래밍하기 위해 코드로 만든 상태
  • 인스턴스 : 클래스가 메모리에 생성된 상태
  • 멤버 변수 : 클래스의 속성, 특성
  • 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
  • 참조 값 : 생성된 인스턴스의 메모리 주소 값
profile
햄생

1개의 댓글

comment-user-thumbnail
2022년 5월 14일

참조가 참 조아요

답글 달기

관련 채용 정보