基本类型自动装箱(包装类)

Java的8个基本类型:byte、short、int、long、float、double、char、boolean

这8个基本类型都不能当做对象来使用,只有引用类型可以。而且,也不能接受null值,null只能赋给引用类型。
即:int i = null;是错的
为了解决这个问题,Java为这8个基本类型提供了对应的包装类——可将他们包装成对象
8个包装类如下:
byte - Byte
short - Short
int - Integer
long - Long
float - Float
double - Double
char - Character
boolean - Boolean

  1. 自动装箱机制:可以使基本类型的值自动成为包装类的实例!

即:Integer i = 2; 是对的!
——2可以自动装箱成为Integer

Object ob = 2.3; 也是对的!
——2.3自动装箱为Double,Double向上转型为Object(因为Object是父类,Double范围比它小)
同理:Long lg = 3L;

  1. 自动拆箱机制:包装类的实例可以自动作为基本类型的值使用。

即可以直接用于运算:Long res = lg * in;

**【建议】**做项目时,建议使用包装类来声明变量
好处:基本类型能做的,包装类都可以做,它还可以当成对象使用,还可以接受null.

坏处:稍微多占了点内存

包装类的方法:
方法可将字符串转成对应的基本类型值

 String str = "123";
 int i = Integer.parseInt(Str);     //输出int类型的123

——Integer.parseXxx (Xxx代表要转的类型)
在前面:《Java命令行输入几个数后做比较》文章中有用到。

【习题】用包装类声明变量时的缓存机制

public class 包装类
{
	public static void main(String[] args) 
	{
		//当程序对Integer使用装箱时,它有一个缓存机制,会缓存-128~127之间的对象
		Integer i = 20; //在-128~127之间,缓存,系统创建了Integer类的对象i
		Integer j = 20; //第二次用Integer类,系统直接用缓存中的对象
		System.out.println(i==j); //二者对象相同,值也相同:true

//如果缓存范围太大的话,内存消耗太大
		Integer k = 200;  //不在-128~127之间,对象不缓存,用完直接扔
		Integer l = 200; //又重新创建了对象
		System.out.println(k==l);//二者虽然值相同,但是对象不同:false
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值