본문 바로가기

프로그래밍/JAVA

클래스와 객체

클래스와 객체 사이에는 어떤 차이가 있을까 ?

  • 일반적으로 클래스와 객체는 똑같은 것이라고 착각할 경우가 많다.

    한마디로 클래스는 객체가 아니다(객체를 만들기 위한 용도로 쓰인다.)

클래스를 만들기 위한 청사진이다. 가상의 머신에 그 유형의 객체를 만드는 방법을 알려주는 역할을

하는 것으로 써는 클래스로부터 만들어진 각 객체는 클래스의 인스턴스 변수용으로 쓰기 위한 변수를 가질 수 있다.

예를 들어, Button 클래스를 이용하여 서로 다른 버튼 수십 개를 만들 수 있고, 각 버튼 마다 서로 다른 색,

크기, 모양 레이블 등을 지정 할 수 있다.

가장 이해하기 쉽게 DOG라는 클래스가 있다. 이런 DOG는 클래스는 하나이며 이것을 사용하여

여러 개의 객체(달마시안, 푸들, 진돗개)를 생성할 수 있다.



자바는 청소도 알아서 한다.

  • 자바에 객체가 만들어지면 힙(Heap)이라는 메모리에 공간에 저장된다. 하지만 우리가 기존에 알고 있던 메모리 힙과는 조금 다르다. 가비지 컬렉션 기능이 있는 힙이다. 객체를 만들면 자바에서는 그 객체의 크기에 따라 힙 안에 적당한 메모리 공간을 할당합니다. 예를 들어, 인스턴스 변수 15개가 있는 객체를 만들려면 아마도 인스턴스 변수 두 개만 있는 객체와 비교해서 공간을 더 많이 잡아 먹겠죠? 그런데 그 공간을 되찾아오려면 어떻게 해야 할까요? 어떤 객체가 더 이상 필요 없을 때 어떻게 힙에서 치워 버릴 수 있을 까요? 자바에서는 그런 메모리 관리를 자동으로 처리 해줍니다. JVM에서 어떤 객체가 절대로 다시 쓰이지 않을 것이라는 결론을 내릴 수 있으면 가비지컬렉션 대상이 됩니다. 그리고 메모리가 모자라게 되면 가비지 컬렉터가 작동하면서 더 이상 사용할 수 없는 객체를 치워버려서 재활용할 수 있는 메모리 공간을 확보합니다.

'프로그래밍 > JAVA' 카테고리의 다른 글

jstl의 마지막 번째 찾기 length, begin, end, step, varStatus  (0) 2012.07.18
SiteMesh Layout적용하기  (0) 2012.06.05
SiteMesh Reference [매뉴얼 번역본]  (0) 2012.06.05
API 링크 정보  (0) 2012.06.01
상속과 다형성  (0) 2012.05.14