Javaでの静的バインディングと動的バインディングの違い
バインディングは、メソッド呼び出しとメソッドの実際の実装の間にリンクを作成するメカニズムです。 Javaのポリモーフィズムの概念に従って、オブジェクトは多くの異なる形式を持つことができます。オブジェクトフォームは、コンパイル時と実行時に解決できます。メソッド呼び出しとメソッド実装の間のリンクがコンパイル時に解決される場合は静的バインディングと呼ばれ、実行時に解決される場合は動的バインディングと呼ばれます。動的バインディングはオブジェクトを使用してバインディングを解決しますが、静的バインディングはクラスとフィールドのタイプを使用します。
Sr。いいえ。 | キー | ||
---|---|---|---|
1 | 基本 | コンパイル時に解決されます | 実行時に解決されます |
2 | メカニズムを解決する | クラスとフィールドの静的バインディング使用タイプ | 動的バインディングはオブジェクトを使用してバインディングを解決します |
3 | 例 | オーバーロードは静的バインディングの例です | メソッドのオーバーライドは動的バインディングの例です |
4. | メソッドの種類 | private、final、staticのメソッドと変数は静的バインディングを使用します | 仮想メソッドは動的バインディングを使用します |
静的および動的バインディングの例
public class FastFood { public void create() { System.out.println("Creating in FastFood class"); } } public class Pizza extends FastFood { public void create() { System.out.println("Creating in Pizza class"); } } public class Main { public static void main(String[] args) { FastFood fastFood= new FastFood(); fastFood.create(); //Dynamic binding FastFood pza= new Pizza(); pza.create(); } }
-
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり
-
Javaでの静的バインディングと動的バインディング
はい!コンパイラは、メソッドの実行に使用するオブジェクトを知っている場合、参照をオブジェクトに静的にバインドできます。たとえば、静的変数、プライベート変数、final変数は静的バインディングを使用しています。一方、オブジェクトの識別が実行時に行われる場合は、動的バインディングが使用されます。メソッドのオーバーライドは動的バインディングの場合です。 一方、メソッドのオーバーロードは静的バインディングの場合です。