• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:回答の意味が解りません。)

Javaコンパイル実行時のエラーについて

このQ&Aのポイント
  • Javaのコンパイルは成功したが、実行時にエラーメッセージが表示される理由について説明します。
  • Javaのコンパイル時には問題なく成功したが、実行時に「java.lang.ArrayIndexOutOfBoundsException: 0」というエラーが発生する問題について解説します。
  • Javaのコンパイルは正常に行われますが、実行時に「java.lang.ArrayIndexOutOfBoundsException: 0」というエラーメッセージが表示される原因についてご説明します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

>回答No.8 amanojaku1 Javaの場合、オブジェクトは全て「参照型」(ポインタによって「参照」されている)です。 Javaの場合、配列も文字列もオブジェクトなので「参照型」(ポインタによって「参照」されている)です。 プリミティブ型について下記を参照して下さい。 【Java】基本データ型(プリミティブ型)について https://nobuo-create.net/primitive/

jump7799
質問者

お礼

お陰様で「参照の意味」が少しだけ解りました。

その他の回答 (8)

回答No.8

>ポインタの場合の「参照」とは、ポインタによる「参照」です。 >配列の"要素"を「参照」するのとは意味が違うので注意して下さい。 添付画像が「プリミティブ型」と「参照型」の模式図です。 配列の場合は、添付画像の「データ」が配列に対応します。

jump7799
質問者

お礼

ご丁寧にありがとうございます。 amanojaku1さんを目指します。

回答No.7

>ポインタの場合の「参照」とは、ポインタによる「参照」です、意味が違うので注意して下さい。 ポインタの場合の「参照」とは、ポインタによる「参照」です。 配列の"要素"を「参照」するのとは意味が違うので注意して下さい。

jump7799
質問者

お礼

ご回答誠にありがとうございました。 ポインタは難しいです。

回答No.6

>ポインタの場合の「参照」とは、ポインタによる「参照」です(何か言葉で言うと意味不明かもしれませんが)。 ポインタの場合の「参照」とは、ポインタによる「参照」です、意味が違うので注意して下さい。

回答No.5

>配列要素の場合では「参照」とは棚の区画の中を見ると言うイメージです 配列の"要素"を「参照」するとは棚の区画の中を見ると言うイメージです Javaの配列自体が「参照型」(ポインタによって「参照」されている)ですが、意味が違うので注意して下さい。

jump7799
質問者

お礼

ご回答誠にありがとうございます。

回答No.4

配列は棚をイメージして下さい。 添付ファイルの向かって左が「1次元配列」、添付ファイルの向かって右が「2次元配列」と言うイメージです。 配列要素の場合では「参照」とは棚の区画の中を見ると言うイメージです、(「args[0]」とは「args」配列の「0」番目の要素ですので)、「args」と言う名前の棚の「0」番目の区画と言うイメージです。 ポインタの場合の「参照」とは、ポインタによる「参照」です(何か言葉で言うと意味不明かもしれませんが)。 質問の場合は、棚の作成に失敗して、何も入れられない棚を作ってしまったらめに、棚の「0」番目の区画を「参照」しようとしたら、それが存在しないのでエラーになったと言うことです。

jump7799
質問者

お礼

解りやすいご説明、どうもありがとうございました。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>C:\WORK>java test16 テスト1 テスト2 >とはどういったケースに使うのですか? #2の方もいわれていますけどtest16が何をするプログラムなのか把握していますか? あなたが自分で作ったわけではなく何かの本やwebサイトに書いてあったプログラムでしょうから、その説明があったと思うのですけど。 書いてあるのを何も考えずにタイプしてコンパイル・実行して「動いたー」「何かエラーが出たー」とかやってる状態だといつまでたっても自分でプログラム組めるようになんてなりませんよ。

jump7799
質問者

お礼

おっしゃる通りですね。 モット、頭を使います。

  • Kaneyan-R
  • ベストアンサー率42% (1370/3194)
回答No.2

根本的に「何をするためのプログラムか」と言うことが理解できていないと思われます。 何をするプログラムかわかっていないから、どうやったら動くかもわからないのです。 何をするプログラムかわからないままプログラムを覚えても、何もできないプログラムしか覚えられませんよ。 掲題のプログラムでは、mainに引数として文字列配列「args」が設定されています。 ですから、プログラムの実行には引数である文字列が必ず必要になりますが、あなたは実行時に引数を全く与えていません。エラーが出るのは当然です。

jump7799
質問者

お礼

おっしゃる通りですね。 モット、頭を使います。

回答No.1

args[0] ・・・・・argsの1番目 args[1] ・・・・・argsの2番目 という意味です。 C:\WORK>java test16 テスト1 テスト2 とやれば、  args[0] ・・・・・テスト1  args[1] ・・・・・テスト2 となりますが、 C:\WORK>java test16 とやれば、  args[0] ・・・・・無し  args[1] ・・・・・無し となります。 無いものを見ようとすると(参照しようとすると)、エラー(例外)になります。 無いものを見ようとしているのは、 args[0].length() のところ(5行目)です。

jump7799
質問者

お礼

ご回答誠にありがとうございました。 C:\WORK>java test16 テスト1 テスト2 とはどういったケースに使うのですか?

関連するQ&A