java new对象 User user; 和 User user = null; 有什么区别
PHP中文网
PHP中文网 2017-04-18 10:32:27
0
5
752

User user;

User user = null;
这两种写法有什么区别呢?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(5)
洪涛

User user;가 어디에 나오는지에 따라 다르므로 먼저 결론을 내려보겠습니다.

  1. 객체의 속성(필드)인 경우 두 작성 방법에는 차이가 없습니다.

  2. 메서드 내 로컬 변수인 경우, 사용자에게 값을 할당할 수 있는 다른 위치가 메소드 내에 없으면 컴파일 오류가 발생합니다.

객체의 속성인 경우 Java 컴파일러는 컴파일 중에 자동으로 필드에 초기 값을 할당합니다(원래 유형은 기본값이고 참조 유형은 null입니다). 예를 들어 다음 코드는 다음과 같습니다.

으아아아

컴파일 후 javap를 사용하여 바이트코드를 확인하세요. 빨간색 부분은 컴파일러가 자동으로 초기값을 할당하는 과정입니다.

메서드의 지역 변수인 경우 컴파일러는 자동으로 초기값을 할당하지 않습니다. User user;user라는 변수는 정의만 되어 있고, 메모리에 user에게 할당된 공간은 없습니다. 초기화되지 않고 컴파일도 불가능합니다. User user = null;user라는 변수가 정의될 ​​뿐만 아니라, user에 대한 메모리 공간도 할당됩니다. 사용자는 이제 null을 가리킵니다.

으아아아
阿神

user가 지역 변수인 경우: 첫 번째 할당(null로 초기화 포함) 전에 user를 사용하면 컴파일 오류가 발생합니다

과제 후 차이는 없습니다

PHPzhong

똑같은 것 같아요

Ty80

차이 없음, 기본 초기화 값은 null입니다

PHPzhong

아니요= 스택에 그를 위한 공간이 생성되지 않습니다. =null을 추가하면 스택에 빈 자리 표시자

가 지정됩니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿