java笔记4-类型转换
学习本节之前,可以先复习下笔记2的内容,搞清楚8种数据类型的关系和所占的空间
基本类型和基本类型之间可以直接转换(自动 强制)
引用类型和引用类型之间可以直接转换(自动 强制)
基本类型和引用类型之间不可以直接转换 可以通过包装类这个桥梁进行转换 今天先介绍下基本数据类型之间的转换
基本数据类型转换
转换分为自动转换和强制转换
1、同种数据类型之间可以直接进行赋值操作
int a = 1; int b = a; //这行代码的含义是把a变量空间里面的值 赋值给b
2、小数据类型相同的情况
小数据类型相同的情况 比较空间的大小,空间大的可以直接接受小数据类型的值
byte a = 1; int b = a; //b的空间大,可以把a的值直接给b
int a = 1; byte b = (byte)a; //b的空间小,接收a的值的时候需要强制类型转换
int a = 1000; byte b = (byte)a; //如果a的值超出了b类型的范围,不会报错,但是b的值会发生改变-24
3、小数据类型不同的情况
小数据类型相同的情况,并不是看空间大小,而是看精确程度,float的类型的精确程度更高,所以long类型的可以自动转换
int a = 1; float b = a; //int类型和float类型都是32bit b=1.0 long c = 1; float d = c; //long类型是64比特位,可以直接转换 d=1.0
浮点型转换成整型的时候,float类型转换成整型的时候,需要强制类型转换
float a =1.9f; int b = (int) a; //b=1
整型---字符型 字符型可以自动转换成整型(可以查看Unicode码),整型需要强制转换成字符型
char a = '我'; int b = a; //b=25105 char c = (char)b; //c='我'
布尔类型不能转换 java中true和1相互转换