programing

초기화되지 않은 개체 vs NULL로 초기화됨

javaba 2022. 12. 25. 10:52
반응형

초기화되지 않은 개체 vs NULL로 초기화됨

저는 자바에서 일하고 있습니다.

일반적으로 다음과 같이 몇 가지 개체를 설정합니다.

public class Foo {
    private SomeObject someName;

    // do stuff

    public void someMethod() {
        if (this.someName != null) {
            // do some stuff
        }
    }
}

문제는 다음과 같습니다.- 그렇죠 - 기초부터 시작하자someName이 예에서와 같은null할 수 있다reliably for all objects초기화되지 않은 개체를 null로 확인하는 것이 정확하다고 가정할 수 있습니까?

정답입니다. 명시적으로 초기화되지 않은 참조 유형의 정적 멤버와 인스턴스 멤버는 모두 다음과 같이 설정됩니다.nullJava에 의해.어레이 멤버에도 동일한 규칙이 적용됩니다.

Java Language Specification 섹션 4.12.5에서 다음 순서를 수행합니다.

변수의 초기값

프로그램의 모든 변수는 값을 사용하기 전에 값을 가져야 합니다.

각 클래스 변수, 인스턴스 변수 또는 배열 구성 요소는 생성 시 기본값으로 초기화됩니다.

[...] 모든 참조 유형에 대해 기본값은 다음과 같습니다.null.

위의 규칙은 로컬 변수를 제외합니다.이러한 변수는 명시적으로 초기화해야 합니다.그렇지 않으면 프로그램이 컴파일되지 않습니다.

이 경우,Object참조가 선언되었지만 인스턴스화되지 않았습니다. 그 값은 다음과 같습니다.null.

언급URL : https://stackoverflow.com/questions/16699593/uninitialized-object-vs-object-initialized-to-null

반응형