[JavaSilver対策]紫本第2章まとめ(後半)

定数

変数宣言にfinal修飾子をつけると初期化後に値を変更出来なくなる
→定数と呼び、固定値を扱いたい時に使う

final int MAX_VALUE = 100
MAX_VALUE = 200 //コンパイルエラー

文字列の型

文字列はString型で参照型。参照型はデータそのものではなくメモリ上にあるデータの宛先情報を持つ
参照型は基本データ型とはデータの扱いが異なる

ローカル変数の型推論

varでローカル変数を宣言することで型推論ができる。ただし条件付き

  • 宣言時に代入する値で型が特定できる
  • nullは代入できない(コンパイルエラー)

型推論出来るところ

  • ブロック内のローカル変数宣言(メンバ変数には使用できない)
  • for文のインデックス
  • try-with-resource文のresource指定
  • ラムダ式の仮引数

配列

同じデータ型の値をまとめて管理する。参照型に属する。
基本データ型も参照型も配列で管理できる。

1次元配列

生成の手順

  1. 配列の宣言と生成
    int[] vers = new int[3]
    int vers[] = new int[3] //[]の位置は配列名の後でも可

  2. 要素への値の代入 vers[0] = 8; vers[1] = 9; vers[2] = 10;
    []内の数字を添え字と呼び、配列の位置を指定して代入やアクセスができる。(添え字は0から始まる)

    ↑の手順を一度に記述することもできる。
    int[] vers = {8,9,10}; int[] vers = new int[] {8,9,10}; //newした後も可

多次元配列

配列を扱う配列を宣言できる(理論上は何次元でも可)
2次元配列の例: int[][] array = new int[2][2]
多次元配列でも一度に宣言と初期化もできる
int[][] array = {{1,2},{1,2}}

配列の初期値表

初期値
int0
double0.0
booleanfalse
Stringnull
Objectnull

コマンドライン引数の利用

コマンドライン引数: コマンド実行する時にメソッドに受け渡す値
main()メソッドはString配列を引数として受け取る→プログラムで利用できる
main.javaの場合(ソースファイルモードでもできる)
java main hello java //main(実行クラス名)の後ろの文字列は引数としてプログラムに渡される

文字列操作

Stringクラス

Stringのオブジェクトはイミュータブル(不変)
→代入し直すとき、新たにオブジェクトをnewして格納している。

Stringクラスのメソッド

  • charAt(int index) = 指定したインデックスの1文字を返す
  • equals(Object object) = 文字列と引数で指定したオブジェクトの文字列を比較する(同値性の判定)
  • indexOf(String str) = strが出現する最初の位置を返す。ない場合は-1を返す
  • replace(CharSequence target, CharSequence replacement) = targetの文字列をreplacementに置き換える
  • substring(int begin, int end) = beginからend-1までの文字列を返す

テキストブロックの登場に合わせてメソッドが追加された

  • formatted = 書式設定
  • stripindent = 余分なインデント削除
  • translateEscapes = エスケープ文字が変換される

StringBuilderクラス

StringBuilderクラスから生成される文字列はミューダブル(可変)

StringBuilder sb1 = new StringBuilder(); //初期容量で16文字分確保(自動で拡張)
StringBuilder sb2 = new StringBuilder("hello"); //指定した文字列で初期化

主なメソッド

  • append() = 文字列追加
  • delete(start, end) = startからend-1文字まで削除
  • insert(offset, s) = offsetの位置に文字列sを挿入
  • replace(start, end, str) = startからend-1の文字列をstrに置き換え
  • capacity() = 現在の容量を返す
  • substring(start) = start以降の文字列を返す(Stringのメソッドとは少し違う)
  • toString() = Stringオブジェクトにして返す

上の4つは返り値がStringBuilder型

2026-04-29 23:16