why don't we need suffix on long in java?

后端 未结 3 1189
悲&欢浪女
悲&欢浪女 2021-01-21 19:18

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

3条回答
  •  一向
    一向 (楼主)
    2021-01-21 19:56

    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.

提交回复
热议问题