Javaでのランタイムポリモーフィズム
メソッドのオーバーライドは、実行時のポリモーフィズムの例です。メソッドのオーバーライドでは、サブクラスはそのスーパークラスと同じシグネチャを持つメソッドをオーバーライドします。コンパイル時に、参照タイプがチェックされます。ただし、ランタイムでは、JVMはオブジェクトタイプを把握し、その特定のオブジェクトに属するメソッドを実行します。
概念を理解するには、以下の例を参照してください-
class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Animal { public void move() { System.out.println("Dogs can walk and run"); } } public class TestDog { public static void main(String args[]) { Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal reference but Dog object a.move(); // runs the method in Animal class b.move(); // runs the method in Dog class } }
Animals can move Dogs can walk and run
-
Javaの同時実行性– yield()メソッド
歩留まり関数 この関数は、実行に時間がかかりすぎて重要ではないスレッドではなく、より重要なスレッドが最初に実行されるようにします。 スレッドがjava.lang.Thread.yieldメソッドを呼び出すとき、それはスレッドスケジューラがその実行を一時停止することを示します。スレッドスケジューラは、この指示を受け入れるか無視するかを選択します。 スレッドが「yield」関数を実行する場合、スケジューラーは、同じかそれ以上の優先順位を持つスレッドが存在するかどうかを確認します。その場合、現在のスレッドは実行可能または準備完了状態に移行し、そのスレッドにはプロセッサリソースが与えられます。
-
Java 9でのdestroyForcibly()メソッドの重要性?
destroyForcibly() メソッドを使用してプロセスを強制終了できます 。プロセスが終了またはフリーズした場合に必要になります。たとえば、 isAlive() destroyForcibly()の後にメソッドはtrueを返します と呼ばれます。 destroyForcibly() メソッドは、終了が正常に要求された場合はtrueを返し、それ以外の場合はfalseを返します。 構文 boolean destroyForcibly() 以下の例では、メモ帳を起動できます。 アプリケーションであり、 destroyForcibly()の後に終了します メソッドが呼び出されました。 例