728x90
반응형
실전 자바 강좌 (ver.2018) - 초보부터 개발자 취업까지!! 강의를
개인공부하며 정리하는 용도의 포스팅입니다.
학습목표
- 메모리에 생성된 객체와 레퍼런스, null에 대해서 학습
메모리에서 객체 생성(동적 생성)
객체는 메모리에서 동적으로 생성
객체가 더 이상 필요없게 되면 GC(Garbage Collector)에 의해서 제거.
레퍼런스(가리킨다)
생성한 객체의 주소를 변수에 저장하는 것.
ObjectClass obj1 = new ObjectClass();
ObjectClass obj2 = new ObjectClass();
ObjectClass obj3 = new ObjectClass();
System.out.println("obj1 ----> " + obj1);
System.out.println("obj2 ----> " + obj2);
System.out.println("obj3 ----> " + obj3);
결과
obj1 ----> lec14Pjt001.ObjectClass@7852e922
obj2 ----> lec14Pjt001.ObjectClass@4e25154f
obj3 ----> lec14Pjt001.ObjectClass@70dea4e
- 메모리 주소 값은 각 컴퓨터별로 다르다
자료형이 같아도 다른 객체
자료형이 같아도 다른 공간에 존재하는 객체는 다른 객체.
ObjectClass obj1 = new ObjectClass();
ObjectClass obj2 = new ObjectClass();
ObjectClass obj3 = new ObjectClass();
if(obj1 == obj2) {
System.out.println("obj1 == obj2");
} else {
System.out.println("obj1 != obj2");
}
if(obj2 == obj3) {
System.out.println("obj2 == obj3");
} else {
System.out.println("obj2 != obj3");
}
if(obj1 == obj3) {
System.out.println("obj1 == obj3");
} else {
System.out.println("obj1 != obj3");
}
결과
obj1 != obj2
obj2 != obj3
obj1 != obj3
Null과 NullPointException
레퍼런스에 null이 저장되면 객체의 연결이 끊기며 더 이상 객체를 이용할 수 없다.
System.out.println("obj1 ----> " + obj1);
obj1.getInfo();
obj1 = null;
System.out.println("obj1 ----> " + obj1);
obj1.getInfo();
결과
obj1 ----> lec15Pjt001.ObjectClass@7852e922
-- getInfo method --
obj1 ----> null
Exception in thread "main" java.lang.NullPointerException
at lec14Pjt001.MainClass.main(MainClass.java:44)
Reference
728x90
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java] - 패키지와 static (0) | 2020.12.18 |
---|---|
[Java] - 생성자와 소멸자, this 키워드 (0) | 2020.12.18 |
[Java] - 메서드 (0) | 2020.12.18 |
[Java] - 클래스 제작과 객체 생성 (0) | 2020.12.17 |
[Java] - 객체지향 프로그램이란 (0) | 2020.12.17 |