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

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

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

小葫芦

數組申請的是一塊固定大小的記憶體區

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板