지역 변수의 상태가 범위 내에서 제어되기 때문에
// method/loop/if/try-catch etc...
{
Date d; // if it's not intialised in this scope then its not intialised anywhere
}
필드의 경우가 아닙니다
class Foo{
Date d; // it could be intialised anywhere, so its out of control and java will set to null for you
}
이제 변수를 null로 설정하고 즉시 사용하는 것이 좋은 이유는 무엇입니까? 어쩌면 그것은 때때로 끔찍한 실수로 이어지는 역사적 실수 일 수도 있습니다.
{
Date d = null;
try{
}catch{ // hide it here
}
return d;
}
이제 의미상의 차이점은 무엇입니까?
Date d;
유형의 객체를 가리키는 참조를 보유 할 수있는 변수를 선언 Date
하지만
Date d= null;
정확히 동일하지만 참조가 이번에는 null을 가리키고 있습니다. null은 다른 참조와 같습니다. 네이티브 포인터의 공간을 차지합니다. 즉 32 비트 시스템에서는 4 바이트, 64 비트 시스템에서는 8 바이트입니다.