Java有两大数据类型,一是基本数据类型;二是引用类型。
其中,基本数据类型中又分为六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔类型。
1.byte,默认值为0; 占1字节; 8位; 封装类为Byte
2.short,默认值为0; 占2字节; 16位; 封装类为Short
3.int,默认值为0; 占4字节; 32位; 封装类为Integer
4.long,默认值为0L; 占8节; 64位; 封装类为Long
5.float,默认值为0.0f; 占4字节, 32位; 封装类为Float
6.double,默认值为0.0d; 占8字节; 64位; 封装类为Double
7.boolean,默认值为false; 占1字节; 8位; 封装类为Boolean
8.char,默认值为 \u0000; 占2字节; 16位; 封装类为Character
各种用法如下:
byte a = 12; byte b = (byte) 129; byte c = (byte) 257;
若输出a,则为12;若输出b,则为-127,;若输出c,则为1;
byte的取值范围在-128到127,以二进制补码表示的整数;
short a=12; short b=(short) 32768; short c=(short) -32769;
若输出a,则为12;若输出b,则为-32768,;若输出c,则为32767;
short的取值范围在-32768到32767,一个short变量是int型变量所占空间的二分之一;
int a= 1;
若输出a,则为1;short的取值范围在2,147,483,648到 2,147,483,647,一般整形变量默认为int类型;
long a = 1L;
若输出a,则为1;long的取值范围在9,223,372,036,854,775,808到 9,223,372,036,854,775,807;
float a =1.2f;
若输出a,则为1.2;float 在储存大型浮点数组的时候可节省内存空间,同时,浮点数不能用来表示精确的值,如货币;
6.double a =1.2d;
若输出a,则为1.2;浮点数的默认类型为double类型,同时,浮点数不能用来表示精确的值,如货币;
7.boolean a = true;
若输出a,则为true;只有两个取值:true 和 false。它的默认值为false;
8.char a =‘猪’;
若输出a,则为“猪”,此时只能输入一个中文,int只占两个字节,另外的,char 可以储存任意字符;
包装类提供了一系列的适用方法,集合是不允许存放基本数据类型的,存放数字时要用包装类型;
String a ="1223";
int p =Integer.parseInt(a);
int v =Integer.valueOf(a);
System.out.println(a);
同时还涉及到了进制转换
十进制转二进制
System.out.println(Integer.toBinaryString(500));
输出结果为:111110100
十进制转八进制
System.out.println(Integer.toOctalString(500));
输出结果为:764
…
类型转换:
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为 同一类型,然后进行运算
自动转换时有规律的,小的类型自动转换为大的类型;整数类型可以自动转换为浮点类型,但可能会产生舍入误差,字符也可以自动提升为整数
类型转换包含着强制类型转换,强制类型转换可能会导致溢出或损失精度,要注意的是,浮点数是通过舍弃小数得到的,而不是四舍五入。
例:
当a的值大于128时,则会出现错误,因为byte的取值范围是-128到127;此时需要用到强制类型转换才不会出现错误,如下:
此时输出的结果为-127
布尔值转换为字符串:
boolean b = true;
String s = String.valueOf( b );