アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。
早速ですがjavaの配列のことなんですが
最大要素数が255に設定されているのですが
これは何故か理由を知っている方がいたら教えてください

javaにはあまり関係ないことなのかもしれませんが・・・

A 回答 (4件)

>最大要素数が255に設定されているのですが


scene = new String[1000];
とか、要素数が1000個でも作れますが・・・

この回答への補足

間違えました・・
要素数ではなく配列の次元でした・・・

補足日時:2007/04/24 14:55
    • good
    • 0

JVMの制約として、Sunマイクロが定義しているから


・・・っていうのは、
望まれている回答ではないのですよね?(^-^;
http://java.sun.com/docs/books/jvms/second_editi …

4.8 Constraints on Java Virtual Machine Code

No anewarray instruction may be used to create an array of more than 255 dimensions.
とかかれているのですが。

「may be」なので、もっと大きくても問題ない実装のJVMもあるかもしれませんが。
    • good
    • 0

ANo.2です。


http://d.hatena.ne.jp/muimy/20070330/1175221299
こんな日記検索できました。

そしたら、コメントに投稿している人が
私の示したURLとは別にJVMバイトコード表の方も参照されてました。
http://java.sun.com/docs/books/jvms/second_editi …
なるほど。
多次元配列は、バイトコードに展開された時に、次元数が1バイトで表記されているから255までしか無理ってことですね。
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません(汗
No.2の回答の方も兼ねてこちらにお礼を…

色々と調べていただいてありがとうございます
添え字+次元数で256になるから255までってことでしょうか
でも何となくJVMでの仕様って納得してしまいました(;´∀`)
ありがとうございました

お礼日時:2007/04/28 10:39

型宣言しただけでもエラーになるのだから、以下のような仕様のためでしょう。



配列型のディスクリプタは、その次元255以下の場合にのみ有効となる。
An array type descriptor is valid only if it represents 255 or fewer dimensions.

参考URL:http://java.sun.com/docs/books/jvms/second_editi …
    • good
    • 1
この回答へのお礼

遅くなって申し訳ありません(汗
やっぱり仕様ですか
JVMの仕様ってことはコンパイラが違ったらエラーが出なくなる
かもしれない可能性もあるかもしれないのでしょうか?
って意味のない過程ですよね…
こんな質問に答えていただいてありがとうございます

お礼日時:2007/04/28 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!