Contents

Java
2013.11.22 20:46

2.3.5 클래스와 메모리

조회 수 313 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
book_7250.png


2.3.5 클래스와 메모리

메모리적인 측면에서 클래스의 의미를 찾아보자. 클래스는 변수들의 집합체이다. 자세히 들여다보면 Person이라는 데이터 타입의 근본은 변수로 이루어져 있으며, 여러 개의 변수를 조합해서 하나의 데이터 타입을 이루고 있다. 이와 같이 여러 개의 변수(Variable)를 묶어서 하나의 새로운 데이터 타입(Data Type)을 만드는 역할을 하는 것이 바로 클래스(Class)이다.

□ Person 클래스의 구성
◇ Person이라는 데이터 타입의 근본은 변수로 이루어져 있으며, 여러 개의 변수를 조합해서 하나의 데이터 타입을 이루고 있다.

사실 클래스가 변수의 묶음이긴 하지만 자세히 관찰하면 내부의 변수들은 메모리를 어떻게 분할할 것인지를 나타낸다. 앞에서 사용한 클래스를 다시 살펴보자.

□ Person 클래스 내의 변수들의 역할
◇ 메모리를 어떻게 분할할 것인지를 나타낸다.

▒ Person 클래스
1
2
3
4
5
public class Person{
         public int age;
         public float height;
         public float weight;
 }

Person이라는 클래스를 데이터 타입의 크기로 생각해보면 12바이트의 메모리를 나타내고 있다. 그리고 Person 데이터 타입으로 객체를 생성하면 분명 12바이트의 메모리가 만들어질 것이다.

▒ Person의 메모리 생성
1
Person p = new Person();

□ Person p의 메모리
◇ □□□□   □□□□   □□□□

만약 여러분이 12바이트의 메모리 속에 앞쪽 4바이트에 숫자 10을 넣고자 한다면 어떻게 해야 할까? 중간 4바이트에 float형으로 넣고자 한다면 어떻게 해야 할까? 클래스가 왜 변수의 집합으로 되어 있는지 이제 대충 감을 잡았을 것이다.

□ 클래스가 변수의 집합으로 되어 있는 이유
◇ 메모리가 생성된 이후 메모리의 각 부분에 접근하기 위한 이름을 붙여 놓은 것이 변수이다.
◇ 클래스 내의 변수는 메모리를 적절하게 잘라주는 역할을 한다.

전체 12바이트의 메모리가 만들어지는 것은 사실이지만 내부의 메모리의 각 부분에 미리 이름을 붙여두었다고 볼 수 있다. 이러한 이유에서 여러분은 클래스를 만들 때 변수의 조합으로 만드는 것이다. 그리고 해당 변수들은 메모리가 실제 생성되었을 때 메모리의 각 부분에 접근할 수 있는 방법을 제공하는 것이다.

단순히 생각해보면 클래스를 만든다는 것은 변수의 집합을 만드는 것 같지만 자세히 들여다보면 클래스 내의 변수들은 메모리의 형태와 메모리를 적절하게 잘라주는 역할을 하는 것이다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
44 Java 3.2.3 컴파일과 실행 IT장인 2013.12.28 339
43 Java 3.2.2 자바의 환경설정 IT장인 2013.12.28 450
42 Java 3.2.1 자바 JDK IT장인 2013.12.28 352
41 Java 3.1.2 Introduction IT장인 2013.12.28 241
40 Java 3.1.1 핵심 Question IT장인 2013.12.28 276
39 Java 2.4.3 결론 IT장인 2013.11.22 301
38 Java 2.4.2 배우게 될 클래스 IT장인 2013.11.22 349
37 Java 2.4.1 메모리와 클래스 IT장인 2013.11.22 381
» Java 2.3.5 클래스와 메모리 IT장인 2013.11.22 313
35 Java 2.3.4 클래스와 데이터베이스 IT장인 2013.11.22 352
34 Java 2.3.3 클래스의 역할 IT장인 2013.11.22 352
33 Java 2.3.2 자바에서 사용하지 않는 구조체 IT장인 2013.11.22 377
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6