今天复习了一下java的基础,重新回顾一下java中的类型转换。
一、自动类型转换
java中的数值类型都能进行自动类型的转换,表示范围小的能自动转化为表示范围大的。
总的来说如下图:
还有一种自动转化就是任何基本类型在和字符串进行连接操作时,基本类型的值都会自动转化为字符串类型。
例如:
String c=1+"2";
数值1会自动转化为字符串“1”然后与字符串"2"做连接。
但是要注意:
String c1=3+4+"hello";// c1=7hello string c3="hello"+3+4;//c2=hello34
连接运算符“+”从右往左依次计算,c1中,3先加4,变为7,7再与“hello”连接。c3中,“hello”先与3连接成“hello3”再与4连接,成“hello34”
二、强制类型转换
基本语法就是(type)value,强制将value转换为type类型。
主要是因为value的类型表示的数据范围大于type类型,强制转化会引起数据丢失。
也还有一种强制转化就是string转化为基本数据类型。通常情况下我们不能将string类型转化为基本数据类型。但是可以通过基本类型的包装类实现
例如:int c=Integer.parseInt("34")
三、表达式类型的自动升级
整个算数表达式数据类型会自动提升到与表达式最高等级操作数相同的等级。以前写代码时容易犯的一个错误:
short val=5; val=val+2;
val=val+2的表达式运算等级会自动提升大与2相同的int,将int 赋值给short就会报错