我很困惑究竟調度是什麼。特別是當涉及到雙重調度時。有一個簡單的方法可以理解這個概念嗎?在java中調度什麼
回答
調度是語言將調用鏈接到函數/方法定義的方式。
在java中,一個類可能有多個名稱相同但參數類型不同的方法,並且該語言指定使用具有最特定類型的參數的正確數量的方法調用方法調用可以匹配。這是靜態調度。
例如,
void foo(String s) { ... }
void foo(Object o) { ... }
{ foo(""); } // statically dispatched to foo(String)
{ foo(new Object()); } // statically dispatched to foo(Object)
{ foo((Object) ""); } // statically dispatched to foo(Object)
Java還具有虛擬方法分派。子類可以重寫在超類中聲明的方法。因此,在運行時,JVM必須將方法調用分派到適合運行時類型this
的方法版本。
例如,
class Base { void foo() { ... } }
class Derived extends Base { @Override void foo() { ... } }
{ new Derived().foo(); } // Dynamically dispatched to Derived.foo.
{
Base x = new Base();
x.foo(); // Dynamically dispatched to Base.foo.
x = new Derived(); // x's static type is still Base.
x.foo(); // Dynamically dispatched to Derived.foo.
}
雙調度是靜態和運行時(也稱爲動態)調度組合。
謝謝!這幫助了很多。 – thunderousNinja 2011-04-01 01:47:49
這是一個非常好的答案。我知道Java不是一種雙重調度語言,但是您能否添加一個例子來說明在當前示例的上下文中雙重調度WOULD的樣子?我猜測它會像'x.foo(「」)'',但我認爲這將是非常有用的看到它。 – Ogen 2016-10-11 23:20:47
@Ogen,這是關於Java中的雙重調度。你能說JavaScript嗎? – 2016-10-11 23:57:02
- 1. 什麼是溫度和什麼是在Java中使用溫度?
- 2. 什麼框架可用於Java中的高級作業調度?
- 3. 什麼是調度抖動?
- 4. 什麼是調度員
- 5. 什麼是組播調度?
- 6. 爲什麼在Java中允許雙精度的任意精度?
- 7. 爲什麼我在Akka調度演員?
- 8. 什麼是hrtick_clear(rq);在Linux調度?
- 9. 在linux任務調度程序中,sheduler_tick()調用了什麼?
- 10. 什麼是java的回調?
- 11. 什麼是Java中的回調
- 12. 什麼是java中的Collections.checkedList()調用?
- 13. Java中可調用的是什麼?
- 14. 什麼是Java中的回調接口?
- 15. 什麼是outData.writeInt()在Java中做什麼?
- 16. JAVA:調度線程工作的最佳方式是什麼?
- 17. 什麼是java信號調度程序線程?
- 18. 爲什麼不是Java雙重調度造成的死循環?
- 19. 在Java中這是什麼意思「長度> = 0?長度:長度* -1」
- 20. 在java中做什麼?
- 21. 在Java中什麼意思?
- 22. java在void中做什麼?
- 23. Collections.unmodifiableSet()在Java中做什麼?
- 24. 什麼在Java中匹配
- 25. 什麼意思在java中?
- 26. cipher.update在java中做什麼?
- 27. 在Java中@Override是什麼?
- 28. fpstrict在Java中做什麼?
- 29. 在java中有什麼「@Override」?
- 30. 什麼是Java中的單精度/雙精度?
哈哈是啊...我想如果我明白調度,我會更好地瞭解訪客模式 – thunderousNinja 2011-04-01 01:50:33
啊是的。對不起,我將刪除標籤。這與設計模式無關:) – BalusC 2011-04-01 01:51:39
只需注意「調度」一詞有些超載。它也可能意味着將計劃任務放到處理器上的操作。在一些實時調度程序中,調度程序和調度程序的概念是不同的想法和軟件組件。 – andersoj 2011-04-01 02:29:31