在Java中初始化一长串

原始数据types – oracle doc说Java中long的范围是-9,223,372,036,854,775,8089,223,372,036,854,775,807 。 但是当我在日食中做这样的事情

 long i = 12345678910; 

它显示我“ The literal 12345678910 of type int is out of range ”错误。

有两个问题。

1)如何初始化long12345678910的值?

2)默认的所有数字文字是inttypes的吗?

  1. 你应该添加Llong i = 12345678910L;
  2. 是。

顺便说一句:它不一定是一个大写的L,但小写与1多次混淆:)。

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

     long i = 12345678910L; 
  2. 是。

请参阅原语数据types ,其中指出:“如果整数字面量以字母L或l结尾,则为long型;否则为int型。

你需要像这样在最后加上大写字母L

 long i = 12345678910L; 

对于3.0f float也是如此

哪个应该回答你的两个问题

要初始化很长时间,您需要在末尾添加“L”。
它可以是大写或小写。

所有的数值都是默认的int 。 即使你用任何整数对byte进行任何操作, byte也首先被提升为int ,然后执行任何操作。

尝试这个

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

你得到错误,因为2是默认的int
因此,你正试图乘以byteint 。 因此结果得到了typecasted到int不能被分配回byte