您的位置:首页 > 编程语言 > Java开发

java数据类型转换总结

2017-09-21 18:14 387 查看
数据转换一般跟类型的所占空间大小有关,八大基本数据类型所占大小:

byte:1个字节

short、char:2个字节

int、float:4个字节

long、double:8个字节

自动转换

是指不需要书写代码,由系统自动完成的类型转换。要求如下:

1、两种数据类型彼此兼容;如数值型与布尔型不兼容则无法转换

2、类型存储范围由小到大:byte→short(char)→int→long→float→double

例1:byte可以自动转换成int类型

byte a = 1;
int b = a;
虚拟机首先将byte类型a转换成int类型,再赋值给b


例2:表达式自动转换

byte a1 = 1;
byte a2 = 2;
byte a3 = a1 + a2;
这样写会报错,在表达式运算期间会自动提升至int类型再做运算,正确写法:
byte a1 = 1;
byte a2 = 2;
int a3 = a1 + a2;


例3:运算符赋值的自动转换

short a = 3;
int i = 5;
s += i;
System.out.println(s);
输出结果为:8
类推:+=、-=、*=、/=、%=都可以自动完成转换


例4:自动转换成字符串

String a = "aaa";
int b = 3;
System.out.println(a + b);
输出结果为:aaa3


手动转换

类型储存范围由大到小

结果会造成精度丢失

例:由short类型转换byte类型

short a = 853;  //853二进制为00000011 01010101(short为2字节16位)
byte b = (byte)a;      //用(数据类型)添加在属性前边实现强制转换
System.out.println(b);

输出结果为:85        //85二进制为01010101(byte为1字节8位)


由此可以表明:在转换期间16位的short转8位的byte类型,会丢失8位的数据;

其它类型依次类推
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 java javase 存储