TomoProgの技術書

底辺プログラマーが達人プログラマーになるまで

parseIntとvalueOfの違いって何!?

皆さん
こんにちは、こんばんは
TomoProgです。

毎日ブログ更新4日目。
頑張っていきましょう。

今日はJavaのIntegerクラスのparseIntとvalueOfの違いについて調べてみます。

parseIntとvalueOfを実行してみる

public class Main {
    public static void main(String[] args) throws Exception {
        // Here your code !
        int i = Integer.valueOf("123");
        System.out.println(i);
        
        int j = Integer.parseInt("123");
        System.out.println(j);
    }
}
実行結果:
123
123

実行結果同じですね・・・
一体何が違うんだ・・・

やはり頼りになるのはGoogle先生!!
先生に聞いてみましょう。
「parseInt valueOf 違い」で検索すると下のサイトに簡潔に書いてありました。welovy.hatenablog.com

どうやら戻り値が異なるということを言っているようです。

Integerクラスを確認してみる

リファレンスでIntegerクラスのメソッドを調べてみましょう。

public static int parseInt(String s)
public static Integer valueOf(String s)

なるほど。
parseIntは戻り値がint型なのに対し、valueOfではIntegerクラスが戻り値なんですね。

Integerクラスはint型のラップクラスとして実装されていて、valueOfやparseInt以外にもcompareToやequalsなど、様々なメソッドを持っているみたいです。

プリミティブ型とは

プリミティブ型というのはデータを格納するための、最も基本的な型のことを言うそうです。
Javaでは下記の8種類をプリミティブ型と呼んでいます。

・byte
・short
・int
・long
・char
・float
・double
・boolean

まとめ

  • parseIntは戻り値がint型(プリミティブ型)
  • valueOfは戻り値がIntegerクラス

やっぱり実行結果が一緒でも何か違いはあるものですね。
それではまた〜

TomoProg