The biggest negative for Java is not performance. For boxed titles it is platform support - currently nothing on consoles. For titles distributed online JRE market penetration could be a problem (but might not be for every title). The first is not an issue if you aren't planning a release on any consoles, and the second is nowhere near as bad as it used to be. 50% of all new computers sold come with the latest Sun JRE preinstalled now, thanks to deals Sun has made with OEMs such as Dell over the past year or so.
I think your friends will be fine considering they have an education in Java. Forget about the 5 year old rumors. Java games are competitive when created by someone who knows what they are doing. A beginning C++ programmer will likely produce suboptimal C++ code, but a veteran will know the pitfalls and tricks of the trade. The same is true of Java. This...
Quote:
One of the fundamental problems is that object instanciation is very expensive in java
...is an example of inexperience and/or misinformation. Object instantiation in Java is faster than C++. This is one of the benefits of garbage collection. The reason Java programmers use object pools and such is not to avoid allocating new objects, but to avoid generating a boatload of garbage. And even then only when a GC profiler indicates there is a problem.
That's another great thing about Java, is the profiling and debugging features built in to the VM. There's a plethora of free and commercial tools to help you tune a Java app. VM parameters can be used to adjust min and max heap size, the type of GC to use, server/client VM... many options. Proper use of these tools in conjunction with solid code help get the best performance possible from a Java app. Without all of the optimizing you still get acceptable performance, but someone who really knows what they are doing can do amazing things.