【初心者必見】Javaのデータ型について一覧で学んでみよう!

Java入門Java入門
サバ缶
サバ缶

どうもこんにちは!
サバ缶(@tech_begin)です。

前回、変数の宣言・初期化・上書きについて学びました。

まだ理解が浅いという方は、ぜひこちらもご覧くださいね!

さて、今回はその変数に入れるデータの種類である「データ型」について学んでいきましょう。

データ型

変数の中に入れるデータの種類を「データ型」と呼びます。

たくさん種類がありますが、一度に全てを覚える必要ありません。

繰り返しコードを書いて、少しずつ覚えていきましょう!

分類型名中身宣言の例頻度
整数long大きな整数long salesApple; //Appleの売り上げ
int普通の整数int salary; //給料
short小さな整数short age; //年齢
byteさらに小さな整数byte glasses; //メガネの所持数
小数double普通の小数double sight; //視力
float少し曖昧でもいい小数float weight; //体重
真偽値booleantrueかfalseboolean isAte //食べたか否か
文字char1文字char initial; //頭文字
文字列String文字の並び(単語)String name; //自分の名前
参考:スッキリわかるJava入門第2版

現場によって使用される頻度に違いはありますが、
基本的に「int」「double」「String」くらいしか使いません。

整数のデータ型(long, int, short, byte)

上の表で「大きいとか小さいとか何いってるんだ?」と思われたと思います。

同じ整数なのになぜ異なる種類があるのでしょうか。

それは変数の型によって、メモリを確保する領域が異なるためです。

以下の図でイメージしてみましょう。

Java 変数の仕組み

赤色の枠で囲っているのが、「変数が確保したメモリ領域」です。

変数の型によって、この確保するメモリの量が異なります。

以下で、詳しく見ていきましょう!

byte型

byte型の変数を宣言したら、メモリに1byte(8bit)の領域が確保されます。

従って、-128〜127の間の値を代入することができます。

計算式:2の8乗 = 256(が扱える値の範囲)
※正の数が1少ないのは、0も含まれるためです。

Byte(バイト)とBit(ビット)についての記事は、現在準備中です。
<バイトとビットの関係性>

long型

long型の変数を宣言すると、メモリに8byte(64bit)の領域が確保されます。

byte型の8倍の値を代入できる…と思いますよね。

実際には、その「8乗です」。

計算式:2の8乗の8乗 = 18,446,744,073,709,551,616
= -9,223,372,036,854,775,808〜9,223,372,036,854,775,807

正の数が1少ないのは、0も含まれるためです。値の大きさによって使用する型を使い分けましょう。

業務内容によっては1bit単位でのメモリ効率化を求められることもあることでしょう。

しかし、現代のコンピュータの処理能力が向上したこともあり、ほとんどのサービス・アプリケーション開発では特に意識する必要ありません。

「整数を扱うならint型を使う」くらいの認識で大丈夫です。

ほかにも変数の型があることは、くれぐれも忘れないようにしましょう!

小数のデータ型(double, float)

小数を含む数値を代入するためのデータ型です。

「浮動小数点数方式」というものを使って管理しているため「浮動小数点数」とも呼ばれます。

doublefloatよりも多くのメモリ領域を確保しますが、厳密な計算を可能とします。

以下、注意点です。

  • 金銭が絡む計算はdoubleまたはfloatを使用しない。
  • 浮動小数点方式を使用するこのデータ型は誤差を生むため、積み重なり大きな誤差を生む恐れがある
  • 参考:https://works.forward-soft.co.jp/blog/detail/10086

メモリが限られているシステムでの開発など、特別な事情がない場合はdoubleを使っておけば問題ないです。
しかし、使用する場合は注意しておきましょう。

真偽値のデータ型(boolean)

「真か偽」「YESかNO」のように二極化する値を入れるためのデータ型です。

中身は「True」と「False」のどちらかしか入らない特別なデータ型です。

Trueは「真」、Falseは「偽」という意味なので「真偽値」と呼ばれます。

文字に関するデータ型(char, String)

文字を入れる際は、以下の2ついずれかの型を使用します。

  • char型
    • 1文字だけ代入可能
  • String型
    • 文字列(文字の集まり)を代入可能
char gender; gender = '男';
String name; name = "サバ缶";

注意すべき点は「’」と「”」の使い分けです。

「’」は「シングルクォーテーション」と呼ばれ、char型に使用します。
「”」は「ダブルクォーテーション」と呼び、String型に使用します。

// とても細かいところですが、よく確認しましょう!
char gender; gender = "男"; // コンパイルエラー!
String name; name = 'サバ缶'; // コンパイルエラー!

char型に入れる値を「”」で囲うと、文字列(String型)として扱われます。
すると「データ型が合わないよ!」とエラーが返ってくるので注意しましょう。

まとめ

長文、お疲れ様でした。

「たくさんあって覚えられないよ!」という方でも大丈夫です。
最初から全て完璧覚えられる人なんていません。

私なんか変数に1年以上つまづいていました(笑)
そういうのは独学の辛いところです。

私のTwitterでもご相談を受け付けているので、お気軽にご連絡ください🙌

次は、定数について学んでいきます。

タイトルとURLをコピーしました