java silverの暗記項目(自分で確認用)

はじめに
---
JavaSilverの資格受験するために、暗記箇所を下書きに書いてあった記事をいまさらながら投稿します。
間違いがあれば指摘していただけたら幸いです。

◇コンパイル◇
--------------------------------------------------------------------------------


●モジュール●
・クラスの依存関係を調べる、コンパイルは、[jdeps]コマンドと、
[java --show-module-resolution]を使います。

・モジュールの情報を確認する、コンパイルは、[java --describe-module]と、
[jmod describe]を使います。



◇変数宣言◇
-------------------------------------------------------------------------------------------
・クラス変数と、ローカル変数は同名でも宣言できる。同名の変数を使う場合は、ローカル変数が優先されるで、クラス変数を使いたい場合は、thisをつける。

・初期化してない、クラスString引数を使うと、エラーではなく、nullExceptionが表示される。

・定数は初期化する必要がある。

・初期化されていないローカル変数を使うと、エラーになる

●配列●
・初期化子{}は、変数宣言と一緒にしか使えない

・引数として並列を渡す場合、変数に出し入試なくてよい。(new int[]{1,2,3};)

・無名配列(int[] abc = new int[];)を作るときは、大かっこの中に数字を記入するとエラー。


●var●
・ローカル変数の宣言でしか使えない(メソッド内のみ)

◇モジュール◇
-------------------------------------------------------------------------------------------
・モジュールは、requiresを使って使用し、exportsを使って公開する。
・両クラスにrequiresある場合、相互依存の関係なので、コンパイルエラーになる。


◇for文◇
-------------------------------------------------------------------------------------------


●拡張for文●
・Stringの可長型変数を、拡張for文に入れる時は、型をStringにする。


◇ 継承 ◇
------------------------------------------------------------------------------------------
・変数の型とインスタンスの型で同じフィールドがある場合は、変数の型が優先される。

・抽象メソッドから抽象メソッドに継承、実装する場合は、オーバーライドや記載しなくてもよい。
具象クラスには、すべてのメソッドを実装しておく必要がある

・フィールドを参照した場合は、変数の方で宣言されたほうを使う。
・メソッドを呼び出す場合は、メソッド内の指示に従う。




◇ オーバーライド ◇
------------------------------------------------------------------------------------------
● オーバーライド ●
・オーバーライドのルールは４つあります。
1 : シグニチャが同じであること
2 : 戻り値の型は同じか、サブクラス型であること
3 : アクセス修飾子は同じか、より緩くすること
4 : thorowsで宣言する例外は、スローする例外と同じ型がサブクラスであること


◇ インターフェース ◇
------------------------------------------------------------------------------------------
・特徴
1 : 公開すべき扱い方を定めるためのもの
2 : インスタンス化できず、実現したクラスを必要とする
3 : 抽象メソッドだけを定義する


・privateやfinalメソッドは定義できない

・staticなメソッドも定義できない。

・abstractを定義しなくても、自動で定義される。

・defalutメソッドの場合、privateやstaticメソッドを定義できる。

◇ 抽象メソッド ◇
・特徴
1 : インターフェースを実現したクラスの共通部分を定義するもの
2 : そのままではインスタンス化できず、継承したサブクラスを必要とする
3 : 抽象メソッドち具象メソッドの両方を定義できる


◇switch文◇
-------------------------------------------------------------------------------------------
・switch文の条件式として戻せる型は３つ
1 : int以下の整数型とラッパークラス
2 : 文字と文字列
3 : 列挙型

・defalutはどこに記載してもよい。

・continueの後に処理を記載するとエラーになる。

◇ 例外 ◇
・try-with-resources分で、例外が発生した場合、
1 : closeメソッドによるリソース開放の処理
2 : catchブロックによる例外処理
3 : finallyブロックによる事後処理
の順番で実行される。


◇API◇
-------------------------------------------------------------------------------------------
●String●
・Stringの変数に再初期化しようとしてないか(Stringは不変はメソッドなで、再代入できない)

・不変メソッドなので、基本的に変数に代入しないと、意味がない。

●java.lang●

・charAt
=> 文字列の引数で指定した値を取り出す
例
String str = "Hello World!";
Sytstem.out.println(str.charAt(4)); // "o"    

●substring●
=>引数で指定した箇所までの値を切り取る
例
String str = "Hello World"
System.out.println(str.substring(3)); //"lo World"

応用(引数を二つ使用した場合)
    =>
String str = "Hello World"; 
System.out.println(str.substring(3,7)); //lo W

・replace

・repleceAll
・length

・startsWith
=>文字列の最初の文字と引数を比較して、等値ならtrueを返す
例
String str = "Hello World";
System.out.println(str.startsWith("Hello")); //true

・endsWith
=>文字列の最後の文字と引数を比較して、等値ならtrueを返す
例
String str = "Hello World";
System.out.println(str.endsWith("World")); //true

●concat●
・concat

●indexOf●
・indexOf
=>指定した引数のある位置を数字で返す。(ない場合は、-1を返す)
String str ="Hello World";
System.out.println(str.indexOf("llo"); //2
System.out.println(str.indexOf("z"); //-1 

●java.lang.StringBuilder●
・capacity
・append.indexOf

●Character●
・isAlphabetic
=>指定した文字がアルファベットならtrueを返す。
例
String str = "Hello World!";
System.out.println(Character.isAlphabetic(str.charAt(3)); //true

・isDigit
=>指定した文字が数字ならtrueを返す。
例
String str = "123Hello";
System.out.println(Character.isDigit(str.charAt(1)); //true

● ArrayList ●
・contains
=>指定した文字列があるかどうかを調べて真偽で返す


◇ オブジェクト ◇
---------------------------------------------------------------------------------

・immutable(不変)なオブジェクトの作り方は、
1 : setterメソッドを提供しない
2 : getterメソッドは、コピーを戻す
3 : フィールドの値を変更するメソッドは、参照を変更する代わりに、新しい値をもったインスタンスを生成し、その参照を戻す
4 : すべてのフィールドは、finalかつprivateにする
5 : サブクラスによるメソッドのオーバーライドを許可しない(クラスをfinalにして、継承を禁止したり、メソッドをfinalにして、オーバーライドを禁止する)