Java支持的数据类型和自动拆装箱原理

Java支持的数据类型和自动拆装箱原理

Java支持的数据类型包括两种:
一种是基本数据类型:包含byte,char,short,boolean,int,long,float,double;
另一种是引用类型:如String等,其实是对象的引用,JVM中虚拟栈中存的是对象的地址,创建的对象实质在堆中,通过地址来找到堆中的对象的过程,即为引用类型。

基本数据类型
Java中一共有八种基本数据类型,他们分别是:byte、short、int、long、float、double、char、boolean
在这里插入图片描述
在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的。如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的。同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。

double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

自动类型转换
1)两种类型是彼此兼容的
2)转换后的目标类型占的空间范围一定要大于被转化的源类型
由低字节向高字节自动转换(黑线表示无数据丢失的自动数据转换,红线表示转换中可能发生精度丢失)
在这里插入图片描述
强制数据转换
将容纳更多信息的数据类型转换成一个容量更小的数据类型,可能存在精度损失的风险,编译器要求程序员进行强制类型转换。

强制转换过程中可能发生数据溢出,必须警惕。

int a=(int)3.14;

数据类型自动提升
如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
否则,如果其中一个操作数是long类型,另一个会转换为long类型。
否则,两个操作数都转换为int类型。

装箱和拆箱

自动装箱就是Java编译器在基本数据类型和对应的对象包装类型间的转化,即int转化为Integer,自动拆箱是Integer调用其方法将其转化为int的过程

装箱:将基本类型用它们对应的引用类型包装起来
拆箱:将包装类型转换为基本数据类型

装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值