Is it true that Java programs are slower and take up more memory than normal programs?

Yes, it is true. But I must tamper this affirmation.

Java programs are slower because they are not directly compiled in native machine code but into an intermediate machine code that must be translated by the JVM. This translation slows down the program's execution. Also, since the JVM must be loaded in memory before the program can start, there is a slight delay in execution when starting the software. But one must also realize that, with computing speed doubling every eighteen months, this slowness will become less and less apparent. Furthermore, the JVM is becoming more efficient with every new release. Startup time has decreased significantly and critical portions of code (code that runs a lot) are directly compiled into native code by the JVM.

As for the memory issue, it is becoming less important as “off the shelf” computers now come with more and more memory.