Java中基本数据类型的转换


众所周知,Java中有8种基本数据类型。那么这8种基本数据类型分别是什么呢?它们之间又存在着什么样的转换关系呢?

 

一、Java中的基本数据类型


Java中共有8种基本数据类型,又分为数值型、字符型、布尔型三大类。

基本数据类型

大小

需要注意的地方

数值型

整数类型

byte

1字节 = 8 bit

范围:-128 ~ 127

short

2字节

 

int

4字节

通常定义整型变量使用 int 型;整型常量默认为 int 型

long

8字节

声明 long 型变量,须以 “ L ” 或 “ l ” 结尾,否则为 int 型

浮点类型

float

4字节

声明 float 型变量,须以 “ F ” 或 “ f ” 结尾,否则为 double 型;float 型表示数值的范围比 long 还大

double

8字节

通常定义浮点型变量使用 double 型;浮点型常量默认为 double 型

字符型

char

1字符 = 2字节

通常定义 char 型变量使用一对 ' ' ,内部只能写一个字符

布尔型

boolean

ture / false

通常在条件判断、循环结构中使用,只能取两个值之一

 

二、基本数据类型之间的转换


Java中基本数据类型之间的转换分为两类:自动类型提升和强制类型转换。由于布尔型的特殊性,这里讨论只是其它7种基本数据类型变量间的运算,不包含boolean类型的。

 

(一)自动类型提升

自动类型提升的规则与基本数据类型的容量大小有关,当容量小的数据类型与容量大的数据类型的变量做运算时,运算结果就自动提升为容量大的数据类型。此时的容量大小指的是,表示数值的范围的大和小。例如 float 容量要大于 long 的容量。

例:short + int → int,int + long → long,long + float → float,float + double → double

而其中特殊的是:当byte , char , short三种类型的变量做运算时,结果为int型。

例:byte + byte → int,byte + char → int

因此可以总结出自动类型提升从小到大的规律:byte,char,short → int → long → float → double

 

(二)强制类型转换

强制类型转换是自动类型提升运算的逆运算。强制类型转换的实现需要使用强转符:()

例:

long l1 = 123; //注意:这里l1为int型,当其超出int的数值范围时报错。正确书写形式应为123L。
short s2 = (short)l1;
System.out.println(s2); //输出为123

需要注意的是,只有当定义的变量数值处于容量小的数据类型的容量中时,才可以将变量从容量大的数据类型强转为容量小的数据类型。而当有浮点型参与强制类型转换时,则容易引起精度损失。

例:

double d1 = 12.9;
int i1 = (int)d1; //截断操作,结果只保留小数点前的数字,而非四舍五入。
System.out.println(i1); //输出为12

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值