整形:
Java中,任何一个整型常量都是int类型
Java中声明long常量,需要在数字后添加L(l)
范围小的数据类型可以自动提升为范围大的数据类型(进行数学运算时)
范围大的数据类型只有强转才能转为范围小的数据类型(可能存在精度丢失问题)
所有数据类型默认值需要结合类来观察,方法中的局部变量不存在默认值(局部变量必须先赋值后使用)
public class Test{
public static void main(String[] args){
int maxValue=Integer.MAX_VALUE; //2147483647
int minValue=Integer.MIN_VALUE; //-2147483648
long num1=maxValue+2;
long num2=maxValue+2l;
long num3=minValue-2;
long num4=minValue-2l;
long num=2147483648l;
int result1=(int) num;
// int result2=num; //不兼容的类型,数据丢失,编译报错
System.out.println(num1); //-2147483647
System.out.println(num2); //2147483649
System.out.println(num3); //2147483646
System.out.println(num4); //-2147483650
System.out.println(result1); //-2147483648
// System.out.println(result2);
}
}
byte与int:
若整型常量在byte保存范围内,整型常量可以直接赋值给byte变量无须强转。
否则int->byte必须要强转(整型常量值超出byte范围、将整形变量赋值给byte变量)
byte data=(byte)300;
data=44;