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

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

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 に設定します。

ただし、配列の固定容量を同時に指定する 2 つの方法では、構文の競合が発生する可能性があります。

例: new String[4]{"","",""}、

そのような曖昧さを避けるために、配列の容量も規定するこの書き方は構文的に禁止すべきです

いいねを押す +0
Peter_Zhu

文法はこのように規定されています。 。 。
仮想マシンとは関係ありません

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

いいねを押す +0
小葫芦

配列は固定サイズのメモリ領域に適用されます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート