Top >  ★ver0.05 Javaペーパー(印刷してアウトドアで暗記しよう!) by Javaの道はHEAVY

Javaで使える文字 a〜z、A〜Z、0〜9、_、$。(0〜9は先頭文字には使えない)。Javaの予約語と同名は不可。
予約語 abstract boolean break byte cast catch char class const continue default do double else extends final false finally float for goto if implements import instanceof int interface long native new package private protected public return short static super switch synchronized this throw throws transient true try void vlatile while
プリミティブ型(基本データ型)と宣言 boolean true or false/byte(1)-128〜+127/char(2)-32768〜+32767/short(2)-32768〜+32767/int(4) -2147483648〜+2147483647/long(8)-263〜263-1/float(4)仮数部232、指数部28/double(8) 仮数部252、指数部211
リテラル 型をテキストで表現。25⇒10進数で25(int型)/025⇒8進数の25/0x25⇒16進数の25(int型)/25L⇒long型で10進の25/0x25L⇒long型で16進の25
配列 配列の宣言。配列名 型名[];/型名[] 配列名;/配列の生成 配列名=new型名[要素数];/配列の宣言と生成を同時に行う場合 型名 配列名[]=new 型名[要素数];/型名[] 配列名=new 型名[要素数];(多次元配列は[]の数が増えるだけ)。配列の初期化 int 配列名[]={初期値1,初期値2};/int 配列名[]=new int[]{初期値1,初期値2};
演算子 ビット演算子⇒ & ビット積(AND)/ | ビット和(OR)/ ^ ビット排他的論理和(XOR)/ ~ ビット否定(NOT)
シフト演算子⇒ << 左シフト/ >> 右シフト/ >>> 右シフト(左ビットシフト⇒はみ出したビットは捨て、右から0を補充。右ビットシフト⇒はみ出したビットは捨て、左からシフト前と同じビットを補充。ただし>>>を使用した場合は左から0を補充。シフトで32以上の値を指定すると「32-指定した値」だけシフトする) instanceof演算子⇒そのクラスのインスタンスかどうかを調べるための演算子。
優先順位 .[]() ⇒ ++ -- ! ~ ⇒ new(cast) ⇒ */% ⇒ +- ⇒ << >> >>> ⇒ > >= < <= instanceof ⇒ == != ⇒ & ^ | ⇒ && || ⇒ ?: ⇒ = += -= *= /= %= &= ^= |= <<= >>= >>>= (インクリメント、デクリメント演算子は変数の前に記述するか後に記述するかのよって動作が異なる)
switch文 引数はプリミティブ型(int/short/char/byte/enum) ※enumはJDK5.0より追加。default句は最後でなくても可。
拡張for JDK5.0で追加された機能。for(変数宣言:参照変数名){// 処理
オブジェクト指向 属性⇒オブジェクト毎に持つデータ項目。操作(機能)⇒オブジェクト自身の属性値を変えるための機能。
カプセル化 属性の情報更新を行う「操作」を保持していること。データ隠匿⇒属性を見えない状態にしておくこと。
オブジェクトの生成 new クラス名();/クラス名 変数名 = new クラス名();。オブジェクトを参照するための変数を参照型という。変数=プリミティブ型(値を代入)。変数=参照型(参照を渡す)。変数=null()。
インスタンスメンバ(メソッド) 各メンバはオブジェクト生成によって使用する事ができる。staticメンバ(クラスメンバ)オブジェクトの生成を行わなくても使用する事ができる。
メンバ変数の初期化 byte,short,int=0/long=0L/float=0.0F/double=0.0D/char=\u0000/boolean=false/参照型=null
ガベージコレクション 全ての参照から切れた場合対象となる。即座に実行されるわけではない。
オーバーロード 引数リストの内容(型と並び)がユニークでなければならない
コンストラクタ オブジェクト生成時に自動的に呼び出される特殊なメソッド(コンストラクタからコンストラクタを呼び出す場合を除いてオブジェクト生成後に呼び出す事はできない)。クラス名と同名でなければならない。戻り値の定義がいらない。オーバーロードが可能。コンストラクタからコンストラクタを呼び出す場合メソッドの先頭から呼び出さなければならない。
デフォルトコンストラクタ コンストラクタが存在しない場合自動的に作成される。引数がない。空メソッド。
パッケージ クラスを機能や役割毎にグループ化する方法。package パッケージ名。パッケージ化されたクラスを呼び出す場合完全クラス名で呼び出す必要がある。import宣言を行う事で完全クラス名を用いなくてもよい。パッケージルートは環境変数(CLASSPATHH)で行う。コンパイルオプション(-classpath)でも可。
クラス継承 class サブクラス名 extends スーパークラス名。1度に継承できるのは1クラスのみ。コンストラクタは引き継がれない。
アクセス修飾子 どの位置のクラスからメンバへのアクセスを許可するかどうかの指定。以下広い順に:public⇒無制限。protected⇒自身のクラスのサブクラス。自身が所属するパッケージクラス内を許可。省略⇒自身クラスが所属するパッケージ内のみアクセス許可。private⇒自身のクラス内部のみ可。
メンバ修飾子 final⇒宣言時の初期化。更新は不可。メソッドに指定された場合オーバーライド不可。nativ⇒他の言語で作成されたプログラム指定。synchronaized⇒マルチスレッド処理の排他・同期制御を行う。transient⇒シリアライズ対象から除外する場合に指定する。volatile⇒マルチスレッド処理で排他・同期制御を行う場合に使用。abstract⇒抽象クラス、抽象メソッドの定義に用いる。
オーバーライド メソッドの場合:戻り値型、メソッド名、引数(型と順番)を完全一致させる必要がある。変数の場合:型、変数名が完全一致でなければならない。オーバーライドしたメソッドもsuperを使えば使用できる。オーバーライド時のアクセス修飾子はスーパークラス側メソッドよりもアクセスレベルを狭くしてはならない。
super スーパークラスのメソッドを明示的に呼び出す。super.メンバ変数名/super.メンバメソッド名(thisはサブクラスを対象とする)。コンパイラによって暗黙的にsuperが補完される場合がある。
インタフェース インタフェースクラス(クラスの雛形)を取り込みクラスのインタフェースを統一する。インタフェースに定義された抽象メソッドを全て実装する必要がある。インタフェースで宣言された変数は無条件にpublic final staticとなる。インタフェースで宣言されたメソッドは無条件にpublic abstractとなる。インタフェースクラスは抽象メソッドのみ(abstractクラスは通常メソッドと抽象メソッドの両方を宣言できる)。継承と一緒に実装が可能。複数の実装が可能。
クラス修飾子 public⇒無制限にほかのクラスからのインスタンス化やアクセスを許可する。1ファイルに1つのみ設定可能で、さらにクラス名はファイル名と一致させなければならない。省略⇒自クラスが所属するパッケージ内のクラスからのみオブジェクト生成やアクセスを許可する。final⇒継承不可クラス。abstract⇒そのクラス自身のオブジェクトは生成できない。共通機能は抽象クラス内で実装しと固有機能部分を抽象メソッドで宣言する。abstractクラスを実装したサブクラスで実装する。
(インタフェースクラスとabstarctクラスの違い⇒同じ操作を持った別機能を作りたい場合はインタフェース。この操作(機能)だけは特別に必要とかいった場合はabstarctを継承する)
例外処理 実行時に起きる予期しないエラーを処理する仕組み。
try-catch(任意) tryブロック⇒例外発生が予想される処理を記述する。catchブロック⇒例外処理を行うブロック。finallyブロック⇒tryブロック内での例外の発生有無にかかわらず必ず処理される。
例外のパス 例外を呼び出し元にパスし一元管理する機能。
アサーション 処理の妥当性をチェックする機能。assert 条件式;/assert 条件式 : 式;
ラッパークラス プリミティブデータを属性として保持し操作を使って任意の型へ変換する事が可能。それ以外にも最大値(クラス名.MAX_VALUE)最小値(クラス名.MIN_VALUE)なども保持byte⇒Byte/short⇒Short/int⇒Integer/long⇒Long/float⇒Float/double⇒Double/char⇒Character/boolean⇒Boolean
Autoboxing/Unboxing JDK5.0で追加された機能。Autoboxingは基本データ型の値をinteger型のなどのラッパークラス型へ自動変換する。Unboxingはその逆。コードを簡素化できるが負荷は大。
文字列の取り扱い String⇒更新不可。StringBuffer⇒メソッドを用いて更新可能。
Stringクラス length()⇒文字列の長さを返す。charAt(int i)⇒先頭から数えて、iの位置にある文字列を返す。substring(int i)⇒先頭から数えてiの位置以降の文字列を返す。indexOf(String s)⇒先頭から検索し、最初に引数の文字列が現れる位置を返す。toUpperCase()⇒String 内のすべての文字を大文字に変換する。toLowerCase()⇒String 内のすべての文字を小文字に変換するtrim()⇒文字列前後の空白を取り除いた文字列を返す。replace(char a,char b)⇒文字列aの文字を文字列bの文字に全て置き換えた文字列を返す。concat(String s)⇒引数の文字列を末尾に連結する。
StringBufferクラス insert(int i,String s)⇒0番目から数えてi番目の位置にsの文字列を挿入する。append(String s)⇒文字列の末尾にsの文字列を追加する。length()⇒文字列の長さを返す。capacity()⇒確保しているメモリの有効文字数を返す。toString()⇒Stringオブジェクトを返す。revers()⇒文字列並びを反転させる。
ハッシュコード オブジェクトに割振られたユニークな番号(Stringクラスで例外あり)。同一オブジェクトであるかどうかの判定に使用。
コレクションフレームワーク 複数のオブジェクトを管理するための枠組み。List系⇒配列になっており格納されている要素の番号で管理。 Set系⇒順番と重複を意識しない。同じオブジェクトは複数保持できない。Map系⇒オブジェクトに名前(キー)をつけて管理。(コレクション内のオブジェクトに名前(キー)をつけて管理することができる。同じオブジェクトへの参照を複数保持することができる。同一キーを複数登録することはできない)
ジェネリックス JDK5.0で追加された機能。指定された型でクラスを扱う事を明示するコンパイラ機能。明示する事によって実行時の例外を無くしコーディングをシンプルにする事ができる。例)List<String> list=ArrayList<String>();Stringオブジェクトを格納するArrayList。
スレッド 複数のプロセスが同時(厳密には同時ではない)に実行されるようなプログラムを「マルチスレッドプログラム」という⇔1個のプロセスの場合「シングルスレッドプログラム」という。実行の手順⇒@スレッドオブジェクトの生成 Thread a = new Thread();Aスレッドの作成 a.start();。実行されるのはpublic void run(){…}で宣言された処理。スレッドを一定時間待機させる場合 Thread.sleep(待機時間);。Threadクラスを継承できない場合のスレッド作成方法⇒@Runnableインタフェースを実装 class aaa implements Runnable〜 ARunnable実装クラスのオブジェクトを引数にスレッドを生成 Thread bbb = new Thread(tr1);
■スレッドの状態 実行中⇒動いているスレッド。実行待ち⇒実行可能だけど待っている状態。待機中⇒処理を行えない状態。
■スレッドの機能 join()⇒スレッド終了の待合わせ。interrupt()⇒メソッドによる割込み。スレッドの優先順位。
staticインポート JDK5.0で追加された機能。static インポートすることによってstaticメンバへ修飾なしでアクセスできるようになる。
(修飾あり)double r = Math.cos(Math.PI * theta); ⇒ (修飾なし)double r = cos(PI * theta);
enum JDK5.0で追加された機能。タイプセーフenum。C、C++のenumと違って定数毎にクラスを作り定数をその中に納める事によって、定数の使われ方に誤りが出にくい。応用も可能。switch、equals等が使用可能。
可変長引数 JDK5.0で追加された機能。可変(引数の個数)の引数を指定可能。例)public void XXX(String... aaa)
アノテーション JDK5.0で追加された機能。Javaの記述に注釈(情報)を付ける機能。マーカー・アノテーション:データが無く名前だけを持つアノテーション。単一値アノテーション:データを一つだけ持つアノテーション。見かけはメソッド呼び出しに似ている。フル・アノテーション:複数のデータを持つアノテーション。

※これはアウトドアでの勉強用です。絶対に不正な使用は行わないようにして下さい。また、 誤っている箇所等がありましたらメール(kenji503@gmail.com)をお願いします。