什么是数据类型?
在Java中用数据类型来存储值。
声明变量需要声明数据类型,变量就是申请内存来存储值,也就是说,在创建变量时,需要在内存中申请空间。存储的值必须与数据类型相同。
基本数据类型
上图为数据类型的结构图;
后面的英文为数据类型的声明方式;
声明方式不同,占用的内存空间也会不同,占用的内存空间不同,取值范围也不同。
整数类型的四种声明方式:
整数类型byte:
byte在数据类型中占用1个字节,取值范围在-128~127之间,使用byte创建变量时不可以超出取值范围,若赋值时超出byte取值范围时,编译器将会报错。将无法运行代码。
//声明变量的公式: 数据类型 变量名称 = 变量值
//同理 byte i = 整数
//注意:要将代码写在方法体中,变量名称不可以重复
//要将代码写在方法体中
public class Demo{ //创建演示类
public static void main(String[] args){ //主方法
byte i = 15; //创建byte型变量i,并赋值
byte j = 16; //创建byte型变量j,并赋值
byte k = i + j; //创建byte型变量k,并将变量i与变量j相加的结果赋值给k
System.out.println(k); //输出k的结果
}
}
整数类型short:
short在数据类型中占用了2个字节,也就是16位,byte也有相应的取值范围。同理,不可超出short的取值范围,否则会报错。
//整数类型的默认类型是int型,不声明类型时随便写一个整数默认类型是int型
//变量名称不能重复。
short i = 16; //创建short型变量i,并赋值
short j = 15; //创建short型变量j,并赋值
short k = i - 90; //创建short型变量k,并将i的值与int型90相减的积赋值给k
System.out.println(k); //输出k的结果
整数类型int:
int型变量是整数中最常用的数据类型。int在数据类型中占用4个字节,同理,相应的取值范围。
int i = -15; //声明int型变量i,并赋值
int j = 15; //声明int型变量j,并赋值
int k = j + 15 + i; //创建变量k,将该公式的值赋给K
System.out.println(k); //输出k的值
整数类型long:
long型变量是整型当中比较特殊的变量,给long赋值需要给后缀加上L或者小写l,以免造成精度的丢失,因为不声明任何数据类型时,随便写一个整数它是有数据类型的,这个默认数据类型就是int型,因此,给long赋值时需要加上大写L和小写l作为后缀,在long赋值时没有加L后缀是不会报错对的。
以下代码块为未加后缀得出的结果:两个整数相乘得到的结果是负值,这就是默认数据类型导致精度丢失得出的结果。
public class In{
public static void main(String[] args){
long i = 123456789 * 987654321;
System.out.println(i);
}
}
运行结果:
-67153019
加上L后缀的结果
public class In{
public static void main(String[] args){
long i = 123456789L * 987654321L;
System.out.println(i);
}
}
运行结果:
121935631112635269
在计算机语言中我们通常会用到复杂的算法,可以使用多重进制。在整数类型中既没有小数,可以是正数,可以是负数,这个时候可以用到进制,通常我们使用的都是十进制。JAVA还用了两种表示形式表达,分别为八进制,十六进制。
//十进制:除了数字0,不能作为其他十进制开头
//八进制:必须用数字0开头,例如:070(十进制就是56)
//十六进制:必须用0X或者0x开头
int i = 55; //创建整型变量并赋值十进制
int j = 055; //创建整型变量并赋值八进制
int k = 0X55; //创建整型变量并赋值十六进制
System.out.println(i); //输出i的值
System.out.println(j); //以十进制的结果输出八进制
System.out.println(k); //以十进制的结果输出十六进制