Java 언어에서 null과 ""의 차이

Java 언어로 프로그래밍을 배우고 사용하는 개발자는 다음과 같은 코드를 자주 만날 수 있습니다.
String str1 = null;
String str2 = "";

저희가 꼼꼼히 생각하지 못할 때가 많아요.
null과
양자의 차이는 단지 이렇게 쓰면 된다는 것을 알 뿐이지만, 그것들 사이의 차이를 아는 것은 매우 중요하다!
String str1 = null;
이 코드는str1이 빈 인용이라는 것을 설명한다.
String str2 = "";
이 문장은str2가 빈 문자열 인용임을 나타낸다.좀 더 깊이 파고들면 컴파일러가 값이 없어요.
null의 변수는 메모리 공간을 분배하지만, 주어진 값은
""의 변수는 메모리 공간을 분배하기 때문에
str1은 아직 실례화된 대상이 아니다.
str2는 이미 실례화된 대상이다.
주의해야 할 것은null은 대상이 아니기 때문에 "은 대상이기 때문에 비교할 때 반드시
if (str1==null) {...}
if (str2.equals("")) {...}

대상은 equals로 비교하고null은 등호로 비교한다.따라서 String str1 = null인 경우그러면 다음 표기법은 잘못된 것입니다.
if (str1.equals("") || str1==null) {
    //   str1   , ...
    // ...
} 
올바른 쓰기 방법은 다음과 같습니다.
if (str1==null || str1.equals("")) {
    //    str1     ,   ,          
    // ...
}

마지막으로 예를 들자면 빈 유리컵 하나에 아무것도 없다고 하면 안 된다. 안에 공기가 있기 때문에 진공으로 뽑아도 된다.
null과
''의 차이는 진공과 공기와 같다. 이렇게 하면 비교적 쉽게 양자 간의 차이를 이해할 수 있다.
글은 여기까지 감사합니다.

좋은 웹페이지 즐겨찾기