In documentation I read, that:
A variables name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits
so, I created this class:
class Test{
public static void main(String args[])
{
int i=10;
}
}
where i - its not i, its variable with name length - 3.000.000 chars, the size .java file ~3M.
I try compile this file:
javac Test.java
In result I have Test.class
with size Test.class 4 bytes.
And now my questions:
unlimited-length
??.class
file?iiiiiii..
is a local variable, i.e. it cannot be accessed from other classes. Therefore, its name does not matter; the compiler does not need to store it. Additionally, the compiler may look at your code and determine that {int i = 10;}
is not actually doing anything and can be replaced by {}
since both versions produce the same program output (none).