Java

eclipse / 자바 Null, NullPointer

bokboks 2023. 3. 17. 23:53

안녕하세요

이전 포스팅에서 자바의 참조변수 와 데이터 타입에 대하여 알아보았는데요

이번엔 자바의 null, NullPointer 에 대하여 알아보겠습니다.

 

 

eclipse / 자바의 참조 변수 와 데이터 타입

안녕하세요 이전엔 자바에서의 반복문 중 하나인 while , do-while문을 알아보았는데요 이번 포스팅에서는 자바의 참조변수 와 데이터 타입에 대하여 알아보겠습니다. eclipse / while ,do while 문 안녕하

stackbok.tistory.com


package javaexp.a05_reference;

public class A02_NullPointer {
	public static void main(String[] args) {

		/*
		 #null
		 1. 변수가 참조하는 객체가 없는 경우 초기값으로 사용 가능
		 
		 Stack     [		]
		 		   [  heap	]
		 		   [		]
		 	heap 영역에는 할당하지 않고,stack 영역에서 선언만 한 상태에서 객체를 초기화시키는
		 	것을 말한다.
		 	
		 	Person p = null;
		 	cf)기본데이터 유형을 일반적으로 해당 유형에 맞게 초기화 시킨다.
		 		int num01 = 0; double num02 = 0.0;
		 2. 참조 타입의 변수에만 저장가능하다.
		 3.	null로 초기화된 참조 변수는 스택 영역 생성
		 
		 */
		Friend f = null; //객체가 선언하고, heap영역에 생성되지 않음.
		//객체의 초기화로 객체를 선언하지 않을 때, null로 선언한다.
		System.out.println(f);//객체는 선언 되어있지만 heap 영역에 할당되지 않는 상황이라 null 표기
//		System.out.println(f.name); NullPointerException
//		NullPointerException : Pointer(주소값)이 Null(없는) Exception(에러/예외)
//			발생했습니다. -heap 영역에 객체가 생성되지 않는 상황에서
//						객체가 가지고 있는 구성요소를 호출할 때, 발생하는 예외..
		
		f = new Friend();
		//객체가 선언되고 객체를 생성하여 heap영역에 메모리를 할당할수 있다.
		Friend f1 = new Friend();
		System.out.println(f);
		System.out.println(f.name);
		System.out.println(f);
//		System.out.println(f.name);
	}
	
}
class Friend{
	String name ="친구1";
}

결과값

  1. null
  2. javaexp.a05_reference.Friend@24d46ca6
  3. 친구1
  4. javaexp.a05_reference.Friend@24d46ca6

이상으로 null , nullpointer 에 대하여 알아보았습니다

감사합니다.