Every time when you use "new" operator JVM will create a new instance and it will be assigned to the Left hand side operand of assignment operator.
it doesn't matter on for each loop or for loop.
In for each loop
for(MyObject O : Object)
O will be created once only that will be of MyObject it will not be instantiated and the values from the Object array will be keep copying in O
like
O = Object[0]
O = Object[1]
O = Object[2]
O = Object[3]
O = Object[4]
O = Object[5]
We do not need to tack care of increasing the counter, thats the beauty of for Each loop.