java基本数据类型及相互间的转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基本数据类型及相互间的转换相关的知识,希望对你有一定的参考价值。

1.首先复习一下java的基本数据类型,见下图

技术分享

2.比较他们的字节数

备注:1字节(Byte)=8位(Bit)

技术分享

3.转换中的知识点

java中整数类型默认的int类型;小数类型默认的double;

char 可以当做一中特殊的整数类型;

int无法转换为boolean;

小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;

boolean 类型不能转换成任何其它数据类型;

 

byte b2 = 120;
没报错的原因:
//编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围
//如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过

float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分;

float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换;

long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换;

double d2 = 10.9d;
int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失;

 

char c1 = ‘a‘;
int i3 = c1; //自动转换

int i4 = 100;
//char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失;

4.四则运算中

/*
1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
2、否则,如果有一个操作数是float,另一个就会转化为float;
3、否则,如果有一个操作数是long,另一个就会转换为long;
4、否则,两个操作数都将转换为int类型。
*/

 

//面试陷阱
byte b1 = 10;
byte b2 = 11;
//错误: 不兼容的类型: 从int转换到byte可能会有损失
//否则,两个操作数都将转换为int类型。
//byte b3 = b1 + b2 //错误
byte b3 = (byte)(b1 + b2); //正确

 

//面试陷阱2:
short s1 = 1;
s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失

short s2 = 1;
s2 += 1; // 等同于short b3 = (short)(s2 + (short)1); //正确

5.最后是从小到大顺序图一张

技术分享

 

以上是关于java基本数据类型及相互间的转换的主要内容,如果未能解决你的问题,请参考以下文章

Java数据类型中StringIntegerint相互间的转换

Java数据类型中StringIntegerint相互间的转换

java-基本数据类型间的相互转化

Java 语法篇Java 变量八种基本数据类型及转换详解

ArrayList和数组间的相互转换

java基础---------基本数据类型之间的转换基本数据类型与String间的转换