반응형
초기화되지 않은 개체 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로 확인하는 것이 정확하다고 가정할 수 있습니까?
정답입니다. 명시적으로 초기화되지 않은 참조 유형의 정적 멤버와 인스턴스 멤버는 모두 다음과 같이 설정됩니다.null
Java에 의해.어레이 멤버에도 동일한 규칙이 적용됩니다.
Java Language Specification 섹션 4.12.5에서 다음 순서를 수행합니다.
변수의 초기값
프로그램의 모든 변수는 값을 사용하기 전에 값을 가져야 합니다.
각 클래스 변수, 인스턴스 변수 또는 배열 구성 요소는 생성 시 기본값으로 초기화됩니다.
[...] 모든 참조 유형에 대해 기본값은 다음과 같습니다.
null
.
위의 규칙은 로컬 변수를 제외합니다.이러한 변수는 명시적으로 초기화해야 합니다.그렇지 않으면 프로그램이 컴파일되지 않습니다.
이 경우,Object
참조가 선언되었지만 인스턴스화되지 않았습니다. 그 값은 다음과 같습니다.null
.
언급URL : https://stackoverflow.com/questions/16699593/uninitialized-object-vs-object-initialized-to-null
반응형
'programing' 카테고리의 다른 글
numpy.array 형상(R, 1)과 (R,)의 차이 (0) | 2022.12.25 |
---|---|
kill - 3을 사용하여 Java 스레드 덤프를 가져옵니다. (0) | 2022.12.25 |
Workbench를 사용하여 서버에서 데이터베이스의 ER 모델을 가져오는 방법 (0) | 2022.12.25 |
선택한 색인으로 MySQL에 임시 테이블 만들기 (0) | 2022.12.25 |
Scala 코드가 단순해 보이는/줄 수가 적은 Scala 및 Java 코드 샘플? (0) | 2022.12.25 |