java基础--包装类

本文详细介绍了Java中的包装类及其作用,包括数值型包装类的自动装箱拆箱、对象池机制以及基本数据类型与字符串的转换。此外,还探讨了包装类对象的比较和内存管理,特别提到了Integer对象在特定范围内的缓存策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

包装类产生原因:因为基本数据类型无法进行对象化处理,所以就引入了包装类。

Java中的数据类型:

    1.基本数据类型      

  • 数值型
  1. 整数类型 byte、short、int、long
  2. 浮点类型 float、double
  • 字符型 char
  • 布尔型 boolean

    2.引用数据类型

  • 类 class
  • 接口 interface
  • 数组

包装类:拥有属性、方法,可以对象化交互

包装类与基本数据类型对应

Java中数值型包装类都是继承自number类型,都是用final修饰的,不可以继承

Boolean和character都是继承自Object类

  • 装箱 基本数据类型->包装类
  • 拆箱 包装类->基本数据类型

//自动装箱
int t1=2;
Integer t2=t1;
//手动装箱
Integer t3=new Integer(t1);



//自动拆箱
int t4=t2;
//手动拆箱
int t5=t2.intValue();

基本数据类型和字符串之间的转换

//基本数据转换为字符串
int t1=2;
String t2=Integer.toString(t1);
//字符串转化为基本数据类型
1、包装类的parse
int t3=Integer.parseInt(t2);
2、
int t4=Integer.valueOf(t2);

包装类对象的初始值

  • 基本数据类型的初始值

  • 包装类型的初始值

null

包装类对象间的比较

Integer one=new Integer(100);
Integer two=new Integer(100);
System.out.println(one==two);//false
Integer three=100;
System.out.println(three==100);//true
Integer four=100;
System.out.println(three==four);//true
Integer five=200;
System.out.println(five==200);//true
Integer six=200;
System.out.println(five==six);//true

1、new是开辟两块不同的空间所以one==two false
2、Integer three=10;自动装箱内部执行:Integer.valueof(10)并在内存中开辟一款缓存区,判断three==100时,自动拆箱 值相同 true 
3、Integer four=100时Integer.valueof(10) 在缓存区中找到这个10  所以three==four true
4、true
5、因为200不在-128-127之间 所以不能执行Integer.valueof(10) 把10存到缓存区 只能拿通过构造函数new Integer(200)来重新在内存中构造一块空间 所以five==six false

除了float、double其他数据类型都有对象池(缓冲区)这个概念

Double d1=Double.varleOf(100);
System.out.println(d1==100);//true
Double d2=Double.varleOf(100);
System.out.println(d1==d2);//false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值