定数
変数宣言にfinal修飾子をつけると初期化後に値を変更出来なくなる
→定数と呼び、固定値を扱いたい時に使う
final int MAX_VALUE = 100
MAX_VALUE = 200 //コンパイルエラー
文字列の型
文字列はString型で参照型。参照型はデータそのものではなくメモリ上にあるデータの宛先情報を持つ
参照型は基本データ型とはデータの扱いが異なる
ローカル変数の型推論
varでローカル変数を宣言することで型推論ができる。ただし条件付き
- 宣言時に代入する値で型が特定できる
- nullは代入できない(コンパイルエラー)
型推論出来るところ
- ブロック内のローカル変数宣言(メンバ変数には使用できない)
- for文のインデックス
- try-with-resource文のresource指定
- ラムダ式の仮引数
配列
同じデータ型の値をまとめて管理する。参照型に属する。
基本データ型も参照型も配列で管理できる。
1次元配列
生成の手順
-
配列の宣言と生成
int[] vers = new int[3]
int vers[] = new int[3] //[]の位置は配列名の後でも可 -
要素への値の代入
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}}
配列の初期値表
| 型 | 初期値 |
|---|---|
| int | 0 |
| double | 0.0 |
| boolean | false |
| String | null |
| Object | null |
コマンドライン引数の利用
コマンドライン引数: コマンド実行する時にメソッドに受け渡す値
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型