손영배 블로그 누구나 쉽게 이해하고 습득하기
참조변수 비교연산은 주소값끼리의 비교다, NullPointerException,String 본문
참조 타입 변수들 간의 ==, != 연산은 동일한 객체를 참조하는지 (즉 주소가 같은지)를 알아볼 때 사용된다. 참조 타입
변수의 값은 힘 영역의 객체 주소이므로 결국 주소 값을 비교하는 것이 된다.
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 |