原始数据类型有些问题

时间:2013-09-30 13:44:17

标签: java primitive-types narrowing

我正在学习Java,我有一些不清楚的事情,如果有人可以提供帮助,我会很高兴。

第一个问题

int的近似值是:2.147.483,647

long的近似值为:9,223,372,036,854,775,807

This website说:

  

“如果整数字面以字母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,变量max是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

如果字母符号化我可以用其他类型声明变量使用他们的第一个字母怎么办?为什么要包括num1到num2和num3到num4?

之间的区别

1 个答案:

答案 0 :(得分:0)

  1. 虽然用于初始化max的值可能是int,但max显式声明为与输出完全一致的长整数。

  2. 答案取决于“转换”的含义。

  3. num1&amp; num2是一样的;无论使用什么(如果有)后缀,num3和num4都是完全不同的值。