You have, however, brought up a glaring fault I hadn't noticed before. I wonder if there's really no faster way to iterate over an array in Java.
I believe that Java's foreach loop would probably be the faster way you're looking for.
int[] numbers = new int[256];
for(int i : numbers){
//Do something...
}
(Pardon me if the syntax is off, I've been doing C# at work for the past year+ and haven't had a lot of time to use Java lately.) This example also works on any List that provides an iterator.
I've seen a lot of people on other forums (usually non-developers) complain about Java, which always irritates me because most of the reasons can't really be justified. If a program is well written, you shouldn't be able to know or care what language it's written in just because some of the others programs written in that language are lousy. For example, I used the FTP client CyberDuck for almost 2 years before I found out it was written in Java and was fairly impressed to find out.
In the scope of Object Oriented languages, I definitely believe that Java is significantly better than C++ just because of all of the things it does to make things easier for developers. The biggest thing of course is all of the standard classes that are officially part of the language. Having easy access to use Threads, Sockets, Queues, File IO, and UI elements really makes things much easier. Sure, .NET gives C++ those thing like that too, but only on Windows. Otherwise I'm stuck finding third party libraries, manually fussing around to link to them, and then I need to deal with documentation that isn't consistent across the board. I know they're supposedly working on an updated C++ standard that includes more standard classes out of the box, but this is something that they should have been doing for years. Also the fact that you need to prefix every single method in a C++ class with it's class name is just unnecessary extra typing.
I was a bit surprised when I learned Objective C how much more I like it than C++, and considering it's been around longer I wonder why it never gained any popularity. It has a huge standard class library (GNUstep) comparable to .NET and Java, and classes are surrounded by {} like in Java so you don't need to declare the class name for every single method in the class. Yet it still is 100% compatible with existing C code.
I guess this kind of turned into a big long rant about how I don't like when people complain about Java, but oh well. This really doesn't have much to do with performance either. I do wonder though how performance of compiled C would be versus Java code complied with GCJ. I would assume that given the structure of the language is much closer to what you can do in assembly that it would always be possible for C to win, but it probably doesn't matter in the long run.