Java中不能在声明数组大小的同时初始化的根本原因是什么?
PHP中文网
PHP中文网 2017-04-17 17:25:34
0
3
683

找了一下发现网上只说就这么定义的,哪位大神能帮忙解释一下根本原因?
是不是能从虚拟机的角度解释一下?
谢谢啦!

eg.

String s[] = new String[] {"1","2","3"};正确
String s[] = {"1","2","3"};正确
String s[] = new String[3] {"Zero","One","Two"};错误
PHP中文网
PHP中文网

认证0级讲师

모든 응답(3)
阿神

배열 초기화는 배열의 고정 용량을 얻는 것입니다.
{"","",""} 메서드는 배열의 고정 용량을 얻고 각 요소에 값을 할당할 수 있습니다.

new String[3]은 또한 컴파일러에게 배열의 고정 용량을 알려줄 수 있으며, 그런데 각 요소를 null로 설정합니다.

단, 어레이의 고정 용량을 동시에 지정하는 두 가지 방법은 문법적 충돌이 발생할 수 있으니,

예를 들어 new String[4]{"","",""},

그러므로 이러한 모호함을 피하기 위해 배열 용량도 규제하는 이러한 작성 방식은 구문적으로 금지되어야 합니다

Peter_Zhu

문법은 이렇게 규정되어 있습니다. . .
가상머신과는 아무런 관련이 없습니다

https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.10.1

小葫芦

어레이는 고정된 크기의 메모리 영역에 적용됩니다

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