Java에서는 Null 문자열을 다른 문자열과 연결해도 NullPointerException이 발생하지 않습니다. 예상하다. 대신 결과는 앞에 "null"이 붙은 새 문자열입니다.
Java 언어 사양(JLS)에 따르면 ):
"[null 문자열에 대한] 참조가 null인 경우 문자열 'null'(ASCII 문자 n, u, l, l 4개)로 변환됩니다."
따라서 null 문자열은 연결이 이루어지기 전에 자동으로 "null"로 변환됩니다. .
컴파일러는 성능 향상을 위해 문자열 연결을 최적화합니다. StringBuilder 객체를 사용하여 연결 결과를 누적함으로써 이를 수행합니다.
null 문자열을 발견하는 경우:
다음 코드를 고려하세요.
String s = null; s = s + "hello"; System.out.println(s); // prints "nullhello"
컴파일러는 이 코드를 다음과 같이 최적화합니다. 해당 항목:
s = new StringBuilder(String.valueOf(s)).append("hello").toString();
s가 null이므로 String.valueOf(s)는 "null"을 반환하며, 이 값은 StringBuilder에 추가되어 문자열로 변환됩니다.
위 내용은 Java에서 Null 문자열을 연결하면 NullPointerException이 발생하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!