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

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

2.比较他们的字节数面试

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

3.转换中的知识点spa

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

*char 能够当作一中特殊的整数类型;对象

*int没法转换为boolean;blog

*小数类型转为整数类型,小数可能被舍弃,全部出现精度损失,因此须要强制转换;it

*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.四则运算中table

/*
一、若是两个操做数中有一个是double类型,另外一个就会转换为double类型;
二、不然,若是有一个操做数是float,另外一个就会转化为float;
三、不然,若是有一个操做数是long,另外一个就会转换为long;
四、不然,两个操做数都将转换为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 s2 = (short)(s2 + (short)1); //正确

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

6.面试:什么是不可变对象(immutable object)?

解析:不可变对象指对象一旦被建立,状态就不能再改变。任何修改都会建立一个新的对象,如String、Integer及其它包装类。

7.隐式类型转换

当将占位数的类型赋值给占位数的类型时,java自动使用隐式类型转换(如int型转为long型)

8.显式类型转换

当把在级别的变量的值赋给级别变量时,必须使用显式类型转换运算(如double型转为float型)

欢迎关注个人微信公众号:安卓圈

相关文章
相关标签/搜索