Java类型转化

java类型转化

  1. 类型转换主要在 赋值、方法调用、算术运算 三种情况下发生。  
     a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:   
    (1)布尔型和其它基本数据类型之间不能相互转换;
      (2)byte型可以转换为short、int、、long、float和double;
      (3)short可转换为int、long、float和double;
      (4)char可转换为int、long、float和double;   
    (5)int可转换为long、float和double;
      (6)long可转换为float和double;   
    (7)float可转换为double;
    (8)String类型可转化为char类型;
       另外还有是直接数的赋值:先通过直接数判断其类型,然后基本原则和上面谈到的赋值原则基本一致;只是直接数是整数时特殊一点,当在可表示范围内时,可以直接赋值给 byte short char三种类型;

b、算术运算 中的类型转换:1 基本就是先转换为高位数据类型,
再参加运算,结果也是最高位的数据类型;2 byte short char运算会转换为Int;
(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。
(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。
特殊:
(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。
(2)
当运算符为自动递增运算符(++)或自动递减运算符(–)时,如果操作数为byte,short或char类型不发生改变

2.隐式类型转化

public class Class1 {
    public static void main(String[] args) {
        //chapter02l
                byte byte1=123;
                short short1=0,short2 =1234;
                short1=byte1;
                int int1,int2,int3=Integer. MAX_VALUE;
                int1= byte1;
                int2=short2;
                long long1, long2, long3, long4 =Long . MAX_VALUE;
                long1= byte1;
                long2=short2;
                long3=int3;
                float f1,f2,f3,f4,f5=12.345f;
                f1=byte1;
                f2=short2;
                f3=int3;
                f4=long4;
                double d1,d2,d3,d4,d5;
                d1=byte1;
                d2=short2;
                d3=int3;
                d4=long4;
                d5=f5;
                char char1,char11='A';
              //char char1=short1;
               //short short11=char11;
                int int11=char11;
                long long11=char11;
                float f11=char11;
                double d11=char11;
                System. out.println(byte1);
                System. out. println( short1+" "+ short2);
                System. out. println ( int1+" "+ int2+" "+ int3);
                System. out. println( long1+" "+ long2+" "+long3+" "+long4);
                System. out. println(d1+" "+d2+" "+d3+" "+d4+" "+d5);
                System. out. println(f1+" "+f2+" "+f3+" "+f4+" "+f5);
                System. out. println(char11+" "+int11+" "+long11+" "+f11+" "+d11);
            }
        }

运行结果:Java类型转化_第1张图片
3.强制类型转化(显示类型转化):

public class Class1 {
    public static void main(String[] args){
        double d1=225;
        double d2=Math.sqrt(d1) ;
        int i=(int)d2;
        short s1=65;
        char c1=(char)s1;
        System .out .println(d1+" "+d2+" "+i+" "+s1+" "+c1) ;
        float f1=129.45f;
        float  f2=(float )129.45;
        byte b1=(byte)f1;
        byte b2=(byte)f2;
        System .out .println(f1+" "+f2+" "+b1+" "+b2) ;
    }
}

运行结果:
Java类型转化_第2张图片

你可能感兴趣的:(Java类型转化)