1. 용어 정리
- 객체 : 객체 지향 프로그램의 대상, 클래스의 인스턴스(생성된 인스턴스)
- 인스턴스: new키워드를 사용하여 클래스를 메모리에 생성한 상태 , 객체
- 클래스: 객체의 속성을 정의하고 기능을 구현하여 만들어 놓은 코드 상태, 객체를 만들어 내기 위한 틀 , 필드(멤버변수)와 메소드(멤버 함수)로 구성된다.
- 필드(멤버 변수): 객체 내에 값을 저장할 멤버 변수
- 메소드(멤버 함수): 클래스의 멤버 함수, 멤버 변수를 이용하여 클래스의 기능(객체의 기능)을 구현한 함수
- 참조 변수: 메모리에 생성된 인스턴스를 가르키는 변수
- 참조 값: 생성된 인스턴스의 메모리 주소 값
public class StudentTest {
public static void main(String[] args) {
Student studentLee = new Student();
studentLee.studentID= 12345;
studentLee.setStudentName("Lee");
studentLee.address="서울 강남구";
studentLee.showoStudentInfo();
System.out.println(studentLee);
}
}
2. heap memory(동적 메모리)
- 생성된 인스턴스는 heap memory에 할당
- 하나의 클래스로부터 여러 개의 인스턴스 생성, 각각 다른 메모리 주소를 가짐
- JAVA에서는 Gabage Collector가 주기적으로 사용하지 않는 메모리 수거
- C와 C++의 경우 사용한 heap memory를 프로그래머가 free(), delete를 이용하여 해지 시켜야 한다.
(참고: fastcampus 한 번에 끝내는 Java/Spring 웹 개발 마스터)