4
2

More than 3 years have passed since last update.

基本

以下の本で勉強した際の勉強ノート。

Javaコマンド

  1. 一定のルールに従って書いたJavaコードは、java Main.javaで実行可能。
  2. javac Main.javaでコンパイルして、java Mainで実行する。
  3. -cp or -classpathでクラスパス追加。

ファイル

  1. クラスファイルは、中間ファイル。

Exception and Error

共通

  1. 例外には、unchecked例外とchecked例外がある。
  2. checked例外は、例外処理を実装しないとコンパイルエラーとなる。

Error

  1. Java実行環境に関する例外は、Error
  2. Errorとそのサブクラスはunchecked例外。

Exception

  1. アプリケーションに関する例外は、Exception
  2. Exceptionのサブクラスの内、RuntimeExceptionとそのサブクラスはunchecked例外。それ以外はchecked例外。
  3. checked例外は例外処理必須で、unchecked例外は任意。
  4. マルチキャッチ構文は、継承関係のある例外クラスでは使用できない。
  5. 継承関係のある例外クラスは、サブクラスから順番にcatchしなければならない。
  6. tryの使い方には
    1. try-catch
    2. try-finally
    3. try-catch-finally
    4. try-with-resources

変数

リテラル

  1. 整数リテラルは、2,8,10,16進数で表現する。
  2. 浮動小数点リテラルは、10進数または指数表現。
  3. 文字リテラルは'で囲む。
  4. 文字列リテラルは"で囲む。

数値リテラル

  1. 区切り文字に_を使える。 1_000 区切り文字は、先頭、末尾、記号の前後には使用できない。

変数

  1. 変数宣言は、Type<T extends P> variable = new Type<>();という形式。
    1. Typeは型。
    2. T extends Pは型パラメータ。参照型のみ指定可能。PTの親クラス。T super Cもあり、CTの子クラス。
    3. variableは変数名。
    4. Type<>()はコンストラクタ。この<>はダイヤモンド演算子。
  2. varはローカル変数にのみ使用できる。
  3. var val = null; var val;は、型推論ができないため、不可。

基本データ型

  1. Boxingでは、暗黙の型変換できない。
  2. Unboxingでは、nullを代入できない。

配列

  1. 初期化時に配列の大きさを指定しないとコンパイルエラー。var array = new int[];

Enum

  1. switch()の引数にできるのは、整数型と文字列型のみ。
  2. switch(null)はコンパイルエラー。

Class

Packagee

  1. 全てのクラスはパッケージに属する。
  2. packageを記述しないと、無名パッケージに属するものとして扱われる。

Import

  1. java.langパッケージはimport不要で利用できる。

継承

  1. SuperClass s = new SubClass();とすると、インスタンスメソッド以外は、スーパークラスSuperClassのメンバが呼ばれる。

オーバーライド

  1. private メソッドは、オーバーライドできない。
  2. オーバーライドしたメソッドが優先されて使用される。
  3. オーバーライドする場合は以下のように指定する。
    1. アノテーション:@Overrideをつけても良い。
    2. アクセス修飾子:スーパークラスと同じかそれより広い
    3. 戻り値:スーパークラスと同じかそのサブクラス
    4. メソッド名:スーパークラスと同じ
    5. 引数リスト:スーパークラスと同じ

オーバーロード

  1. オーバーロードされたメソッドの優先順位は以下の通り。
    1. 引数が完全一致したメソッド
    2. 暗黙の型変換をした上で引数が完全一致したメソッド
    3. Boxingした上で引数が完全一致したメソッド
    4. 可変長引数メソッド
  2. 可変長メソッドvoid method(int... val){}と同じ配列型を持つメソッドvoid method(int[] val){}は定義できない。

instanceof

  1. SubClass instanceof SubClass == true
  2. SubClass instanceof SuperClass == true
  3. SubClass instanceof OtherInterface == false
  4. SubClass instanceof OtheClassはコンパイルエラー。

Interface

Field

  1. フィールドは、暗黙的にpublic static finalになる。

Method

  1. メソッドは、暗黙的にpublic abstractになる。
  2. インタフェースの実装クラスは、インタフェースのメソッドと同じスコープを用いること。

Default method

  1. defaultメソッドは、暗黙的にpublic defaultになる。
  2. defaultメソッドのスコープはpublicのみ。

Static method

  1. staticメソッドは、暗黙的にpublic staticになる。
  2. defaultメソッドのスコープはpublicまたはprivateのみ。
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2