、静的役割
static修飾子は、メンバ変数(静的変数/クラス変数)を変更するために使用されます。
修正静的メンバーはされているすべてのオブジェクトで共有します。
オブジェクトの上に静的優先順位が存在します。
静的メンバーはによって変更することができるクラス名。静的メンバのアクセスを。
注意:1.静的メソッドは静的メンバーのみにアクセスすることができ、非静的メソッドが静的なメンバにアクセスすることができ、非静的メンバにアクセスすることができます。
2.静的メソッドは、この/ superキーワードを使用することはできません。
3.主な機能は、静的なものです。
二、最終的役割
finalクラス、クラス属性、クラスメソッドを変更するため。
最後のクラスが変更継承することはできません、修正クラス属性、クラスメソッドをカバーすることができません。
最終的な修飾クラス属性は、(一定の修正のために)再割り当てすることはできません
三つの違い、過負荷(オーバーロードさ)とオーバーライド(書き換え)の
過負荷(オーバーロード) | オーバーライド(リライト) |
パラメータタイプ、数、少なくとも一つの順序と同じではありません | そのためのメソッド名、引数、戻り値 |
メソッドの唯一の異なる戻り値はオーバーロードできません | サブクラスのメソッドは、親クラスのメソッドへのアクセスを減らすことはできません |
これは、サブグレードと親クラスとの間に存在します | サブクラスのメソッドは、親クラスよりも多くの例外をスローすることはできません |
アクセス、戻り値の型、過負荷に例外がスローされたことはできません | 親クラスとサブクラスの間に存在します |
メソッドの例外の種類と数は、オーバーロードには影響しません | 親クラスのメソッドは、最終的にオーバーライドすることができないように定義されます |
サブクラスのメソッドで/カバレッジを書き換えられ、親クラスのタイプは、プライベートではありません |
オーバーライドは、子と親クラスとの間の多型の過負荷は、反射多型同一具体。
コンパイル時の過負荷によって達成多型、多型(方法カバレッジ)を上書きすることにより実現ランタイム。
Javaは、演算子のオーバーロードをサポートしていません。
第四に、組み合わせと継承の違い
1.継承されている何
継承は、サブクラスは親クラスの挙動特性を継承するサブクラスオブジェクト(インスタンス)インスタンスのフィールドとメソッドが親クラスまたはサブクラスを有する親クラスを継承している同じ親クラス挙動を有するサブクラスです。拡張により、Java実装の継承で。すべてのクラスのデフォルトは、java.lang.Object上位の継承サブクラスを。継承は、IS-関係。
2.組み合わせは何ですか
組成物を生成すること、すなわち、既存のオブジェクトを組み合わせることにより、カプセル化された新機能を備えたより複雑です。組み合わせがされてい-関係を。
継承の違いや接続の3組み合わせ
受け継ぎます | 組み合わせ |
コード「白カセット」リユースに属する内部の詳細可視サブクラス親クラス、。 | 物体の内部の詳細が表示されていない間に、そのコードは「黒カートリッジ」の再利用です。 |
符号化プロセスにおける継承は、特定の親クラスを割り当てるには、コンパイル時の関係をクリア | 関係の組み合わせは、一般的に、実行時に決定されています |
関係-です | 関係-あり |
4.継承長所と短所
利点:親クラスを継承することによって達成拡大をサポートしていますが、システムをより複雑な構造になります
コードの多重化を修正するのは簡単
短所:ホワイトボックスは、親クラスの実装の詳細は、サブクラスブレークカプセル化にさらされ、コードを再利用
場合は、親クラスの実装コードの変更は、サブクラスも変更し、メンテナンスの難易度を高めるために持っていたことがあります。
独立のサブクラス欠如は、高度に結合された、親クラスに依存します
動的な拡張をサポートしていない、それは親クラスをコンパイル時に決定されました
組み合わせの長所と短所
利点:コード多重ブラックボックス、内部オブジェクトを含むパッケージが良好で、実装の詳細外見えません。
全クラスとローカルクラスとの間の疎結合、互いに独立。
延長サポート
各クラスは、1つのタスクのみに焦点を当てて
異なるタイプの組合せは、実行時に特定の対象オブジェクトに応じて適宜選択することができ、延在サポート(比スケーラビリティを継承しました)
短所:あなたは、オブジェクトのクラス全体、ローカルクラスのオブジェクトを作成するために必要なすべてを作成します。システムオブジェクトの多くを引き起こします。
五、Javaの初期化シーケンス(優先度の高い順)
非静的変数(オブジェクト)に優先して1.静的変数(オブジェクト)、スタティック変数は一度だけ初期化され、非静的変数が複数回初期化することができます。
サブクラスへ2.親の好み。
3.定義されたキーを押しメンバ変数の初期化シーケンス
父类静态变量——>父类静态代码块——>子类静态变量——>子类静态代码快——>父类非静态变量——>父类非静态代码块——>父类构造函数——>子类非静态变量——>子类非静态代码块——>子类构造函数
静态代码块一定在main()方法执行前执行(与顺序无关)
六、HTTP与HTTPS的区别
HTTP | HTTPS | |
安全性 | 连接简单,是无状态的 | 安全的超文本传输协议,比HTTP更加安全 |
证书 | 免费 | 需要申请CA证书,CA证书免费的少 |
传输是否加密 | 明文传输 | SSL加密传输 |
端口 | 80 | 43 |
七、产生死锁的主要原因和条件
1.产生死锁的主要原因
系统资源不足
进程运行推进的顺序不合适
资源分配不当
2.产生死锁的四个条件
互斥条件:一个资源只能被一个进程使用
请求与保持条件:一个进程因请求阻塞时,获得的资源保持不变
剥夺条件:进程已获得的资源,在未使用完之前,不会强行剥夺
循环等待条件:若干进程之间形成一种头尾相接的循环等待资源