强制转换

按字节大小从低到高→ byte,short,char→int→long→float→double 不同类型的数据先转换为同一类型,再进行计算

强制转换 高→低

public class Annotation {
   public static void main(String[] args) {
       int name1 = 128;
       byte name2 = (byte)name1;//内存溢出,byte最大127,最小-128
       System.out.println(name1);
       System.out.println((int)name2);
       //强制转换 (类型)变量名
  }
}

运行结果:

128
-128

 

自动转换 低→高

public class Annotation {
   public static void main(String[] args) {
       int name1 = 128;
       double name2 = name1;
       System.out.println(name1);
       System.out.println((int)name2);
  }
}

运行结果:

128
128

注意

  1. 不能对布尔值进行转换

  2. 转换的时候可能会出现内存溢出,或者精度问题

public class Annotation {
   public static void main(String[] args) {
       double num1 = -1.33;
       double num2 = 12.33;
       System.out.println((int)num1);
       System.out.println((int)num2);
  }
}

输出结果:

-1
12
  1. jdk7新特性:数字之间可以用下滑线分割,用较大的数就更方便了

public class Annotation {
   public static void main(String[] args) {
       int num1 = 1_0000_0000_0;
       System.out.println((int)num1);
  }
}

输出结果:

1000000000
  1. 使用long类型,尽量用L不要用l,l跟1就太像了