在Java中初始化long



原始数据类型- oracle文档说 long 在Java中的范围是-9,223,372,036,854,775,8089,223,372,036,854,775,807。但是当我在eclipse

中这样做时
long i = 12345678910;

显示"The literal 12345678910 of type int is out of range"错误。

有两个问题

1)如何用值12345678910初始化 long ?

2)是否所有的数字字面值默认类型都是 int ?

  1. 你应该添加L: long i = 12345678910L; .
  2. 是的。

BTW:它不一定是大写的L,但小写字母经常与1混淆:)。

  1. 您需要在数字的末尾添加L字符,以使Java将其识别为长。

    long i = 12345678910L;
    
  2. 是的。

参见基本数据类型,其中规定"整数字面值如果以字母L或L结尾,则为long类型;否则为int类型。"

您需要在末尾添加大写的L,如下所示

long i = 12345678910L;

对于3.0f

的float也是如此

它应该能回答你的两个问题

初始化long需要在末尾添加"L"。
它可以是大写或小写。

所有数值默认为int。即使对任意整数byte进行任何操作,byte也会首先提升为int,然后再执行任何操作。

试试这个

byte a = 1; // declare a byte
a = a*2; //  you will get error here

你得到错误,因为2是默认的int
因此,您正在尝试将byteint相乘。因此,结果被类型转换为int,不能分配回byte

最新更新