数据类型转换:
原因:java程序中要求参与运算的数据的类型必须一致,如果数据类型不一致,则会发生数据类型的转换;
分类:自动类型转换和强制类型转换
自动转换:将取值范围小的类型 自动提升为 取值范围大的类型;
转换规则, byte--->short--->char--->int--->long--->float--->double
强制类型个转换:将取值范围大的类型 强制转换成 取值范围小的类型;
ps : 自动类型转换是java自动执行的,而强制类型转换需我们自己手动完成: 数据类型 变量名 = (数据类型) 被转数据值;
浮点转成整数,直接去掉小数点,可能造成数据精度损失; int 强制转成 short 砍掉 2个字节,可能造成数据丢失;
运算符:
赋值运算符 : +=,-=,*=,/=,%= 可以自动进行强制类型转换 例:
package yanzheng;
public class Test {
public static void main(String[] args) {
byte b=3;
b=b+3; //编译报错,这种写法需要手写进行强制类型转换 b=b+(int)3 ;
b+=3; //这种写法会自动进行强制类型转换
System.out.println("b:"+b);
}
}
常量和变量的运算:
扫描二维码关注公众号,回复:
2289287 查看本文章
package yanzheng;
public class Test {
public static void main(String[] args) {
byte b1= 1+2; /*按理来说,1和2为int类型,相加结果也是int类型,
赋给b的时候应该进行强制类型转换,但是编译器没报错,
原因是:编译器会进行检查,如果 右边的计算结果没有超过
左边的取值范围,则自动转换为 byte
*/
byte b2=4+3;
byte b =b1+b2; /* 编译会报错,因为 b1,b2 参与运算时,会提升为 int ,但是
由于 b1,b2 为变量,相加的结果是 变化的,编译器不知道结果
是否超过 左边的取值范围,因此会报错。
*/
}
}
方法:
其实是一种封装的体现,将一个功能抽取出来,单独定义在一个大括号内,形成一个单独的功能,当我们需要这个功能的时候,就可以去调用,即实现了代码的复用性,也解决了代码冗余的现象。
ps : 方法的返回值只能是一个, return 语句的作用是:1,用来返回方法的返回值, 2. 结束该方法。