Java 基础 - 数据类型

一、基本数据类型

‌在Java共有八种基本数据类型

整数类型:

类型名称占用字节数数值范围包装类
byte1-128 到 127Byte
short2-32768 到 32767Short
int4-2,147,483,648 到 2,147,483,647Integer
long8-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807Long

浮点类型:

类型名称占用字节数数值范围包装类
float4±3.40282347E+38FFloat
double8±1.7976931348623157E+308Double

字符类型:

类型名称占用字节数数值范围包装类
char2用于存储Unicode字符,范围是\u0000到\uffffCharacter

布尔类型:

类型名称占用字节数数值范围包装类
boolean1true 或者 falseBoolean

二、包装类

包装类是将基本数据类型(如int、double、char等)封装在对象中的类。这些类提供了许多有用的功能,比如将基本类型转换为字符串,或者在需要时将对象转换为基本类型。

三、自动装箱缓存

在Java中,Integer缓存的范围是从-128到127(包括-128和127)。这个范围被称为“缓存范围”。当你在这个范围内使用 Integer.valueOf(int) 方法时,JVM会返回缓存中的对象,而不是创建一个新的对象。

Integer a = 127;  // 使用valueOf方法,返回缓存中的对象
Integer b = 127;  // 同样返回缓存中的对象
System.out.println(a == b);  // 输出true,因为它们是相同的对象

对于超出这个范围的整数,每次调用Integer.valueOf(int)时,都会创建一个新的Integer对象。

Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);    // 输出false

使用new Integer(int value)构造方法会绕过自动装箱的缓存机制,总是创建一个新的对象。

对于其他包装类(如ByteShortLongCharacter等),也有类似的缓存机制,但范围不同(例如,ByteShort通常从-128到127缓存,而Long没有自动装箱的缓存)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值