100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java类型转换_Java类型转换

java类型转换_Java类型转换

时间:2022-12-13 04:22:11

相关推荐

java类型转换_Java类型转换

一、值类型与引用类型

值类型:

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

引用类型:

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

传递

值传递:基本数据类型的赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的备份,值传递后,实参传递给形参的值,形参发生改变不影响实参。

引用传递:引用传递传递的是地址,形参改变会改变实参变量的值。

二、自动类型转换

1、基本数据类型

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

布尔型和其它基本数据类型之间不能相互转换;

char可转换为int、long、float和double,其他类型不能转换为char;

其他六种类型从低到高的排序为:byte、short、int、long、float、double;

算术运算中,基本会先转换为高位数据类型,再参加运算,结果也是最高位的数据类型。

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*/

}

}

特殊情况:

如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char,类型不发生改变;

2、引用类型

基本类型与对应包装类可自动转换,这是自动装箱和拆箱的原理。

子类能直接转换为父类或接口类型: 子类就是父类。

Animal cat = new Cat();

父类转换为子类要强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常。

三、强制类型转换

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;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。