java中不同类型之间的数据可以互相转换,但是要满足一定的规则
规则如下:小到大自动转换,大到小强制转换
8位 | 16位 | 32位 | 64位 |
byte | short、char | int、float | long、double |
byte->short(char)->int->long->float->double 由小到大可以自动转换
short和char虽然都是16位精度,两者转换也需强制转换
char类型只能存放一个字符,一个字符占两个字节,java中一个汉字一个字母一个数字都算两个字节
而强制转换举个例子加深记忆和理解
int a = 125;
byte b = a;//这样会报错 得改成byte b = (byte)a,这就是强制转换的格式
但是如果int a = 128呢?byte类型最大范围是127,数值溢出类型强转是可以转换的,但是转换后的值就不负责了,就像这个a=128,强转后会变成 -128,如果a = 129,就b = -127,相当于从最小范围开始数,溢出多少就数多少个。
常见的还有String与int互相转换经常遇到
String-->int
1.int a = Integer.parseInt(String);
2.int a = Integer.valueOf(String).intValue();
int-->String
1.String a = ""+int;
2.String a = String.valueOf(int);
3.String a = Integer.toString(int);