When you need to be close to the hardware, because you have a heavily computation bound task, it’s hard to beat C and subsets of C++ (full C++ is a pig in the way it allocates/deallocates arrays on the heap) — unless you go to assembler. Angry Birds doesn’t need to produce 3-dimensional graphics, so it would be happy enough in Java.
Say no more, say no more :-) Thanks for the responses.