JavaのString初期値についての質問です。
String型は宣言しただけで初期値を入力していない状態だと、
自動的にnullで初期化されるという認識でいるのですが、
その状態では出力をすることができませんでした。(以下コード)↓↓↓
String str;
System.out.println(str); ←コンパイルエラー
String s = null;
System.out.println(s); ←"null"と表示されます。
ネットで調べたところ、「nullと初期値が未定義である。」とは意味が異なる。と書かれていました。
意味が異なるのでエラーになる。というのはなんとなくわかりましたが、
明示的にnullで初期化をした場合と内部ではどのような違いがあるのでしょうか?
そして追加なのですが、
String[] moji = new String[3];
for(String tmp : moji) {
System.out.println(tmp);
}
とした場合は"null null null"と表示され、コンパイルエラーにはなりません。明示的にnullで初期化をしているわけではないのに配列型のStringではうまくいきます。newしていることと関係があるのでしょうか?ご指導よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/15 05:00