Java类型转换

277 阅读2分钟

强类型语言与弱类型语言

  • 强类型语言:强类型语言也称为强类型定义语言。要求变量的使用要严格符合定义,所有变量都必须先定义后使用。Java、.Net和C++等一些语言都是强制类型定义的,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

  • 弱类型语言:弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb 、PHP、javascript等语言。

  • 区别:不论是强类型语言还是弱类型语言,判别的根本是是否会隐性的进行语言类型转变。强类型语言在速度上略逊于弱类型语言,但是强类型定义语言带来的严谨性又能避免不必要的错误。

  • 由于Java是强类型语言,所以进行某些运算的时候,需要用到类型转换。

不同数据类型之间的转换

低--------------------------------------------------高
byteshortchar,->int->long->float->double
  • 运算中,不同类型的数据线转化为同一类型,然后进行运算。 强制转换: 由高到低 ; 格式:(类型)变量名;

自动转换: 由低到高

package Demo;

public class Demo2 {
    public static void main(String[] args) {
        int i = 128;
        byte b=i;
        //byte b = (byte) i;
        double j = 12.8;
        int a = (int) j;

        System.out.println(i);
        System.out.println(b);
        System.out.println("--------------------------------");

        System.out.println(j);
        System.out.println(a);


    }
}

运算结果:

  • 思考为什么b的值为负的128,以及a的值为12.8。

注意点: 1不能把布尔值进行转换

2不能把对象类型转换为不相干的类型

3再把高容量转换到低容量时,要强制转换

4转换的时候可能存在内存溢出或者精度问题