关于Java语言的整数型:
数据类型包括:
byte,short,int,long.
数据类型 | 占用空间大小 | 默认值 | 取值范围 |
byte | 1 | 0 | -128到127 |
short | 2 | 0 | -32768到32767 |
int | 4 | 0 | -214748368到214783647 |
long | 8 | 0L |
1.Java语言中整数型字面值被默认当中int类型类处理,要让这个”整数型字面值“被当作long类型来处的话,需要在”整数型字面值“后面添加l/L,建议大写L
2.Java语言当中的整数型字面值有三种表示方法:
第一种方式:十进制;【是一种缺省的默认方式】
第二种方式:八进制;【在编写八进制整数型字面值的时候需要以0开始】
第三种方式:十六进制。【在编写十六进制整数型字面值的时候需要以0开始】
public class Shujuleixing
{
public static void main(String[] args){
int a=10;
int b=010;
int c=0x10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
其中整数型字面值以0开头,后面一串数字是八进制形式。
整数型字面值以0x开头的,后面一串数字是以十六进制。
System.out.println(a+b+c);
结果为34,整数型结果。
int i=123;
long x=456;
456整数字面值是整数型,x在声明时候是long类型,将int类型赋值给long类型变量,存在类型转化。
若long z=2147483648;
这样编译报错,超出int范围。
改:long z=2147483648L;
编译成功。
将其改为long类型变量。
自动类型转化:
小容量向大容量转化。
x变量是long类型,y变量是int类型:
public class DataTypeTest
{
public static void main(String[] args){
long x=100L;
int y=x;
}
}
编译报错,大容量转化成小容量,需要进行强制类型转换符。
加上强制类型转换符后编译通过但是精度损失。
//java中的int类型
public class DataTypeTest
{
public static void main(String[] args){
long x=100L;
//int y=x;
int y=(int)x;
System.out.print(y);
}
}
byte是特别的,只要不超出范围,不用进行强制类型转化。
例如:byte b=50;
该类型原本为int,但是声明了一个byte,直接看作byte类型。