隙間時間にみる早見表〜OracleJavaSE11 gold | 基本 〜

# この記事について
OracleJavaSE11 goldを勉強していた時になかなか覚えられないな〜っとなっていた内容を毎回見ることができるようにこちらの書籍で勉強していた時のまとめたものです！

おすすめ書籍（勉強開始時点の書籍最新版を購入しましょう）

https://book.impress.co.jp/books/1121101020

各カテゴリごとでまとめていますので隙間時間に見てみてください。

## list.of
変更不可なリストを返す

## java.lang.Object
### int HashCode()
インスタンスの内容をハッシュ値で返す
### boolean Equals(Object obj)
自インスタンスと引数のインスタンスが同一か判定
### String toString()
インスタンス内容を文字列表現にして返す。sysoutやStringBuilderなど多くに使われる。
メインフィールドや全てのフィールドを出力したり。
FQDN@ハッシュ値

## iterableインタフェース
コレクションのスーパーインタフェース
拡張for文に渡せるforEachメソッドを持っている

## 初期化子
### static イニシャライザ
クラスが呼び出されたときに
### インスタンス初期化子
インスタンス作成前(コンストラクタより前)に

## JRE
### Javaプログラム実行に必要なライブラリ
#### 基本ライブラリ
lang、util、I/O、シリアライズ、ネットワーク機能、セキュリティ、国際化対応、JMX、JAXP、JNIなど
#### 応用機能の統合ライブラリ
JDBC、RMI、CORBA、RMI-IIOP、JNDI
#### ユーザーインターフェースライブラリ
AWT、swing、Java 2D、印刷サービス、テキスト変換
#### JVM
#### その他必要なコンポーネント

## JDK
JRE、開発に必要なコンパイラ、デバッガ、他各種開発ツールをまとめたもの
それぞれのOS用がある

## Java SE
JVM、標準クラスライブラリ、各種開発ツールの提供、JREとJDKから提供される

## Java EE
ソフトウェアが不足なく機能を提供し互換性を保証する。Java SEの拡張

## switch文
| 利用できる型 |
|:-:|
| byte,Byte,short,Short,int,Integer  |
| char,Character,String  |
| Enum  |
※int型以下の整数、文字と文字列、列挙型
※条件式の値は同じか互換性があること

## for文
### 処理順序
初期化文→条件文→繰り返し処理→更新文

## アクセス修飾子
### public
どこからでもアクセス可能
### protect
同一パッケージか、継承しているサブクラス
### なし
同一パッケージのみ
### private
クラス内のみ(サブからスーパーは不可視)

### 適用できる範囲
#### クラス
public,なしのみ. インナークラスはすべて可能
#### メソッド
すべて使用可能
#### フィールド
すべて使用可能

## final
クラスの場合・・・継承禁止
変数の場合・・・変更禁止

## ラベル
### 記述可能箇所
コードブロック、ループ文、分岐、式、代入、return、tryブロック、throw文

## クラス図
### 構成
クラス名,フィールド名,メソッド名
### 各記号
| 記号 | 意味 |
|:-:|:-:|
| 名称斜体  | abstract  |
| 名称下線  | static  |
| 破線矢印  | is-a関係  |
|  矢印と◇ |  has-a関係、◇が持っている方 |
### アクセス修飾子記号
| 記号 | 意味 |
|:-:|:-:|
| +  | public  |
| #  |  protected |
| - |  private |
|  ～ |  なし |

## インタフェース
### 使用可能な修飾子
|  | 修飾子 |
|:-:|:-:|
| クラス  | public  |
| メソッド  |  public、static、default、private |
| フィールド  | final static  |

・インタフェースのstaticはオーバライドできない。
・privateメソッドはdefaultメソッドからの呼び出し前提(共通処理用)である。defaultメソッドをprivateにするとかは無し。
・サブからdeafaultメソッド呼び出し例
例：a.super.method
※直下のサブクラスしか呼べないから注意

## メソッドの呼び出し
インタフェースメソッドよりもスーパークラスのメソッドの方が呼び出し優先される。
デフォルトメソッドは実装がない時に呼ばれるため、同名メソッドかある場合はprivateメソッドでもそちらを呼ぶため例外に注意する。

## 例外処理
一部紹介
### 検査例外一覧
|  |
|:-:|
|  classnotfoundexception |
| sqlexception  |
| ioexception  |

### エラー一覧
|  |
|:-:|
| outOfMemoryError  |
| noClassDefFoundError  |
|  stackOverFlowError |

### 非検査例外一覧
|  |
|:-:|
| indexOutOfBoundsException  |
| NullPointException  |

### 例外処理順
try→catch→Finally

## モジュールシステム
・パッケージ単位で利用制限をかけることで情報隠蔽を強化
### module-info.java
公開パッケージ、使用モジュールの指定
### 記述内容
|  | 説明 |
|:-:|:-:|
|  module |  モジュール名(ルートのディレクトリ) ｛｝ |
| exports  | 公開パッケージ  |
|  requires | 使用モジュール  |
| requires transitive  | 伝播させる使用モジュール  |

## localdataクラス
### now()
現在時刻インスタンス生成
### of()
引数の時刻インスタンス生成
### with()
データ変更
### DayOfWeek()
DayOfWeek.Modayなら月曜日の日付に変更しインスタンスを生成
### isBefore()
引数よりも前の日付ならtrue

## 同名フィールド
### フィールド参照の場合
代入の方でなく変数の型が宣言された方
### メソッド呼び出しの場合
メソッドに従う

## 列挙型:enumクラス(public enum クラス名)
はじめて利用される時に各列挙子を一つずつインスタンス化する。インタフェースで定数として数値と名称を紐付けていたものを簡略化した方法。
列挙子はサブクラス扱い。
※列挙型のコンストラクタはprivateでなくてはいけない、列挙子に呼ばせるため
### メソッド
|  | 説明 |
|:-:|:-:|
| value()  | 配列を返す、[]でインデックスを指定すると特定のインスタンスだけ返す  |
| valueOf(T)  |  指定したインスタンスを返す |

## プリミティブ型

|  | 説明 |
|:-:|:-:|
| char  |  97はa |
| byte  | 128まで(8ビット)  |
| short  | 3万まで(16ビット)  |
|  int | 20億まで(32ビット)  |
| long  | 京まで(64ビット) |
|  float | 32bit  |
| double  | 64bit  |


## 各型の初期値

| 1 | 2 |
|:-:|:-:|
| 参照型  | null  |
|  整数 | int  |
| 小数  | double  |

## 進数の接頭字
| 1 | 2 |
|:-:|:-:|
|  8進数 | 頭文字に0   |
| 16進数  |  頭文字に0x（xはhexadecimalの意味) |
| 2進数  | 頭文字に0b(bはBinaryの意味)  |

## メソッドのシグニチャ
下記全てを合わせたもの。
メソッド名,引数の数,引数の型,引数の順番

## オーバーライド:
シグニチャが同じで戻り値や例外が同じか緩いこと(リスコフの置き換え原則)
上書きではないためオーバーライド内でsuper(method)を呼ぶこともできる

## オーバーロード
メソッド名が同じで他のシグニチャが違うこと

## Javaコマンド
### jmod
モジュール作成コマンド
### Java
Javaプログラムの実行
#### オプション一覧
|  | 説明 |
|:-:|:-:|
| --soure  |  ソースファイルモード |
|  -cp | クラスパスの指定、カレントディレクトリ以外のクラスを実行する場合に使用  |
| --show-module-resolution  |  モジュールの依存関係 |

### Javac
コンパイル
#### オプション一覧
|  | 説明 |
|:-:|:-:|
|  -d |  コンパイル先 |
 
### jdeps
クラスの依存関係
### javap
コンパイル後の生成中間コード確認