第四章初期化とクリーンアップ

第四章初期化とクリーンアップ

1.次の点を確認し、初期化コンストラクタ

Javaでは、コンストラクタは、各オブジェクトのクラスの設計が初期化されることを保証するこの特定の方法によって提供します。オブジェクトが作成されると、それはクラスのコンストラクタを持っている場合は、操作対象のユーザーがその初期化を確実にする能力を持っている前に、Javaは自動的に適切なコンストラクタを呼び出します。

    アカウントにコンストラクタメソッドの名前を取ったとき、あなたは二つの問題が発生する場合があります。まず、クラスのメンバーの名前と月の衝突を撮影した名前を、2番目、コンストラクタは、コンパイラの責任である呼び出し、それはする必要がありますメソッドが呼び出されるべきコンパイラまで。Javaは使用しています:解決のために同じ名前を使用して、クラスのコンストラクタを。

2.メソッドのオーバーロード

各オーバーロードされたメソッドは、パラメータの型のユニークなリストを持っている必要があります。基本データ型の過負荷、小から大リフト自動A型へのデータ型の基本型、小さいタイプキャストに大きな擬似からのデータ・タイプが必要とされる(狭変換)から、情報が失われる可能性があります。

    クラスがコンストラクタでない場合は(関係なく、パラメータがあるかどうかの)コンストラクタを定義した場合、コンパイラが自動的に、コンパイラが自動的にデフォルトコンストラクタを作成していない、デフォルトコンストラクタを作成します。

    オブジェクトを作成する顔で

オブジェクトA =新しいオブジェクト、B =新しいオブジェクト。

AF(1)。

BF(2)。

どのように呼び出しfにコンパイラまたはbで知られ、ここで()メソッドその舞台裏コンパイラは仕事をしているため、密かにそれを入れて、「操作オブジェクトへの参照は、」(Fの最初の引数として渡されます) (1)そうobject.fあります。

    このキーワードのため:このキーは、唯一の「オブジェクトは、メソッドを呼び出して、」内部の方法の使用への参照を表現することができます。呼び出した場合メソッドの同じクラス内の別の方法は、これを使用する必要があります。コンストラクタは、コンストラクタからコンストラクタを呼び出すされ、このパラメータリストに沿って、コンストラクタへの明確なコールを持っている、このオブジェクトにパラメータリストを追加する場合、このキーはその後、コンストラクタを使用することができます制御方法がありますが、コンストラクタを呼び出すことができますが、2を呼び出すことはできません、これを使用して、ほかに、コンストラクタ呼び出しは、そうでない場合、コンパイラは間違って行くだろう、非常に先頭に配置する必要があります。

3.クリーン:治療の終了とガベージコレクション

Javaのガベージは、これらの不要なオブジェクトを収集したが、ちょうどガベージコレクタは新しい経由で割り当てられているメモリを解放することを知っているが、いくつかの特別なオブジェクトは、プログラマは、ファイナライズ()メソッドを使用して操作することができ、この時点で解放することはできませんがあります。オブジェクトが事前に呼び出しファイナライズ()メソッド、その後、次のガベージコレクションをリリースされたときに実際の行動は、メモリがオブジェクトによって占有回復行われたときに、ガベージコレクタので、ガベージコレクションの時にいくつかのクリーンアップ作業を行い、この方法を使用することが可能です。

       注意:オブジェクトがゴミではないかもしれない、ガベージコレクションは、平均デストラクタをしません。ガベージコレクションは、専用メモリ関連。かどうか、それはゴミや終わり、どうなるの保証なしです。Java仮想マシンが直面している状況は、メモリが不足していない場合は、メモリを復元するためにガベージコレクションを実行するための時間の無駄ではありません。

       ガベージコレクションは、考えに基づいている:任意の生きているオブジェクトに対して、最終的に参照のスタックまたは静的記憶領域に戻って自分の生存にさかのぼることができるようになります。

4.メンバーの初期化

       エラーが発生し、コンパイルを初期化しない場合は、すべての変数では、メソッド内のローカル変数を定義するために、適切に使用する前に初期化する必要があります。データメンバと基本的なタイプであるために、コンパイラが自動的にデフォルト値を開始します。通常、プログラマは、メソッドにデータメンバを初期化することも可能ですので、それが可能です。

       実行時に、あなたはプログラミングのためのより高い柔軟性をもたらす初期値を決定するためにメソッドを呼び出したり、何らかのアクションを実行することができます。しかし、覚えておいて:あなたは、自動初期化が行われ、コンストラクタが呼び出される前に、それが起こるのだろう停止することはできません。クラスの中で、変数の定義の順序は、初期化の順序を決定します。定義は、プロセス・スプレッドの変数を定義する前にも、彼らはまだ(コンストラクタを含む)のいずれかの方法を呼び出す前に初期化されます。初期化シーケンスは、次いで、静的非静的オブジェクトの対象です。

おすすめ

転載: www.cnblogs.com/xiaobaidashu/p/12061811.html