본문 바로가기
IT관련 정보

Java 공부편 - null

by 라온퐝 2024. 2. 23.

참조형 변수에서 가리키는 대상이 없다면 null이라는 특별한 값을 넣어둘 수 있습니다. null은 값이 존재하지 않는 없다는 뜻입니다.

null값 할당

null값 할당

Data data =null

Data 타입을 받을 수 있는 참조형 변수 data를 만들었습니다. 그리고 여기에 null 값을 할당했습니다. data 변수에는 아직 가리키는 객체가 없다는 뜻입니다.

data = new Data()

이후에 새로운 Data 객체를 생성해서 그 참조값을 data 변수에 할당했습니다. 이제 data 변수가 참조할 객체가 존재하게 됩니다.

data = null

마지막에 data에 다시 null 값을 할당했습니다. 이렇게 되면 data 변수는 앞서 만든 Data 인스턴스를 더는 참조하지 않게 됩니다. 이렇게 아무것도 참조하지 않게 되면 1 d81 eb93이라는 참조값을 다시 구할 방법이 없게 됩니다. 따라서 해당 인스턴스에 다시 접근할 방법이 없습니다.

이렇게 아무도 참조하지 않는 인스턴스는 사용되지 않고 메모리에 용량만 차지하게 됩니다. C와 같은 과거 프로그래밍 언어는 개발자가 직접 명령어를 사용해서 인스턴스를 메모리에서 제거해야 했습니다. 만약 실수로 인스턴스 삭제를 누락하면 메모리에 사용하지 않는 객체가 쌓여서 메모리 부족 오류가 발생하게 됩니다.

자바는 이런 과정을 자동으로 처리해줍니다. 아무도 참조하지 않는 인스턴스가 있으면 JVM의 가비지 컬렉션이 더 이상 사용하지 않는 인스턴스라 판단하고 해당 인스턴스를 자동으로 메모리에서 제거해 줍니다.

객체는 해당 객체를 참조하는 곳이 있으면, JVM이 종료할 때 까지 계속 생존하게 되고 중간에 해당 객체를 참조하는 곳이 모두 사라지면 그때는 JVM은 필요 없는 개체로 판단하고 가비지 컬렉션을 사용해서 제거하게 됩니다.

 

Java관련된 포스팅

 

 

변수와 초기화

변수의 종류 멤버 변수(필드) : 클래스에 선언 지역 변수 : 메서드에 선언, 매개변수도 지역 변수의 한 종류이다. 멤버변수, 필드 예시 name, age, grade는 멤버 변수이다. 지역변수 예시 student1, student2

raondreamtv.tistory.com

 

반응형