Java中整数类型
byte short int long
- byte [-128,127]
- short [-32768,32767]
- int [-2147483648,2147483647]
- long
java语言当中整数型字面值被默认当作int类型,要让一个整数型字面值被当作long类型来处理,需要再整数型字面值后面添加l或者L,建议大写L;
java语言中整数型字面量有三种表示方式
十进制 默认
八进制 需要以0(零)开头
十六进制 需要以0x(零x)开头
public class Test {
public static void main(String[] args) {
int a = 10; //10
int b = 010; //8 0开头就是八进制
int c = 0x10; //16 0x开头就是16进制
//输出都是10进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
/**
* 123这个整数型字面量是int类型
* i变量声明的时候是int类型
* int类型的123赋值给int类型的变量i,不存在类型转换
*/
int i = 123;
System.out.println(i);
/**
* 456这个整数型字面量是int类型,占用四个字节
* m变量声明的时候是long类型,占用8个字节
* int类型的123赋值给long类型的变量m,存在类型转换
* int 类型(小容量)转换为 long类型 (大容量)
* 小容量自动转为大容量
*/
long m = 456;
System.out.println(m);
/**
* 456这个整数型字面量是int类型,占用四个字节
* m变量声明的时候是long类型,占用8个字节
* int类型的123赋值给long类型的变量m,存在类型转换
* int 类型(小容量)转换为 long类型 (大容量)
* 小容量自动转为大容量
*/
long y = 2147483647;
System.out.println(y);
long z =2147483648L;//不加L会溢出 整数型字面值被默认当作int类型
System.out.println(z);
// 大容量转成小容量 ,需要进行强制类型转换
// 需要加强制类型转换符
// 加上转换符后能编译通过,但是在阶段可能会造成精度损失
// 所有强制类型转换要谨慎使用
}
}