Java类型转换

2019-02-18  本文已影响0人  夜阑w

一、值类型与引用类型

值类型:

在Java中,值类型表示的是这种数据类型的值代表数据本身。八种基本数据类型就是值类型,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面。

引用类型:

引用类型是通过class来定义的类型,除了八种数据类型之外的所有类型都是引用类型。引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值是存储在内存堆上的。

传递

二、自动类型转换

1、基本数据类型

从低位类型到高位类型可以自动转换,从高位类型到低位类型需要强制类型转换,另外,目标类型需能与源类型兼容。

public class Test {
    public static void main(String[] args) {
        int price = 3;
        double finalPrice = price;
        System.out.println(finalPrice);
        System.out.println(price+finalPrice);
        /*输出结果:
        3.0
        6.0*/
    }
}

特殊情况:

2、引用类型

Animal cat = new Cat();

三、强制类型转换

1、基本数据类型

语法:( 数据类型 ) 数值

public class Test {
    public static void main(String[] args) {
        double finalPrice = 3.25;
        int price = (int)finalPrice;
        System.out.println(price);
        //输出结果:3
        //损失了部分数据
    }
}

2、引用类型

语法与上述相同,需要注意若转换后在运行时实际不是对应的对象,会抛出ClassCastException运行时异常。

Animal animal = new Cat();
Cat cat = (Cat)animal;
上一篇 下一篇

猜你喜欢

热点阅读