java中的基本数据类型转换

1.java中的基本数据类型转换

java基本数据类型的转换是需要两个基本事项:

1.boolean型不进行类型转换。

2.Java中基本数据类型按精度从“低”到“高”排列顺序

    byte  short  char  int   long    float   double 

在上面两个基本事项之下,我们将java的基本数据类型转换分成两种形式:

1.1自动数据类型转换【隐式类型转换】---把精度低的数据值转换成精度高的数据值。这个转换过程系统自动完成,不需要手动干预,只需要完成赋值就好。

例如:
public  class  DataTypeSwitch{
    public  static  void  main(String args[]){
     //把精度低的数据值转换成精度高的数据值---自动数据类型转换【隐式类型转换】
     //系统自动完成,不需要手动干预。
     byte  byte_valeu=120; //byte  1个字节  
     int  int_value; //int  4个字节
     int_value=byte_valeu;
     System.out.println("int_value=="+int_value);

     int  int_val=1234;  // int  4个字节
     double  double_val=int_val;  //double 8个字节 
     System.out.println("double_val=="+double_val);
   }
}

1.2强制类型转换【显式类型转换】---把精度高的数据值转换成精度低的数据值。这个过程就需要我们自己手动编写代码来实现。

强制类型转换【显式类型转换】的基本格式:(低级别变量的类型名称)要转换的值【变量名称】

例如:
public  class  DataTypeSwitch_1{
    public  static  void  main(String args[]){
       //把精度高的数据值转换成精度低的数据值--强制类型转换【显式类型转换】
       //格式:(低级别变量的类型名称)要转换的值【变量名称】
       double  dou=12.5;  //8个字节 
       int  int_val;   // 4个字节
       int_val=(int)dou;  //强制类型转换【显式类型转换】
       System.out.println("int_val=="+int_val); //12

      float  f=3.14f;
      byte  b=(byte)f;
       System.out.println("b=="+ b); //3
   }

}

2.关于char与int之间的类型转换

 1. char类型转换成int类型,需要自动数据类型转换【隐式类型转换】。

 2. int类型转换成char类型,需要强制类型转换【显式类型转换】。

例如:
public  class  DataTypeSwitch_2{
    public  static  void  main(String args[]){
       //1. char---->int   自动数据类型转换【隐式类型转换】
         char  ch='家';
         int i=ch;
         System.out.println("i=="+i);  
      //2. int------>char    强制类型转换【显式类型转换】
      int  i_val=23478;
      char ch_val=(char)i_val;
      System.out.println("ch_val=="+ch_val);  
   }

}

3.表达式的数据类型的自动提升

1.所有的byte型、short型、char型的值被提升为int型。
2.如果一个操作数是long型,计算结果就是long型。
3.如果一个操作数是float型,计算结果就是float型。
4.如果一个操作数是double型,计算结果就是double型。
例如:
public  class  DataTypeSwitch_3{
    public  static  void  main(String args[]){
     //1.所有的byte型、short型、char型的值被提升为int型。
     byte  b_val=120; 
     short  sh_val=1000;
     char  ch_val='a';
     //byte提升int
     //short提升int
     //char提升int
     //int  val = b_val+sh_val-ch_val; 

     //2.如果一个操作数是long型,计算结果就是long型。
     long  l_val=100L;
     //long val=b_val+sh_val-ch_val+l_val;
    
     //3.如果一个操作数是float型,计算结果就是float型。
     float  f_val=100.45f;
     //float val=b_val+sh_val-ch_val+l_val+f_val;

     //4.如果一个操作数是double型,计算结果就是double型。
     double  dou=300.5;  
     double val=b_val+sh_val-ch_val+l_val+f_val+dou;
     System.out.println(val);
     
     //在一个表达式中如果有多个不同数据类型的数据,那么这个表达式的结果就是精度最高的数据类型的值。     
     //在java程序中出现的整数数字都是int型,出现的小数都是double型。
      byte  by_val=120;
      int value= by_val+1000;      
      System.out.println(value);

      int int_value=1234;
      double dou_val= int_value+168.5;
      System.out.println(dou_val);
   }
}
总结:在一个表达式中如果有多个不同数据类型的数据,那么这个表达式的结果的数据类型就是表达式中数据类型精度最高的数据类型决定。

猜你喜欢

转载自blog.csdn.net/guizhaiteng/article/details/79639222