What is the performance penalty, if any, of using the Class.creatInstance and then Method.invoke methods as compared to explicitly instantiating using new and just calling the instance method?

Yes, there is a performance cost. An Object (a Class or Method) is created. Plus, the method name must me looked up dynamically. However the performance penalty is not that big. I don't have any benchmarks, but this (somewhat simplistic) code snippet may give you an idea:

As you can see, there is a performance hit. However, relative to other performance issues - poor design, file I/O, network latency - using reflection does not have that big of a impact. In fact, it is critical in many of Java's most attractive technologies, like JavaBeans and JavaServer Pages.

Also, there are other consequences to keep in mind when using reflection. On the upside, it can provide a great deal of flexibility to your application. On the downside, you lose some static typing that may lead to runtime errors if you aren't careful.