疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

基本数据类型转换(1)—[疯狂java讲义]


 

基本类型的类型转换
        在Java程序中,不同基本类型的值经常需要在不同类型之间进行转换。Java语言所提供的7个数值型之间可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。
有动类型转换
        如果系统支持把某个基本类型的值直接赋给另一种基本类型的变量,则这种方式被称为自动类型转换。当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换。
       Java里所有数值型变量之间可以进行类型转换,应该没有任何问题。表数范围小的可以向表数范围大的进行自动类型转换,就如有两瓶水,当把小瓶里水倒入大瓶中时。Java支持自动类型转换的类型如图3.9所示:
char
              byte→short→int→long→float→double
图3.9自动类型转化图
        图3.9中所示的箭头左边的数值型可以自动类型转换为箭头右边的数值型。下面程序示范了自动类型转换的示例。
程序清单:codes/03/3-5/AutoConversion.java
public class AutoConversion
{
public static void main(String[] args)
{
int a=6;
//int可以自动转换为float类型
float f=a;
//下面将输出6.0
System.out.println(f);
//定义一个byte类型的整数变量
byte=9;
//下面代码将出场,byte型不能自动类型转换为char型
//char c=b;
//下面是byte型变量可以自动类型转换为double型
double d=b;
//下面将输出9.0
System.out.println(d);
}
}
        不仅如此,当把任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型,虽然字符串类型不再是基本类型,而是引用类型。因此,如果希望把基本类型的值转换为对应的字符串,可以把基本类型的粗和一个空字符串进行连接。
        看如下代码:
程序清单:codes/03/3-5/PrimitiveAndString.java
public class PrimitiveAndString
{
public static void main(String[] args)
{
//下面代码是错的,因为5是一个整数,不能直接赋给一个字符串
//String str1=5;
//一个基本类型值和字符串进行连接运算时,基本类型值自动转换为字符串
String str2=3.5f+””;
//下面输出3.5
System.out.prinln(str2);
//下面语句输出7Hello!
System.out.println(3+4+”Hello!”);
//下面语句输出Hello!34,因为Hello!+3会把3当初字符串处理,
//下面再把4当初字符串处理
System.out.println(“Hello!”+3+4);
}
}
        上面程序中有一个3 + 4 + "Hello!"表达式,这个表达式先执行3+4运算,这是执行两个整数之间的加法,得到7,然后进行7 + "Hello!",此时会把7当成字符串进行处理,从而得到7Hello!。反之,对于,”Hello!”+3+4表达式,先进行,”Hello!”+3运算,得到一个Hello!3的字符串,再和4进行连接运算,4也被转换成字符串进行处理。(未完.摘自.[疯狂java讲义].李刚)