在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:
,
代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0
这种转换称为自动类型转换。
当然自动类型转换是需要满足特定的条件的:
1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型
2. 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了
自动类型转换规则:
强制类型转换:
代码示例:
1 package com.jredu.ch02; 2 3 public class Ch04 { 4 5 public static void main(String[]args){ 6 //自动类型转换 7 //基本数据的自动类型转换只有7种数据类型,除了boolean 8 //基本原则:低级别可以直接转高级别 9 // char 10 //byte->short->int->long->float->double 11 //运算时的自动转换条件:1、两种数据类型要兼容,2、目标类型大于原类型 12 int a=10; 13 double b=1.1; 14 b=b+a; 15 a=a+(int)b; 16 System.out.println(b);//b=11.1 17 System.out.println(a);//a=10+11=21 18 19 } 20 21 }
1 package com.jredu.ch02; 2 3 public class Ch05 { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 //强制类型转换 8 //高级别转低级别时,必须要进行强转 9 //是否强制转换取决于数据类型级别的高低,不取决于数据的实际值。 10 int a=330; 11 short b=(short)a; 12 short c=350;//直接自变量赋值 ,不需要转换类型 13 14 int e=(int)-1.1; 15 System.out.print(e); //e=-1 16 17 18 } 19 20 }