1
0

Javaのプリミティブ型とオブジェクト型の違い

Posted at

はじめに

Javaの内容で知らなくてもコードが書けてしまうことがあります。
ただし、知らないことで予期せぬ事態に繋がることはよくあることです。

Javaで知らずに使っていたけど、そういうことだったんだ!とかそうやって使い分けるんだ!というような内容をまとめていきます。

今回は値(プリミティブ)型と参照(オブジェクト)型の違いについて説明します。

値(プリミティブ)型

値型(またはプリミティブ型)は、基本的なデータ型であり、Javaでは以下の8つのプリミティブ型が提供されています。

説明
byte 8ビット整数
short 16ビット整数
int 32ビット整数
long 64ビット整数
float 単精度32ビット浮動小数点数
double 倍精度64ビット浮動小数点数
char 16ビットUnicode文字
boolean 真偽値(trueまたはfalse)

プリミティブ型は、メモリ上に直接値を保持し、オーバーヘッドが少なく、効率的に動作します。

しかし、プリミティブ型にはメソッドが存在しません。

参照(オブジェクト)型

参照型は、オブジェクトを参照するための型です。

Javaでは、クラス、インターフェース、配列が参照型に該当します。
参照型の変数は、実際のオブジェクトを指す参照(ポインタ)を保持します。

例として、以下のクラス型があります。

データ型 説明
Integer intのラッパークラス
Double doubleのラッパークラス
String 文字列を扱うクラス

参照型は、メソッドを持つことができ、オブジェクトに対する操作を行うための豊富な機能を提供します。

値型と参照型の具体例

intとInteger

intはプリミティブ型であり、Integerはそのラッパークラスです。以下に例を示します。

int num = 10;  // プリミティブ型
Integer obj = Integer.valueOf(num);  // オブジェクト型

Integerクラスを使用することで、さまざまなメソッドを利用できます。

int num = 10;
Integer obj = Integer.valueOf(num);

// メソッドの使用例
String str = obj.toString();  // numを文字列に変換
int hash = obj.hashCode();    // ハッシュコードを取得

charとString

charは単一の文字を表すプリミティブ型であり、Stringは文字列を扱うクラスです。

char c = 'A';  // プリミティブ型
String str = "Hello";  // オブジェクト型

Stringクラスを使用すると、文字列操作に関する多くのメソッドを利用できます。

String str = "Hello";

// メソッドの使用例
int length = str.length();  // 文字列の長さを取得
char ch = str.charAt(0);    // 文字列の特定の位置にある文字を取得
String upper = str.toUpperCase();  // 文字列を大文字に変換

まとめ

Javaでは、値(プリミティブ)型と参照(オブジェクト)型の違いを理解することが重要です。

プリミティブ型は軽量で効率的ですが、メソッドを持ちません。
一方、参照型はオブジェクト指向の特性を活かして、多くのメソッドと機能を提供します。

これらの違いを理解し、適切に使い分けることで、より効果的でメンテナブルなコードを書くことができます。

特に、ラッパークラスを使ってプリミティブ型の利便性を向上させる方法や、文字列操作におけるStringクラスの活用法は、Javaプログラマーにとって知っておくべき重要な知識です。

1
0
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
1
0