InvokeDynamic allows Java 7 to support dynamically typed languages like Groovy and JavaScript by enabling dynamic method dispatch via invokedynamic bytecode instruction. This improves upon reflection for calling dynamic language methods by making calls faster, JIT-compiled, and inlined. It establishes a bootstrap mechanism and MethodHandle API to link dynamic languages to the Java runtime. While several dynamic languages have proposed or partial support, InvokeDynamic benefits are still being explored.