Меня смущают эти концепции объектно-ориентированного программирования. Оба выполняются во время выполнения, но я не могу их различить.
В чем разница между динамической привязкой и динамической загрузкой?
Ответы (1)
Динамическое связывание и динамическая загрузка действительно находятся на краю набора концепций Java, необходимых разработчику, если не за его пределами, поскольку Java обычно пытается избавить вас от таких вещей.
Динамическое связывание — это поиск по имени во время выполнения. Например, файл класса может вызвать инструкцию System.currentTimeMillis()
, которая находится в другом файле класса. Класс (java.lang.System
) загружается динамически (обсуждается позже), и метод выполняет поиск в этом классе по имени во время выполнения (хотя поиск может быть запомнен или кэширован).
Динамическая загрузка немного отличается. Это загрузка кода или метода, когда это необходимо (т. е. не загрузка файла класса до тех пор, пока он не потребуется. System
не является хорошим примером, поскольку он, возможно, загружается JVM на ранней стадии, хотя TreeMap
может выступать в качестве хорошего примера. Динамическое связывание может затем происходят.