Here are my 2 examples:
1. Directly assigned value to long data type:
long a = 12243221112432;
I get an error:
integer number too large
But when assisgned like this:
ArrayList<Integer> al = new ArrayList<Integer>(); al.add(12); al.add(24); al.add(32); al.add(21); al.add(11); al.add(24); al.add(32); long a=0; for(int i=0; i<al.size(); i++){ a = a*100 + al.get(i); } System.out.println(a);
I get this output:
12243221112432
Why doesn't java throw an error in second example?
It isn't allowing to assign large value directly(example 1) but indirectly(example 2) it stores it and also allows me to use it too!
What is the reason for this to occur?
Is it because i am using integer in arraylist or something else?
UPDATE
Why is the large value stored in 'long a' in second example without using literal L?
It should have given me an error during 5th or 6th iteration of for loop...
Note
My question is not regarding the first example... I am asking why it worked for the second example...
Dont mark the question duplicate, since the other questions do not have my answer..stated above