While writing some code I noticed that long(primitive) data type does not need to have the suffix l or L. My code compiles and run fine with this. Can anyone explain the logic B
When you do:
long l=435;
The compiler considers it as an int
, and then, since the data type you have given is a long
, so it does automatic conversion to long
data type. So you don't need a suffix.
However, if you try it with a really long number, like:
long l = 9999999999;
The compiler will throw an error (integer number too large). Because, it will try to consider it as an int
, but it is too big to be an int
. So, here, you need a suffix. If you do:
long l = 9999999999L;
Then it will compile.
Simply, a suffix is needed for a number which can only fit in a long
data type.