Which of the following Java coding fragments is better?
        Posted  
        
            by Simon
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Simon
        
        
        
        Published on 2010-05-21T21:15:05Z
        Indexed on 
            2010/05/21
            21:20 UTC
        
        
        Read the original article
        Hit count: 204
        
java
|variable-scope
This isn't meant to be subjective, I am looking for reasons based on resource utilisation, compiler performance, GC performance etc. rather than elegance. Oh, and the position of brackets doesn't count, so no stylistic comments please.
Take the following loop;
Integer total = new Integer(0);
Integer i;
for (String str : string_list)
{
    i = Integer.parse(str);
    total += i;
}
versus...
Integer total = 0;
for (String str : string_list)
{
    Integer i = Integer.parse(str);
    total += i;
}
In the first one i is function scoped whereas in the second it is scoped in the loop. I have always thought (believed) that the first one would be more efficient because it just references an existing variable already allocated on the stack, whereas the second one would be pushing and popping i each iteration of the loop.
There are quite a lot of other cases where I tend to scope variables more broadly than perhaps necessary so I thought I would ask here to clear up a gap in my knowledge. Also notice that assignment of the variable on initialisation either involving the new operator or not. Do any of these sorts of semi-stylistic semi-optimisations make any difference at all?
© Stack Overflow or respective owner