类型之间转换问题:
1.同种数据类型之间是可以直接进行赋值操作
int a = 1 ; int b =a ; float x = 3.4; float y = x;
2.数据类型不同的空间之间的赋值--->转换问题
同种大数据类型之间才能转换
基本类型 ------ 基本类型之间 可以直接转换(自动/强制)
引用类型 ------ 引用类型之间 可以直接转换(自动/强制--上转型/下转型)
基本类型 ------ 引用类型之间 不可以直接转换(间接 -- 包装类/封装类)
3.在保证大数据类型一致的前提下
基本类型 ----- 基本类型
byte a = 1; int b = a //可以直接转换
int a = 1; byte b = (byte)a //强制类型转换,将int类型转换为byte类型
float a = 3.4F; double b = a //可以直接转换
double a = 3.4; float b = (double)a //强制类型转换,将int类型转换为byte类型
注:强制转换之前的数值过大,强制转换编译可以,但是执行后的值肯定不是之前的大值
int a = 1000; byte b = (byte)a 强制保留后面8个bit位的值
00000000 00000000 00000011 11101000 //计算机中的1000
11101000 //强制转换后的数 -24
小数类型不同
整型 ----- 浮点
两个比较的是精确程度,浮点型精确程度更高可以直接存放整数,反之则要强制转换
任何一个浮点型都可以存放一个整型
int a = 1; float b = a // 1.0
float a = 1.0F int b = (int)a // 1
整型 ----- 字符型
每一个字符都对应一个Unicode码 a -- 97
char x = 'a'; int b = x; // 97
int x = 97; char b = (char)x; // 报错需要强制转换