我对面向对象编程的这些概念感到困惑。两者都是在运行时完成的,但我无法区分这两者。
答案 0 :(得分:1)
动态绑定和动态加载确实处于开发所需的Java概念集的边缘,如果不是外部的话,因为Java试图通常使您免于这些事情。
动态绑定是按名称进行的运行时查找。例如,类文件可以调用位于不同类文件中的指令System.currentTimeMillis()
。类(java.lang.System
)是动态加载的(稍后讨论),并且该方法在运行时按名称在该类中查找(尽管查找可以被记忆或缓存)。
动态加载略有不同。它是在需要时加载代码或方法(即在第一次需要之前不加载类文件。System
不是一个很好的例子,因为尽管TreeMap
可能会在{{1}}之前由JVM尽早加载它作为一个很好的例子。然后可以进行动态绑定。