18
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】知識編 えっ、Stringってプリミティブ型じゃないの!?

Posted at

💭 はじめに

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を代入できるし、メソッドも使える!

あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


18
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?