□ 메모리에서 객체는 동적생성됨
○ 객체는 메모리에서 동적으로 생성되며, 객체가 더 이상 필요없게되면 GC(Garbage Collector)에 의해서 제거됨
* GC로 인하여 효율적인 메모리 관리 및 유지가 가능
○ 객체가 생성되면 메모리에 저장됨과 동시에 객체위치를 가르키는 즉, 레퍼런스 주소 또한 메모리에 저장됨
□ 자료형이 같아도 다른객체임
○ 클래스가 같다고 객체 또한 같은 것은 아님. 출력주소를 보면 다른것을 알 수 있음.
□ null 과 NullPointException
○ 레퍼런스에 Null이 저장되면 객체의 연결이 끊기며, 더 이상 객체를 이용할 수 없음
예제1) 클래스 생성
package pjt_test;
public class ObjectClass {
//클래스 생성자
public ObjectClass() {
}
//클래스 메서드
public void getInfo() {
System.out.println("--getInfo()--");
}
}
예제2) 객체 생성 및 객체주소 출력, 객체 null일경우 출력코드
package pjt_test;
public class ObjectClass_Class {
public static void main(String[] args) {
ObjectClass obj1 = new ObjectClass(); //생성된 클래스로부터 객체 생성
ObjectClass obj2 = new ObjectClass(); //생성된 클래스로부터 객체 생성
ObjectClass obj3 = new ObjectClass(); //생성된 클래스로부터 객체 생성
System.out.println("객체들 주소");
//클래스가 같다고 객체 또한 같은 것은 아님. 출력주소를 보면 다른것을 알 수 있음
System.out.println("obj1 주소 : " +obj1);
System.out.println("obj2 주소 : " +obj2);
System.out.println("obj3 주소 : " +obj3);
System.out.println("==========================");
//생성객체에 클래스 메서드 호출 & null 이아니므로 정상출력
obj1.getInfo();
obj2.getInfo();
//생성객체에 클래스 메서드 호출 & null 이므로 출력 X → NullPointerException 표시
obj3 = null;
obj3.getInfo();
}
}
'Java > Java_basic' 카테고리의 다른 글
Step13. 패키지와 Static (0) | 2023.09.24 |
---|---|
Step12. 생성자와 전역/지역/매개변수, this (2) | 2023.09.24 |
Step10. 객체 - 메서드와 접근자 (0) | 2023.09.22 |
Step9. 객체지향 프로그램 (0) | 2023.09.22 |
Step8. 반복문 (0) | 2023.09.21 |