我正在学习Java,而且我有一些不清楚的事情,如果有人能帮忙,我会很高兴。原始数据类型一些问题
第一个问题
INT的约值是:2.147.483,647
长的约值是:9,223,372,036,854,775,807
“的整数如果以字母L或l结尾,则文字的类型为long;否则为int类型“
这意味着,在情况下,我不添加字母L/L到一个变量名
如结束:
long num=3515; //no letter L/l at the end
所以变量num
视为int
类型不只要类型。
所以我做了这个节目:
public class caluMaxNum
{
public static void main(String [] args)
{
long max=2147483640; //doesn't have letter L/l so it consider as an int
for(int i=0;i<=10;i++)
{
max++;
System.out.println(max);
}
}
}
这是输出:
2147483641
2147483642
2147483643
2147483644
2147483645
2147483646
2147483647
2147483648 2147483649 2147483650 2147483651
INT的约值是:2,147,483,647和可变最大值为int,所以它是怎么打印大胆值?
第二个问题:
关于缩小转换:
是我的说法是真的吗?
只有在byte/short类型的值为以下值之一的情况下,才能将字节类型(8位)和短类型(16位)转换为char类型(16位):0,1,2 ,3,4,5,6,7,8,9否则会出现一个运行时错误
- 第三和最后一个问题:
当我宣布数值变量类型,如:
float num1=34.1;
float num2=34.1F
long num3=43
long num4=953L
如果字母符号化,我也可以声明变量w其他类型使用他们的第一个字母?为什么要包含num1到num2和num3到num4的区别?
要回答你的第一个问题,整数文字就是实际的数字,就像'2147483640'。这是一个整数字面值。 '2147483640L'是一个长文字。这就是这句话的意思。您不必在变量名称末尾加上“L”,以使其成为“long”。将变量定义为'long num'即可。而且,当分配给一个变量时,比如'long num = 3515',不需要在数字的末尾加上“L”。它将被正确分配为“长”。我希望这有助于澄清你的困惑:) – jonhopkins
那么我刚刚学到了一些关于'long's的新东西哈哈。事实证明,它实际上是一个'int',直到最后放置“L”,尽管一旦它被分配给一个“long”变量,那么它就是一个“long”。因此,对于大于int的最大值的整数文字(2147483647),实际上最后必须具有“L”。我很抱歉在我的第一条评论中错过了这一点。 – jonhopkins