1. 자바의 메모리 모델
1) java.exe가 실행이 되면서 자바가상머신(JVM)이 만들어진다. 그리고 메모리 공간 활용의 효율성을 높이기 위해서 메모리 공간을 여러 영역으로 나누게 된다.
2) 함수 호출과 스택 메모리
스택 : 함수가 호출될 때 지역 변수들이 사용하는 메모리, 함수의 수행이 끝나면 자동으로 반환되는 메모리이다.
3) 메서드(Method)
– 객체의 기능을 구현하기 위해서 클래스 내부에 정의하는 함수이다.
– 멤버 함수(member function) 이라고도 한다.
– 메서드를 구현함으로써 객체의 기능이 구현된다.
– 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는 것이 좋다.
ex) getStudentName() : 관례적으로 소문자로 시작하고 단어와 단어가 연결되는 부분은 대문자로 표기한다.
2. 인스턴스 생성과 힙 메모리 (heap memory)
2. 인스턴스 생성과 힙 메모리 (heap memory)
1) 인스턴스(instance)
– 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태이다.
– 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 된다.
– new 라는 키워드를 사용하여 인스턴스 생성한다.
2) 힙 메모리(heap memory)
– 생성된 인스턴스는 동적 메모리에 할당된다.
– 자바에서 Gabage Collector가 주기적으로 사용하지 않는 메모리를 수거한다.
– 하나의 클래스로부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 된다.
3. 용어
1) 객체 : 객체 지향 프로그래밍(Object Oriented Programming, OOP)의 대상, 어떤 속성 값과 행동이 생성되어 있는 인스턴스이다.
2) 클래스 : 객체를 프로그래밍 하기 위해서 코드로 정의해 놓은 상태이다.
3) 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태이다.
4) 멤버 변수 : 클래스 특성, 속성이다.
5) 멤버 메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현한 함수이다.
6) 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수이다.
7) 참조 값 : 생성된 인스턴스의 메모리 주소 값이다.