検索

ホームページ  >  に質問  >  本文

Java中不能在声明数组大小的同时初始化的根本原因是什么?

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

eg.

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

全員に返信(3)返信します

  • 阿神

    阿神2017-04-17 17:27:34

    配列の初期化は、配列の固定容量を取得することです。
    {"","",""} メソッドは、配列の固定容量を取得し、各要素に値を割り当てることができます。

    new String[3] は、配列の固定容量をコンパイラに伝えることもできます。ちなみに、各要素を null に設定します。

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

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

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:27:34

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

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 17:27:34

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

    返事
    0
  • キャンセル返事