包装类型与基本类型的区别

Java 中有 8 中基本类型的数据,分别为:

6 种数字类型:byte、short、int、long,此四种为整数数字类型;float、double,此两种为浮点型数字类型;

1 种布尔类型:boolean,即 true 或 false;

1 种字符类型:char。

这 8 种基本类型对应的包装类型分别为:Byte、Short、Integer、Long、Float、Double、Boolean、Character。

基本类型包装类型字节位数默认值范围
byteByte180-128~127
shortShort2160-32768~32767
intInteger4320-2147483648~2147483647
longLong8640L-9223372036854775808 ~ 9223372036854775807
floatFloat4320F1.4E-45 ~ 3.4028235E38
doubleDouble8640D4.9E-324 ~ 1.7976931348623157E308
booleanBoolean18falsefalse、true
charCharacter1'u0000'0~65535

对于 boolean 类型,官方文档并未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。另外,Java 的每种基本类型所占存储空间的大小不会像其他大多数语言那样随机器硬件架构的变化而变化。这种所占存储空间大小的不变性是 Java 程序比用其他大多数语言编写的程序更具可移植性的原因之一。

另外,Java 中使用 long、float、double 类型的数据时最好在数值后面加上标识 L、F、D 或者 l(小写 L)、f、d,否则会将数值作为整型数据解析。还有 char 类型使用时使用单引号标记,使用双引号标记起来的是字符串。

基本类型和包装类型的区别

(1)对于成员变量来说,如果使用包装类型,不赋值的话默认值为 null,使用基本类型的话是有默认值的

(2)包装类型可用于泛型,而基本类型不可以。

(3)基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量(未被 static 修饰 )存放在 Java 虚拟机的堆中。包装类型属于对象类型,几乎所有对象实例都存在于堆中。

(4)相比于对象类型, 基本数据类型占用的空间非常小。

基本数据类型存放在栈中是一个常见的误区。基本数据类型的成员变量如果没有被 static 修饰的话,就存放在堆中。一般来说不建议使用 static 修饰基本类型的成员变量,应该要使用基本数据类型对应的包装类型。

本文参考自:Java基础常见知识&面试题总结(上) | JavaGuide

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答这个问题。 在 Java 中,基本数据类型包装类之间可以相互转换。常见的基本数据类型有 int、double、float、boolean、byte、short 和 long,而对应的包装类则是 Integer、Double、Float、Boolean、Byte、Short 和 Long。 将基本数据类型转换为包装类可以使用自动装箱的方式,例如: ``` int num = 10; Integer integer = num; // 自动装箱 ``` 将包装类转换为基本数据类型可以使用自动拆箱的方式,例如: ``` Integer integer = 10; int num = integer; // 自动拆箱 ``` 另外,在 Java 中,字符串类型 String 也可以转换成基本数据类型包装类。例如,将一个字符串转换成整: ``` String str = "123"; int num = Integer.parseInt(str); ``` 这里使用了 Integer 类的静态方法 parseInt() 将字符串转换为整。类似的,还有 Double.parseDouble()、Float.parseFloat()、Boolean.parseBoolean()、Byte.parseByte()、Short.parseShort() 和 Long.parseLong() 方法,可以将字符串转换为对应的基本数据类型。 反过来,将一个基本数据类型包装类转换成字符串,可以使用 String.valueOf() 方法,例如: ``` int num = 123; String str = String.valueOf(num); ``` 这里使用了 String 类的静态方法 valueOf() 将整转换为字符串。类似的,还有 Double.valueOf()、Float.valueOf()、Boolean.valueOf()、Byte.valueOf()、Short.valueOf() 和 Long.valueOf() 方法,可以将基本数据类型包装类转换为对应的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值