MENU

Java Silver SE17試験対策|第2章:基本データ型と文字列の操作

当ページのリンクには広告が含まれています。

Java Silver SE17試験の勉強を進める中で、第2章:基本データ型と文字列の操作については基本的な内容が多く、ここは点を稼いでいきたい章だなと感じました。

自分がしっかり理解できるように勉強した内容をまとめました。

これから試験に挑戦する自分への備忘録のようなものです。これを読んでいる皆さんも、一緒にがんばりましょう♪

目次

基本データ型(プリミティブ型)

Javaには8種類の基本データ型があります。自分の理解を深めるために表にまとめてみました。

概要ビット数範囲リテラル例
byte整数8-128〜127byte n = 10;
short整数16-32,768〜32,767short s = 1000;
int整数(デフォルト)32約-21億〜約21億int i = 200000;
long整数64非常に大きな範囲long l = 10L;
float単精度浮動小数点32約±3.4×10^38float f = 10.5F;
double倍精度浮動小数点64約±1.7×10^308double d = 10.5;
char文字(Unicode)16‘\u0000’〜’\uFFFF’char c = 'A';
boolean論理値1true / falseboolean b = true;

サンプルコード

int a = 100;
long b = 10000000000L;
float c = 3.14F;
char d = '学';
boolean e = false;
アオイ

練習問題では扱える範囲のギリギリを問われた問題がありました。正確に覚えておく!


型変換

型変換は少し複雑ですが、ポイントをまとめました。

変換例可能かポイント
int → long可能(自動)小さい型から大きい型は自動で変換される
double → int不可能(要キャスト)情報が切り捨てられる可能性があるため明示が必要
char ↔ int場合によるcharは数値扱いだが逆は注意が必要

サンプルコード

int x = 100;
long y = x;           // 自動変換できる
double d = 3.14;
int n = (int)d;       // キャストで変換
アオイ

bouble型からint型への変換の場合、小数点以下は切り捨てられています。もし明示的にキャストしなければ型が合わずコンパイルエラーになります。


文字列(String)

Stringはイミュータブル(変更不可)なので注意が必要です。主なメソッドもまとめました。

メソッド説明
length()s.length()文字数を取得
substring()s.substring(1,3)部分文字列を取得
charAt()s.charAt(0)指定位置の文字を取得
equals()s1.equals(s2)内容が同じかどうかを比較(==は参照比較)

サンプルコード

String name = "Java";
System.out.println(name.length());       // 4
System.out.println(name.equals("Java")); // true
System.out.println(name.charAt(2));      // v
アオイ

リテラル同士は同じ文字列なら同じオブジェクトを指すことが多いですが、new Stringで作ると別物になることも覚えておきたいです。


配列とArrayList

配列は固定長ですが、ArrayListはサイズを自由に変えられて便利です。

配列のサンプルコード

int[] nums = {1, 2, 3};
System.out.println(nums[0]);

ArrayListのサンプルコード

import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("A");
System.out.println(list.get(0));

実行時例外

Javaの配列やArrayListでよくある実行時のエラーは、

  • 配列の範囲外にアクセスすると「ArrayIndexOutOfBoundsException」
  • ArrayListの範囲外アクセスで「IndexOutOfBoundsException」
  • 配列やリストがnullのときに要素にアクセスすると「NullPointerException」

です。

配列のインデックスは0から始まるので、例えば、長さ10の配列を宣言したとして、インデックス10にアクセスしようとしても範囲外のため実行時にエラーがでてしまうということです。

アオイ

試験で実行結果を問われたときは範囲外にアクセスしようとしていないか確認!


テキストブロック( Java SE17の新機能)

テキストブロックは複数行の文字列を扱うのにとても便利な機能です。

  • 3つのダブルクォート(”””)で囲む
  • 改行やインデントをそのまま文字列にできる
  • JSONやHTMLの記述に適していて、コードも見やすくなる
比較従来の文字列テキストブロック
書き方"abc\n123""""\nabc\n123\n"""
エスケープの必要改行やダブルクォートはエスケープが必要ほとんどそのまま書ける
可読性長いと読みづらい見たまま書けてわかりやすい

サンプルコード

String html = """
    <html>
        <body>
            <h1>Hello!</h1>
        </body>
    </html>
    """;

String json = """
    {
        "id": "%s",
        "name": "%s",
        "gender": "%s"
    }
    """.formatted("1", "Mike", "male");
アオイ

開始の(”””)の後は必ず改行しなければなりません。直後に文字を書いていたらコンパイルエラーになります!


まとめ

今回は自分がしっかり身につけるために「基本データ型」「型変換」「文字列」「配列とArrayList」「テキストブロック」についてまとめました。

完璧ではありませんが、これらを理解できるとプログラムの基本がしっかりと固まると思います。

試験も近づいているので、焦らず確実に一歩一歩進めていきたいと思います。一緒に頑張りましょう!

よかったらシェアしてね!
  • URLをコピーしました!
目次