1.stringのStringBuilder strinbuffer
文字列は、文字列定数であるオブジェクト、定数プールの内容をポイントし、文字列を追加するには、新しいスペースを開くために一定の必要性、時間と空間の無駄そのものであり、変更する助長されていません。
StringBuilderの文字列バッファと文字列変数、内部文字配列、ビルダー効率の高いスレッドセーフ、シングルスレッドに適しに適用しました。バッファ非効率的なスレッドセーフ、マルチスレッド化のために適しているのは、原則的には、同期の変更を使用することです。
2.アクセス
プライベート<デフォルト<保護する<公共
利用可能な自分自身とパッケージと外側のサブクラスと、同じパッケージであることができるが、利用可能なパッケージであり、外側のパッケージが利用可能です。
3.抽象クラスとインタフェース、およびときに使用する方法との違い?
抽象クラスは、サブクラスは、双方が共通に持っている必要があり、親であると言うことができる、IS-関係です。
インタフェース関係がある様、それはインタフェースを実装しなければならない実装方法であり、インタフェースは、契約に似て実装し、両者は類似しない場所であることはできません。インタフェースメソッドは、公開されています。
- このクラスは、関連するメソッドを実装する必要はなく、例えば、関連のないクラスがのcompareTo()メソッドCompareableインターフェースを実装することができます。
- 多重継承を使用する必要があります。
抽象クラスを使用するためのアクセス要件の変更がある場合は、多重継承インタフェースを使用する必要がある場合。
- いくつかの関連するクラスで共有コード。
- 私たちはすべてではなく、公共のために、継承されたメンバのアクセス権を制御できるようにする必要があります。
- 私たちは、継承し、非静的定数フィールドする必要があります。
4.書き換え、重いです
、サブクラスは親クラスをオーバーライドするために同じ名前を継承階層を書き換えています。
異なるメソッドのパラメータをオーバーロード、オーバーロードされたメソッドを来て、異なるパラメータを選択し、多型のコンパイラ。
クラスオブジェクトを取得するには、3つの方法
.getClassオブジェクト()
.classクラス名
クラス名.forName(完全修飾クラス名)
根底にある6.linkedlistの実現
二重にリンクされたリストには、ダブルエンドキュースタックのために使用することができています
異常7.
スロー可能オブジェクトは、共通の親クラスであります
システムは、仮想マシンの実行時エラーとして、エラーやコンパイル時にエラーになりますので、この異常に対処することはできません
例外
(試験異常による)にIOException
スレッドの呼び出しが例外を中断したときに、動作環境、または他の原因による治療を余儀なくされました。](IO異常、SQL異常、ソケット異常)
ランタイム例外
プログラマがエラーの原因となったコードを作成するための処理は、ヌル・ポインタ例外、オーバーインデックス、メソッドに渡された不正パラメータ、等のような、必須ではありません。