Java에서 Null 문자열 연결
Java에서는 Null 문자열을 다른 문자열과 연결해도 NullPointerException이 발생하지 않습니다. 이 동작은 놀랍게 보일 수 있지만 JLS(Java 언어 사양)에 정의되어 있습니다.
Null 문자열에 대한 연결이 성공하는 이유는 무엇입니까?
JLS 5에 따르면, 섹션 15.18.1.1에서는 참조가 null인 경우 연결 전에 문자열 "null"로 변환됩니다. 이 변환은 컴파일러에 의해 자동으로 수행됩니다.
널 문자열과의 연결은 어떻게 작동하나요?
내부적으로 컴파일러는 StringBuilder를 사용하도록 연결 작업을 최적화합니다. null 값을 효율적으로 처리할 수 있습니다. 바이트코드에서 null 문자열 "s"를 문자열 "hello"와 연결하는 동등한 코드는 다음과 같습니다.
String s = null; s = new StringBuilder(String.valueOf(s)).append("hello").toString();
StringBuilder 생성자는 null 문자열의 변환된 값인 "null"을 사용합니다. 그리고 이를 문자열 "hello"에 추가하여 최종 문자열 "nullhello"를 생성합니다.
참고: 문자열 연결은 Java 컴파일러가 수행할 수 있는 몇 가지 최적화 중 하나입니다. 정확한 구현은 사용된 컴파일러에 따라 다를 수 있지만 Null 연결 동작은 일관되게 유지됩니다.
위 내용은 Java는 Null 값이 포함된 문자열 연결을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!