손영배 블로그 누구나 쉽게 이해하고 습득하기

참조변수 비교연산은 주소값끼리의 비교다, NullPointerException,String 본문

Java

참조변수 비교연산은 주소값끼리의 비교다, NullPointerException,String

손영배 2019. 4. 23. 22:49

참조 타입 변수들 간의 ==, != 연산은 동일한 객체를 참조하는지 (즉 주소가 같은지)를 알아볼 때 사용된다. 참조 타입

변수의 값은 힘 영역의 객체 주소이므로 결국 주소 값을 비교하는 것이 된다.

 

null과 NullPointerException

참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null(널) 값을 가질 수 있다. null 값도 초기값으로 사용 할 수 있기 때문에 null로 초기화도니 참조 변수는 스택 영역에 생성된다.

NullPointerException

참조 타입 변수가 null을 가지고 있을 경우, 참조 타입 변수는 사용할 수 없다. 참조 타입 변수를 사용하는 것은 곧 객체를 사용하는 것을 의미하는데, 참조할 객체가 없으므로 사용할 수가 없는 것이다. 그러나 프로그매러으 실수로 null값을 가지고 있는 참조 타입 변수를 사용하면 NullPointerException이 발생한다.

int [] intArray = null;

intArray[0] = 10; //NullPointerException

 

 

intArray 변수가 참조하는 배열 객체가 없기 때문이다.

String str = null;

String은 클래스 타입이므로 참조타입니다. 그래서 null로 초기화가 가능하다. String 객체의 length()라는 메소드를 호출하면 NulllPointerException이 발생한다. 이유는 str변수가 참조하는 String 객체가 없기 때문이다.

 

String name1 = new String("손영배");
String name2 = new String("손영배");

boolean result = str1.equals(str2);

'Java' 카테고리의 다른 글

Java Collection sort 쓰는 방법  (0) 2019.10.18
Java 접근제한자 정리  (0) 2019.05.12
Java 배열copy System.arraycopy()  (0) 2019.04.23
자바 메모리 사용 영역  (0) 2019.04.23
자바 데이터 타입 분류  (0) 2019.04.23