Java语言是一门跨平台的语言,可以做到“一份代码,到处运行”。但是在前面学习C语言时,我们知道相同的数据类型在不同的平台上是有所区别的。而Java能够做到跨平台是因为JVM的存在,所以Java中的数据类型在所有平台都是统一的。那么Java的数据类型又是怎样的呢?
1.byte型
默认值:0
存储大小:1个字节
对应的包装类:java.lang.Byte
数据范围:-128~127(-2^7~2^7-1)
2.short型
默认值:0
存储大小:2个字节
对应的包装类:java.lang.Short
数据范围:-32768~32167(-2^15~2^15-1)
3.int型
默认值:0
存储大小:4个字节
对应的包装类:java.lang.Integer
数据范围:-2^31~2^31-1
4.long型
默认值:0
存储大小:8个字节
对应的包装类:java.lang.Long
数据范围:--2^63~2^63-1
5.float型
默认值:0.0F或0.0f
存储大小:4个字节
对应的包装类:java.lang.Float
数据范围:32位IEEE 754单精度范围
6.double型
默认值:0.0或0.0D或0.0d
存储大小:8个字节
对应的包装类:java.lang.Double
数据范围:64位IEEE 754双精度范围
7.char型
默认值:'\u0000'
存储大小:2个字节
对应的包装类:java.lang.Character
数据范围:0~2^16-1
8.boolean型
默认值:flase
存储大小:1个比特位
对应的包装类:java.lang.Boolean
数据范围:true/false
9.引用数据类型
引用数据类型默认值为null,其它方面是没有定性的。因为用户自己创建一个类也是引用数据类型。
Java的类型就是以上9种,可以分为基本数据类型和引用数据类型。基本数据类型有可以分为数值型、字符型、布尔型。数值型数据为:1.整形数据:byte,short,int,long。2.浮点型数据:float,double;字符型数据为:char;布尔型数据:boolean。
!!注意:整形数据的差异更多在于它们的数据范围,所以实际上我们在JVM中输入的整形数据默认为int型数据。如果要区分整形数据,要在数字的后面加上标识。浮点型数据同理,一个浮点型数据默认是double型,要区分的话要加上标识。
演示代码如下:
public class DataType {
private static byte b;//对象属性未初始化,为默认值
private static short s;
private static int i;
private static long l;
private static float f;
private static double d;
private static char c;
private static boolean bl;
public static void main(String[] args) {
System.out.println("byte型数据的默认值:"+b);
System.out.println("byte型数据的数据范围:"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
System.out.println("short型数据的默认值:"+s);
System.out.println("short型数据的数据范围:"+Short.MIN_VALUE+"~"+Short.MAX_VALUE);
System.out.println("int型数据的默认值:"+i);
System.out.println("int型数据的数据范围:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
System.out.println("long型数据的默认值:"+l);
System.out.println("long型数据的数据范围:"+Long.MIN_VALUE+"~"+Long.MIN_VALUE);
System.out.println("float型数据的默认值:"+f);
System.out.println("float型数据的数据范围:"+Float.MIN_VALUE+"~"+Float.MAX_VALUE);
System.out.println("double型数据的默认值:"+d);
System.out.println("double型数据的数据范围:"+Double.MIN_VALUE+"~"+Double.MAX_VALUE);
System.out.println("char型数据的默认值:"+c);
System.out.println("char型数据的数据范围:"+Character.MIN_VALUE+"~"+Character.MAX_VALUE);
System.out.println("boolean型数据的默认值:"+bl);
}
}