一、基本数据类型
1、byte 字节数据类型,Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0;
2、short 短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0;
3、int 整形,用于存储整数,在内在中占32位,即4个字节,取值范围 -2147483648~2147483647,默认值0(默认);
4、long 长整形,在内存中占64位,即8个字节,默认值0L(后面要加L,建议大写);
5、float 单精度浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字 (与double的区别在于float类型有效小数点只有6~7位),默认值0(后面要加f,小写);
6、double 双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0(默认);
7、boolean 布尔数据类型,占1个字节,用于判断真或假(仅有两个值true、false),默认值false;
8、char 字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空。
二、引用数据类型
引用类型指向一个对象,不是原始值,指向对象的变量是引用变量。
在java里面除去基本数据类型的其他类型都是引用类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
引用数据类型一般分为以下三种:
(1)数组array
(2)类类型class
(3)接口interface
三、包装数据类型
String字符串,用双引号引起来的一串字符,“123456abcd”
四、定义变量的语法
声明 数据类型 变量名 = 值;
五、数据类型的转换
1、隐式转换
隐式转换也叫作自动类型转换, 由系统自动完成。
从存储范围小的类型到存储范围大的类型: byte ->short(char)->int->long->float->double
public class Demo1 {
public static void main(String[] args) {
//int类型和long类型的隐式转换
int a = 10;
long b = a;
//float类型和double类型的隐式转换
float f = 10.1F;
double d = f;
}
}
2、显示转换
(1)当我们需要将数值范围较大的数值类型赋给数值范围较小的数值类型变量时, 由于此时可能会丢失精度,因此,需要人为进行转换,称为强制类型转换。
(2)示例
public class Demo1 {
public static void main(String[] args) {
//int类型和long类型的显示转换
long a = 10;
int b = (int)a;
//float类型和double类型的显示转换
double f = 10.1;
float d = (double)f;
}
}
3、其他转换
(1)基本类型与对应包装类可自动转换
Integer c1 = new Integer(1);
Integer c2 = 2;
int cc = new Integer(3);
(2)两个引用类型间转换
- 子类能直接转换为父类或接口类型;
- 父类转换为子类要强制类型转换,且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常;
(3)int型和String型之间的转换
String类型转换成int型
int i = Integer.parseInt("123");
int ii = Integer.valueOf("123");
Int类型转String型
String s1 = String.valueOf(123);
String s2 = Integer.toString(i);
String s3 = "" + i;