Java Silver SE17試験の勉強を進める中で、第2章:基本データ型と文字列の操作については基本的な内容が多く、ここは点を稼いでいきたい章だなと感じました。
自分がしっかり理解できるように勉強した内容をまとめました。
これから試験に挑戦する自分への備忘録のようなものです。これを読んでいる皆さんも、一緒にがんばりましょう♪
基本データ型(プリミティブ型)
Javaには8種類の基本データ型があります。自分の理解を深めるために表にまとめてみました。
型 | 概要 | ビット数 | 範囲 | リテラル例 |
---|---|---|---|---|
byte | 整数 | 8 | -128〜127 | byte n = 10; |
short | 整数 | 16 | -32,768〜32,767 | short s = 1000; |
int | 整数(デフォルト) | 32 | 約-21億〜約21億 | int i = 200000; |
long | 整数 | 64 | 非常に大きな範囲 | long l = 10L; |
float | 単精度浮動小数点 | 32 | 約±3.4×10^38 | float f = 10.5F; |
double | 倍精度浮動小数点 | 64 | 約±1.7×10^308 | double d = 10.5; |
char | 文字(Unicode) | 16 | ‘\u0000’〜’\uFFFF’ | char c = 'A'; |
boolean | 論理値 | 1 | true / false | boolean 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」「テキストブロック」についてまとめました。
完璧ではありませんが、これらを理解できるとプログラムの基本がしっかりと固まると思います。
試験も近づいているので、焦らず確実に一歩一歩進めていきたいと思います。一緒に頑張りましょう!