블로그 상단광고2




[자바강의]7.객체의 일생 자바(JAVA) 프로그래밍 공부

안녕하세요 


저두 오랜만에 강의를 올리는 거라 제가 어디까지 했는지 몰라서 밑에 강의들을 전부 읽고 왔습니다.


클래스랑 객체 인스턴스 단어의 개념을 잘 모르겠으면 지난 강의를 한번 더 보고 와주세요..

클래스와 객체 개념을 어느정도 알고 있다고 가정하고 강의를 시작하겠습니다.



오늘은 객체가 생겨나고 없어지는 객체의 일생에 대하여 강의를 해보겠습니다.


그림입니다.<br />원본 그림의 이름: CLP00000d900001.bmp<br />원본 그림의 크기: 가로 958pixel, 세로 442pixel


자바에서는 위 그림에서 보듯이 new를 사용해서 객체를 생성하고 메소드를 사용하고 객체의 참조변수를 null로 바꿈으로서 객체를 파괴합니다.

        -조금 표현이 이상하긴 하지만 나중에 보고 고치도록 하겠습니다.


1.객체의 생성


그림입니다.<br />원본 그림의 이름: CLP00000d900003.bmp<br />원본 그림의 크기: 가로 1174pixel, 세로 725pixel

객체의 생성은 위에 과정을 거치면서 생성이 됩니다.


여기서 주의할 점은 car mycar를 선언했을 때 객체가 만들어 지는 것이 아니라 객체를 가리키는 참조값을 담는 변수만 생성된다는 점입니다.


수많은 자바를 배우는 학생들이 car mycar만 만들어 두고 객체를 만들지 않아 수많은 null pointer 에러를 만들어 내죠..


2.객체의 사용


그림입니다.<br />원본 그림의 이름: CLP00000d900004.bmp<br />원본 그림의 크기: 가로 995pixel, 세로 198pixel

우리가 잘 알고 있는 객체의 사용입니다.


mycar.speed 라고 하면 car로 만들어낸 객체에 필드값 speed를 뜻합니다.

        -tip : 메소드랑 필드의 구분은 ‘()‘으로 할 수 있습니다. ()가 뒤에있으면 매개변수를 받는 메소드입니다.


해서 = 100을 하면 mycar가 참조하는 객체의 speed라는 변수에 100이라는 값이 들어가게 됩니다.


3.객체의 소멸


자바에서 객체의 소멸은 다른 객체지향언어(C++)와 달리 개발자가 직접 객체를 풀어줄 필요가 없습니다.


자바는 다른 언어와 다르게 가비지 컬렉션이라는 장치가 우리가 만든 프로그램이 돌아가는 도중에 사용되지 않는 객체를 체크해서 메모리에서 객체를 제거합니다.


 그림입니다.<br />원본 그림의 이름: CLP00000d900005.bmp<br />원본 그림의 크기: 가로 840pixel, 세로 667pixel

위에처럼 car1,2라는 참조변수에 각각 객체를 생성합니다.

그다음에 car2 참조변수에 객체 1을 가리키게 합니다.

그러면 객체2는 메모리공간에서 둥둥떠다니는 신세가 되죠.


이러한 객체들을 자바에서 가비지 컬렉션이 체크를 해서 메모리에서 소멸시켜 버립니다.


그림입니다.<br />원본 그림의 이름: CLP00000d900007.bmp<br />원본 그림의 크기: 가로 859pixel, 세로 299pixel
위에 예제는 객체를 가리키고 있는 참조변수가 존재한다면 객체는 소멸되지 않는다는 걸 보여줍니다.

car1,2참조변수가 둘다 객체1을 가리키고 있고 이상태에서 car1의 값은 null로 만들어도 객체 1을 car2가 가리키고 있으므로 가비지컬렉션이 소멸을 시키지 않습니다.



자바에서 객체의 생성과 소멸에 대하여 알아보았는데 부족한 내용이나 수정할 점 있으시면 언제든지 댓글 남겨주시길 바랍니다.


덧글

댓글 입력 영역



호무리 시계 위젯(디지털)

구글광고

구글 서치

통계 위젯 (화이트)

14
27
103079