IntTest02.java
/*
在java中有一条非常重要的结论,必须记住:
在任何情况下,整数型的“字面量”默认被当做int类型处理。(记住就行)
如果希望该“整数型字面量”被当做long类型来处理,需要在字面量后面添加L/l
建议用大写L,因为小写l和1很容易认错。
*/
public class IntTest02{
public static void main(String[] args){
// 分析这个代码存在类型转换吗,一下代码什么意思?
// 不存在类型转换
// 100 这个字面量被当做int类型处理
// a变量是int类型,所以不存在类型转换。
// int类型的字面量赋值给int类型的变量。
int a = 100;
System.out.println(a);
// 分析这个程序是否存在类型转换?
// 分析:200这个字面量默认被当做int类型来处理
// b变量是long类型,int类型占4个字节,long类型占8个字节
// 小容量可以自动转换成大容量,这种操作被称为:自动类型转换。
long b = 200;
System.out.println(b);
// 分析这个是否存在类型转换?
// 这个不存在类型转换。
// 在整数型字面量300后面添加一个L之后,300L联合起来就是一个long类型的字面量
// c变量是long类型,long类型赋值给long类型不存在类型转换。
long c = 300L;
// 题目:
// 可以吗?存在类型转换吗?
// 可以。存在类型转换,int类型转换成long类型
// 自动类型转换。
long d = 2147483647;
System.out.println(d);
// 编译器会报错吗?为什么?
// 会报错,因为在java中的重要规则,2147483648超过了int类型的范围,所以编译报错。
// 错误:整数太大。
// 可以在217483648后加 L 解决这个问题
// long e = 2147483648;
long e = 2147483648L;
System.out.println(e);
}
}