💭 はじめに
Javaを学び始めたばかりの人がよく混乱するポイントのひとつ……
Stringって、プリミティブ型っぽく見えるけど、違うの?
実は、String
は見た目はシンプルだけど、**参照型(オブジェクト)**なんです!
この記事では、「String
がなぜ参照型なのか?」「プリミティブ型との違いは?」を分かりやすく解説していきます。
1. Stringはプリミティブ型じゃない!
Javaには、以下のようなプリミティブ型(基本型)があります。
型 | 例 | 説明 |
---|---|---|
int |
100 |
整数 |
double |
3.14 |
小数 |
boolean |
true |
真偽値 |
char |
'A' |
1文字 |
👉 String
はこの中には入っていません。
それもそのはず、String
は
Javaの標準ライブラリで定義されたクラス(オブジェクト)
なんです。
String name = "Pikachu"; // Stringはクラス!
2. プリミティブ型とのちがいは?
比較ポイント |
int (プリミティブ型) |
String (参照型) |
---|---|---|
メモリに保持するもの | 値そのもの | 文字列のデータがある場所(アドレス) |
null を代入できる? | ❌ できない | ✅ できる |
メソッドが使える? | ❌ 使えない | ✅ .length() などが使える |
✨ 実際にやってみよう!
int num = 100;
// num.length(); ← コンパイルエラー!
String str = "Hello!";
System.out.println(str.length()); // 出力:6
3. なぜ間違いやすいの?
理由は簡単!String
は特別扱いされているから。
まるでプリミティブ型のようにリテラル("")で代入できるからです。
String msg = "こんにちは"; // ✅ 文字列リテラル(簡略表現)
String msg2 = new String(); // ⛔ わざわざ new する
「文字列はすごくよく使うから、特別な書き方(リテラル)を用意して、
処理も高速化しちゃおう!」ってした結果、
初心者ほど「プリミティブっぽい!」と感じてしまうようになった。
💡 まとめ
-
String
はプリミティブ型ではなく参照型(オブジェクト)! -
String
はクラス型なのでnullを代入できるし、メソッドも使える!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!