本文主要向大家介绍一下Java中的8种基本数据类型,以及数据类型之间的转换。希望对大家学习Java语言有所帮助。
一、数据类型的分类
(一)基本数据类型(8种)
注意:在Java中,所有数据类型都有默认值,定义之后没有赋值,就会有默认值。且默认值只存在于类变量中,方法中的局部变量不存在默认值。
二、基本数据类型的包装类
Java基本数据类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
三、数据类型之间的转化
(一)转换规则
1、小类型转为大类型(自动提升)
1.1小类型的变量值赋值给大类型时
如: long b = 20 ; // 字面量20是int类型 int类型直接提升为long类型
1.2小类型和大类型进行数学运算时,首先会将小类型提升为大类型而后进行数学运算
如:long b = 10 + 1L; // 10 + 1L是int类型+long类型,首先将 int 类型提升为 long 类型 ,然后再进行数学运算。
2、大类型转为小类型
强制类型转换,可能会丢失精度(数据溢出或者数据部分丢失)
注意:只有相同类型的数据类型之间可以转换(如,数值型之间的转换) boolean 类型不能与其他任何基本数据类型相互转换。
(二)int 类型与 byte 类型之间的转换
1、 byte 类型在存储时会转为 int类型
当把byte类型取值区间之内的正数赋值给byte时,可以直接赋值,但超出其取值范围时仍需要强转
注意:对于数值型和字符型来说,小于4字节的数据类型,在存储时会转为4字节类型
2、当把一个int 变量赋值给 byte 时,无论是否超出 byte 的取值范围都需要强转
CPU读写数据时,都是以4字节为单位进行读取和写入的,为了运算方便,就会将小于4字节的数据类型 自动 提升为int 类型保存
3、被final 修饰的变量,其数据值不能改,且其类型也不能提升。
(三) int 类型与 char 类型之间的相互转换
1、char 转为 int,自动提升,按照Unicode编码转换
char c = 'a' ; int b = c; System.out.println(b); //结果是97
2、int 转为 char,需要强转
(四)int 类型和String之间的相互转换
1、int 转为 String
int num = 10;
//方法1
String str1 = num + " ";//这里的+表拼接
//方法2
String str2 = String.valueOf(num);
2、String 转为 int
String str = "100";
int num = Integer.parseInt(str);