Java SE Silver合格に向けて ~Javaのデータ型の操作~

ヘッダー広告
スポンサードリンク


現在私はJava SE Silverの合格に向けて勉強しています。
職場ではWebアプリケーションの開発をしていますが、オンライン処理で使用しているJavaを体系的に理解し、仕事で役立てようとしています。

今回はJava SE Silverの試験範囲の一つである『Javaのデータ型の操作』について色々とまとめたものを記載したいと思います。

left SE silverの試験概要、受験方法などについては、『Java SE Silverの合格に向けて ~受験目的・試験概要~』をご覧ください。

Javaのデータ型について


当たり前ですが、Javaで使用する変数にも他の言語同様にデータ型が存在します。

データ型の種類


Javaの変数には大きく2つの変数の型が存在します。
  • プリミティブ型

  • 参照型

  • 参照型は、VBAで言うならばオブジェクトのようなもので、インスタンスを作成しないと使用できません。
    他の言語を開発したことがある方ならプリミティブ型の方が変数の型としてわかりやすいと思います。
    今回取り上げるのはプリミティブ型の方です。

    プリミティブ型の種類
    データ型
    booleantrue(真)、false(偽)
    char16ビットのUnicode文字を扱う。または1文字の文字列を扱う
    byte8ビットの整数型 -128~127の範囲の数値
    short16ビットの整数型 -32,768~32,767の範囲の数値
    int32ビットの整数型 -2,147,483,648~2,147,483,647の範囲の数値
    long64ビットの整数型 -9,223,372,036,854,775,808~9,223,372,036,854,775,807の範囲の数値
    float32ビットの単精度浮動小数点数
    double64ビットの倍精度浮動小数点数


    このような範囲をプリミティブ型は持っています。

    補足
    各プリミティブ型を参照型として使用できるクラス『ラッパークラス』というものがJavaには存在します。
    例えばプリミティブ型の『int』には、『lnteger』というラッパークラスが用意されています。
    本来別の型へ値を移し替える際には、キャストが必要となりますが、ラッパークラスへの代入の際には、キャストを省略して自動でキャストをしてくれる機能があります。
    これをオートボクシングといいます。

    public class Test {
    
    	public static void main(String[] args){
    
    		byte testByte = 100;
    		Byte testWrapperByte = testByte;
    		System.out.println(testByte);
    		
    	}
    
    }
    


    オートボクシング一覧
    データ型ラッパークラス
    booleanBoolean
    charCharacter
    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble

    char・int型以外は先頭文字が大文字になったものがラッパークラスですね。

    リテラルとは


    リテラルとは値そのもののことです。

    int sample = 9999;
    というようなコードがあった場合、『9999』という値そのものをリテラルといいます。

    リテラルはデフォルトのプリミティブ型を持っていて、true/falseの値であればboolean型、整数の値であればint型、小数点が含まれていればdouble型、文字であればchar型として扱います。

    例えば以下のコード
    String test = String.valueOf(5 + 6);
    この5と6という値は、整数のためint型と判断され、そらぞれを足し算した結果が返却されます。

    これを56という結果にしたい場合には、文字列リテラルをつけてString型であると認識させてあげる必要があります。

    そのコードがこちらです。
    String test = String.valueOf(“5” + “6”);

    確認コード
    public class Test {
    
    	public static void main(String[] args){
    
    		String test = String.valueOf(5 + 6);
    		System.out.println("int型で計算した結果:" + test);
    		
    		test = String.valueOf("5" + "6");
    		System.out.println("String型で計算した結果:" + test);
    		
    	}
    
    }
    


    出力結果
    int型で計算した結果:11
    String型で計算した結果:56

    各データ型ごとのリテラルの表現方法は以下の通りです。

    ●整数型
    int型
    10進数を入力した時
    0で始まる時 8進数として変換される
    0xまたは0Xで始まる時 16進数として変換される

    long型
    末尾にlまたはLを入力したとき
    先ほどと同様に8進数、16進数表記も可能

    参考コード
    public class Test {
    
    	public static void main(String[] args){
    
    		int test = 10;
    		System.out.println("10進数で代入した結果:" + test);
    		
    		test = 012;
    		System.out.println("8進数で代入した結果:" + test);
    		
    		test = 0xA;
    		System.out.println("16進数で代入した結果:" + test);
    		
    		
    	}
    
    }
    

    出力結果
    10進数で代入した結果:10
    8進数で代入した結果:10
    16進数で代入した結果:10

    ●浮動小数型
    float型
    末尾にfまたはFを入力した時
    整数部分・少数部分が0の場合は省略可能
    指数表現も可能となる

    double型
    末尾にdまたはDを入力した時
    float型同様に0の省略と指数表現も可能

    参考コード
    public class Test {
    
    	public static void main(String[] args){
    
    		float test = 5.f;
    		System.out.println("小数を省略した結果:" + test);
    		
    		test = .5f;
    		System.out.println("整数部分を省略した結果:" + test);
    		
    	}
    
    }
    


    出力結果
    小数を省略した結果:5.0
    整数部分を省略した結果:0.5


    ●文字・文字列型
    char型
    ‘(シングルコーテーション)で囲んだ時
    エスケープシーケンスを使用して表現した時

    String型
    “(ダブルコーテーション)で囲んだ時
    char同様にエスケープシーケンスを使用して表現した時

    以上、Javaのデータ型の操作についてでした。

    Java SE Silver合格に向けたおススメ書籍

    フッター広告

    スポンサードリンク



    シェアする

    • このエントリーをはてなブックマークに追加

    フォローする